Назад | Перейти на главную страницу

PostgreSQL ограничивает количество подключений менее чем max_connections?

У меня есть сервер PostgreSQL 9.4, который, похоже, ограничивает количество подключений меньшим, чем то, что я определил в max_connections.

У меня max_connections установлено на 300.

SHOW max_connections;

max_connections
-----------------
300

Тем не менее, я обнаружил, что у меня начинается тайм-аут новых подключений, как только количество активных подключений достигает 100, как измеряется SELECT count(*) from pg_stat_activity;

Пока это число меньше 100, новые соединения работают. Как только он достигает 100, новые соединения терпят неудачу: PG::ConnectionBad: could not connect to server: Connection timed out (Библиотека Ruby pg)

Кажется, есть исключение для подключений суперпользователя (т.е. я подключаюсь через PgAdmin), так как таким образом я могу превысить порог 100, хотя приложения, не использующие суперпользователей, продолжают время ожидания.

Я не могу понять, в чем может быть основная причина.

Некоторые настройки конфигурации:

max_connections = 300
superuser_reserved_connections = 2
shared_buffers = 1024MB
effective_cache_size = 2048MB
work_mem = 8MB
maintenance_work_mem = 256MB

Я попытался немного повозиться с этими значениями, но безрезультатно.

Другие детали:

Возможно ли, что вы ограничили максимальное количество подключений пользователей?Ролевые привилегии

Вы можете изменить это с помощью

ALTER ROLE имя роли CONNECTION LIMIT 300;

Вы тоже увеличили максимальный размер сегмента ядра?

Пытаться:

sysctl -w kernel.shmmax=1258291200