Пулер соединений PgBouncer
В PostgreSQL для обработки каждого соединения клиента создается отдель ный процесс. Чем больше число соединений, тем больше процессов, которые используют оперативную память. Максимальное число соединений с процессом PostgreSQL определяется параметром max_connections
.
Чтобы оптимизировать потребление ресурсов, можно использовать пулер соединений. Клиенты подключаются не напрямую к PostgreSQL, а к пулеру соединений. При этом поддерживается небольшое количество соединений между пулером и сервером PostgreSQL — пулер создает новое соединение или повторно использует одно из существующих. Количество соединений между пулером и базой данных на каждой из нод кластера определяется размером пула (параметр pool_size
).
В кластерах облачных баз данных PostgreSQL используется пулер соединений PgBouncer. Доступно три режима пулинга PgBouncer. Подробнее о пулере соединений в документации PgBouncer.
Максимальное число соединений с процессом PostgreSQL (max_connections)
Параметр СУБД PostgreSQL max_connections
определяет максимальное число одновременных соединений с процессом PostgreSQL. По умолчанию установлено значение 100 соединений.
Вы можете изменить значение параметра в настройках СУБД в панели управления на значение максимального количества соединений при нагрузке. Учитывайте, что каждое соединение расходует ресурсы оперативной памяти.
Изменение значения max_connections
влечет за собой перезагрузку нод кластера PostgreSQL.
Размер пула (pool_size)
Размер пула (параметр pool_size
) — это максимальное число соединений между пулером соединений и каждой базой данных PostgreSQL на каждой из нод кластера.
Размер пула можно выбрать при создании кластера и изменить размер в созданном кластере. Доступные значения — от 1 до 500.