Балансировка нагрузки pgpool2 не работает

У меня есть приложение Python/Django, для которого в ближайшем будущем потребуется балансировка нагрузки базы данных. Тем временем я пытаюсь научиться реализовывать pgpool на локальной виртуальной машине.

У меня есть 4 виртуальных машины Ubuntu 12.04:

192.168.1.80 <- pool, pgppool2 installed and accessible
192.168.1.81 <- db1 master
192.168.1.82 <- db2 slave
192.168.1.83 <- db3 slave

У меня есть pgpool-II версии 3.1.1, а мои серверы баз данных работают под управлением PostgreSQL 9.1.

У меня есть соединение с базой данных моего приложения, указывающее на 192.168.1.80:9999, и оно работает нормально.

Проблема в том, что когда я использую Apache ab, чтобы нагрузить его, ни один из запросов SELECT не кажется сбалансированным. Вся нагрузка идет на мой мастер db1. Также настораживает нагрузка на сам сервер пула, она действительно высокая по сравнению с db1, может в среднем в 8-10 раз выше. В то же время мои серверы db2 и db3 имеют почти нулевую нагрузку, похоже, они реплицируются только с db1, что не очень интенсивно для моих тестов с ab.

ab -n 300 -c 4 -C 'sessionid=80a5fd3b6bb59051515e734326735f80' http://192.168.1.17:8000/contacts/

Это увеличивает нагрузку на мой сервер пула примерно до 2,3. Нагрузка на db1 составляет около 0,4, а нагрузка на db2 и db3 почти равна нулю.

Может ли кто-нибудь взглянуть на мою конфигурацию и посмотреть, что я делаю неправильно?

backend_hostname0 = '192.168.1.81'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/var/lib/postgresql/9.1/main'
backend_flag0 = 'ALLOW_TO_FAILOVER'

backend_hostname1 = '192.168.1.82'
backend_port1 = 5433
backend_weight1 = 1
backend_data_directory1 = '/var/lib/postgresql/9.1/main'
backend_flag1 = 'ALLOW_TO_FAILOVER'

backend_hostname2 = '192.168.1.83'
backend_port2 = 5434
backend_weight2 = 1
backend_data_directory2 = '/var/lib/postgresql/9.1/main'
backend_flag2 = 'ALLOW_TO_FAILOVER'

load_balance_mode = on

Весь мой конфиг здесь:

http://pastebin.com/raw.php?i=wzBc0aSp

person gdonald    schedule 04.01.2013    source источник


Ответы (1)


мне было нужно

replication_mode = off
master_slave_mode = on

Спасибо Тацуо Исии:

http://www.pgpool.net/pipermail/pgpool-general/2013-January/001309.html

person gdonald    schedule 07.01.2013