53300: too_many_connections
PostgreSQLЧто это значит?
Сервер достиг максимального числа одновременных подключений, допускаемого max_connections; новые подключения не принимаются.
Почему возникает?
Отсутствие пула подключений или его неверный размер, утечки подключений, приложения, открывающие множество кратковременных подключений, или max_connections ниже потребностей нагрузки.
Как исправить
Определите источники подключений: SELECT usename, state, COUNT(*) FROM pg_stat_activity GROUP BY 1,2. Завершайте давно простаивающие клиентские подключения адресно (массовое завершение без фильтра затрагивает все приложения и пулы): SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND backend_type = 'client backend' AND usename = 'app_user' AND state_change < now() - interval '10 minutes' AND pid <> pg_backend_pid(). Настоящее решение — пул подключений, например PgBouncer. Увеличение max_connections требует памяти; предпочитайте пулинг. Подключения, зарезервированные для суперпользователей, сохраняют возможность административного доступа.