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

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

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

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

2 ответов

13 просмотров

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

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

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

Ребят в СИ можно реализовать ООП?
Николай
33
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
core\config\database\connections\default.php На всякий случай проверь всё же файл <?php return [ 'driver' => env('DB_TYPE', 'mysql'), //$database_type 'host' => env('D...
Andrey K
2
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Кто кодит под Лазарем на винде, у вас аналогично VCL переопределяются CreateWnd и CreateParams для конкретных классов контролов и все заданные флаги влияют?
А Андрей
11
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
Карта сайта