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