#1127: Ошибка FATAL: sorry, too many clients already
Отредактирована: 98 дней назадСимптомы
Периодически в интерфейсе возникает ошибка [object Object]
Во вкладке Network некоторые запросы завершаются ошибкой 500 Internal error has occurred
В логах контейнера postgres ошибка FATAL: sorry, too many clients already
Решение
Увеличить количество подключений для postgres
1. В конфигурационном файле docker-compose.yml в секции postgres отредактировать значение параметра N:
postgres:
image: postgres:14.2-bullseye
container_name: swarmica-postgres
shm_size: 4gb
command: postgres -N 300 -c shared_preload_libraries=pg_stat_statements -c pg_stat_statements.track=all -c wal_keep_size=512MB -c work_mem=8MB -c temp_buffers=16MB -c shared_buffers=4GB -c track_activity_query_size=16384
restart: always
volumes:
- swarmica_postgres_data:/var/lib/postgresql/data:Z
- swarmica_postgres_data_backups:/backups:z
- ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf
env_file:
- .env
ports:
- "5432:5432"
Важно Количество N * на work_mem не должно превышать размер shared_buffers! Так же, важно учитывать объем свободной памяти на сервере. Если free -lmt показывает, что более 20% памяти используется в Swap, это значит, что на сервере не хватает памяти и перед тем, как увеличивать количество подключений, необходимо добавить оперативной памяти
2. Перезагрузите приложение docker compose down && docker compose up -d
Причина
Превышено разрешенное количество подключений к базе данных. Такое может быть, если на сервер большая нагрузка по одновременному количеству пользователей