Преимущество использования пула коннектов это существенное снижение нагрузки на Postgresql сервера, такие дорогостоящие для сервера действия как постоянное открытие/закрытие коннектов, общее управление коннектами, частично ложатся на плечи Pgbouncer. Кроме этого важен тот дополнительный функционал, которые привносит Pgbouncer сам по себе.
Достоинства Pgbouncer
Установка
добавляем пользователя в файл /etc/pgbouncer/userlist.txt, логин и пароль необходимо указывать точно такие же как и у реальных аккаунтов в Postgresql
"postgres" "md553f48b7c4b76a86ce72276c5755f217d"
Достоинства Pgbouncer
- Малое потребление оперативной памяти
- Отсутствие жесткой привязки к одному backend серверу, соответственно сервера назначения могут располагаться на разных хостах
- Поддержка реконфигурации большинства настроек без перезапуска
- Поддержка онлайн перезапуска
Установка
(ОС: Debian 6.0 x64)
apt-get install pgbouncer
самый простой пример настроек /etc/pgbouncer/pgbouncer.ini для доступа к БД of_db под именем pseudo_db в пуле
[databases]
pseudo_db = host=127.0.0.1 port=5432 dbname=of_db
[pgbouncer]
listen_addr = 0.0.0.0
listen_port = 6432
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = pgb_admin
добавляем пользователя в файл /etc/pgbouncer/userlist.txt, логин и пароль необходимо указывать точно такие же как и у реальных аккаунтов в Postgresql
"postgres" "md553f48b7c4b76a86ce72276c5755f217d"
включаем в /etc/default/pgbouncer сам Pgbouncer
START=1
запускаем его
invoke-rc.d pgbouncer start
проверяем его работу, коннектимся Postgresql клиентом к пулу, если все хорошо, то выходим и смотрим процессы и сетевую активность. Несмотря на то что мы отключились Pgbouncer продолжает поддерживать коннект к серверу, продолжительность поддержки коннекта зависит от настроек Pgbouncer
postgres 4030 0.0 0.1 102280 1524 ? Ss 12:23 0:00 \_ postgres: wal writer process
postgres 4031 0.0 0.1 102556 1892 ? Ss 12:23 0:00 \_ postgres: autovacuum launcher process
postgres 4032 0.0 0.1 73960 1572 ? Ss 12:23 0:00 \_ postgres: stats collector process
postgres 5478 0.0 0.3 103608 4840 ? Ss 13:36 0:00 \_ postgres: postgres of_db 127.0.0.1(38636) idle
tcp 0 0 127.0.0.1:38636 127.0.0.1:5432 ESTABLISHED 5217/pgbouncer
запускаем его
invoke-rc.d pgbouncer start
проверяем его работу, коннектимся Postgresql клиентом к пулу, если все хорошо, то выходим и смотрим процессы и сетевую активность. Несмотря на то что мы отключились Pgbouncer продолжает поддерживать коннект к серверу, продолжительность поддержки коннекта зависит от настроек Pgbouncer
postgres 4030 0.0 0.1 102280 1524 ? Ss 12:23 0:00 \_ postgres: wal writer process
postgres 4031 0.0 0.1 102556 1892 ? Ss 12:23 0:00 \_ postgres: autovacuum launcher process
postgres 4032 0.0 0.1 73960 1572 ? Ss 12:23 0:00 \_ postgres: stats collector process
postgres 5478 0.0 0.3 103608 4840 ? Ss 13:36 0:00 \_ postgres: postgres of_db 127.0.0.1(38636) idle
tcp 0 0 127.0.0.1:38636 127.0.0.1:5432 ESTABLISHED 5217/pgbouncer
Комментариев нет:
Отправить комментарий