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

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

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

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

2 ответов

9 просмотров

Все не так просто. Важно понимать что это за коннекты и что в них происходит. Например если у вас приложение умеет в 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)

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта