172 похожих чатов

Приветствую всех, мира и добра вам коллеги. Я за маленьким

советом: Сколько по вашему мнению postgresql сможет выдержать подключений? параметры примерно такие - 4 ядра 16 гиг диск около 100гиг, увы не SSD. сможет ли выдержать более 1000 или 10 000 подключений.

Не мой сервер, но наблюдается проблема что более 1000 подключений вроде как предел? Или же нет.
За ранее Спасибо.

2 ответов

16 просмотров

Все не так просто. Важно понимать что это за коннекты и что в них происходит. Например если у вас приложение умеет в connection pooling, то в реальности из 1000 действительно активными могут быть 10-20, а то и меньше. Все сильно зависит от приложения. Если перед базой никакого мультиплексора не стоит, то изначально может быть проблема с памятью, потому что каждый коннект съедает некоторое ее количество, даже если в самом коннекте пока нет никакой активности. Ну,а дальше самое интересное, активные коннекты. Тут надо замерять, на сколько прожорливое приложение в плане нагрузки на базу. Каких размеров база. Т.е. может быть ситуация что у вас бОльшая часть данных попадает в дисковый кеш и тогда даже с обычными HDD можно выдержать достаточно много запросов. Но все в мире относительно. Возможна и обратная ситуация, если весь ваш 100гб hdd забит под завязку данными базы и запросы тормошат эти данные в десятках разных разрезов, то может быть туго уже на 5-10 параллельных запросах.(тут стоит почитать про OLAP/OLTP) А по большому счету, промониторьте просто количество коннектов/запросов в течение суток или даже недели и отталкивайтесь от него. Можно сверху добавить процентов 10. Затем начните с какого нибудь конструктора конфигов типо https://pgtune.leopard.in.ua/. А дальше уже тюнинг.

Постгрес более менее нормально работает с 1000 бэкендами, может пережить 10000 b ему становится очень плохо от 100000. Оптимальное число бэкендов (т.е. то, на котором обеспечивается максимальная производительность) зависит от нагрузки и железа, но обычно не сильно больше чем число ядер CPU. Дальше наблюдается падение производительности (т.е. отрицательная масштабируемость). Поэтому без пулера вы такое число cоединений эффективно не обслужите. Особенно если почти все клиенты активные. Пулер может быть внутренний (J2EE,...) или внешний (pgbpouncer/oddysey)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта