Оригинал на GitHub
Вопрос
У нас в базу на Тотум льются данные через remouts в большом объеме и периодически теряется связь с базой, либо появляется ошибка: "Ошибка подключения к базе данных. Попробуйте позже: SQLSTATE08006 FATAL: remaining connection slots are reserved for non-replication superuser connections"
Ответ
Дело в том что параллельно запускается слишком много remouts. Нужно увеличить количество max_connections у базы.
По умолчанию у postgresql это значение равно 100.
Чтобы увеличить, надо поменять в конфиге postgresql и рестартовать сервер.
Путь к конфигурационному файлу можно посмотреть выполнив команду:
su - postgres -c "psql -c 'SHOW config_file;'"
Открываем конфигурационный файл по указанному пути, например:
nano /etc/postgresql/16/main/postgresql.conf
Ищем параметр max_connections
— это количество одновременный подключений к базе данных. Рекомендуется устанавливать двукратно количеству воркеров PHP-FPM.
Каждое подключение потребляет приблизительно 5Mb, соответственно max_connections * 5 = RAM, задействованная в обслуживании подключений. Не должна превышать 25% от общей RAM системы.