Конфигурация PgBouncer (пулер соединений для 1000+ клиентов к PostgreSQL)

Обновлено: Август 2026 Стек: PgBouncer 1.20+, PostgreSQL 14/15/16 Проверено: Production-Ready

Готовый production-конфиг pgbouncer.ini: режимы transaction / session pooling, лимиты пулов, авторизация userlist.txt и защита от перегрузки CPU.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/pgbouncer/pgbouncer.ini
# /etc/pgbouncer/pgbouncer.ini
[databases]
* = host=127.0.0.1 port=5432 auth_user=postgres

[pgbouncer]
logfile = /var/log/postgresql/pgbouncer.log
pidfile = /var/run/postgresql/pgbouncer.pid
listen_addr = *
listen_port = 6432
auth_type = scram-sha-256
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
pool_mode = transaction
max_client_conn = 1000
default_pool_size = 25
min_pool_size = 5
reserve_pool_size = 5
reserve_pool_timeout = 5
max_db_connections = 80
server_reset_query = DISCARD ALL
client_idle_timeout = 60

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
pool_mode = transaction transaction Возвращает соединение в пул сразу после завершения транзакции.
max_client_conn = 1000 1000 Максимальное число подключений веб-клиентов.
checkpoint_completion_target = 0.9 0.9 Сглаживает запись контрольных точек (checkpoints) по времени, предотвращая пиковые просадки дискового ввода-вывода (I/O Spikes).
random_page_cost = 1.1 1.1 (NVMe SSD) Указывает планировщику низкую стоимость случайного чтения на SSD/NVMe, что стимулирует частое использование индексов.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 2-4 vCPU, 4 GB RAM, Debian 12 / Ubuntu 24.04
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
2-4 vCPU / 4 GB RAM / 40 GB NVMe
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
2-4 vCPU / 4 GB RAM / 40 GB NVMe
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
2-4 vCPU / 4 GB RAM / 40 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Как добавить пользователя в userlist.txt?
Добавьте строку формата: `"my_user" "SCRAM-SHA-256$..."`.
Как применить изменения параметров без перезагрузки сервера?
Для большинства параметров выполните: `sudo -u postgres psql -c 'SELECT pg_reload_conf();'`. Изменение `shared_buffers` требует `systemctl restart postgresql`.
Как найти медленные SQL запросы в базе?
Включите директиву `log_min_duration_statement = 250ms` и расширение `pg_stat_statements` для подробного профилирования.