Пять тысяч разрешённых соединений выглядят как запас мощности, но пропускную способность PostgreSQL определяют ядра и хранилище.
max_connections решает другое: сколько серверных процессов база допустит до отказа и сколько общей памяти заранее выделит под их структуры.На PostgreSQL 18.6 рост лимита со 100 до 5000 увеличил общую память со 150 до 389 МБ. При этом 17-е активное соединение на машине с 16 ядрами уже добавляет переключения контекста и очередь. А 400 активных запросов с тремя хеш-объединениями каждый могут одновременно запросить 1200 порций
work_mem.Поэтому лимит стоит считать как бюджет, а приложения подключать через PgBouncer в режиме пула транзакций. Для большинства производственных систем расчёт с учётом репликации, мониторинга и ручных подключений даёт 100–300 соединений.
