2013-01-04 13 views
6

Mam aplikację Python/Django, która będzie wymagać równoważenia obciążenia bazy danych w pewnym momencie w najbliższej przyszłości. W międzyczasie próbuję nauczyć się implementować pgpool na lokalnej konfiguracji maszyny wirtualnej.Równoważenie obciążenia pgpool2 nie działa

mam 4 Ubuntu 12.04 VM:

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 

mam pgpool-II w wersji 3.1.1 i moje serwery baz danych są wyświetlane PostgreSQL 9.1.

Mam połączenie db mojej aplikacji wskazał 192.168.1.80:9999 i działa dobrze.

Problem polega na tym, że używam Apache ab, aby rzucić na niego ładunek, żadne zapytania SELECT nie wydają się być zrównoważone. Całe obciążenie przechodzi do mojego głównego sterownika db1 . Ponadto, całkiem niepokojące jest to, że obciążenie samego serwera puli, , jest naprawdę wysokie w porównaniu do db1, może średnio o 8-10 razy większe od . Tymczasem moje serwery db2 i db3 mają obciążenie prawie zerowe, wydają się być tylko replikowane z db1, które nie jest zbyt obciążone intensywne dla moich testów z ab.

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

To powoduje, że obciążenie na moim serwerze puli wynosi około 2,3. Obciążenie dla db1 wynosi około 0,4, a obciążenie dla db2 i db3 jest prawie zerowe.

Czy ktoś może rzucić okiem na moją konfigurację i zobaczyć, co robię źle?

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 

Cały mój config jest tutaj:

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

Odpowiedz

Powiązane problemy