советом: Сколько по вашему мнению postgresql сможет выдержать подключений? параметры примерно такие - 4 ядра 16 гиг диск около 100гиг, увы не SSD. сможет ли выдержать более 1000 или 10 000 подключений.
Не мой сервер, но наблюдается проблема что более 1000 подключений вроде как предел? Или же нет.
За ранее Спасибо.
Все не так просто. Важно понимать что это за коннекты и что в них происходит. Например если у вас приложение умеет в 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)
Обсуждают сегодня