2013-01-04 3 views
6

近い将来、ある時点でデータベースのロードバランシングが必要なPython/Djangoアプリケーションがあります。その間、私はローカル仮想マシンのセットアップでpgpoolを実装する方法を学びたいと考えています。pgpool2ロードバランシングが動作しない

私は4つのUbuntu 12.04の仮想マシンがあります。私は、pgpool-IIのバージョン3.1.1を持っているし、私のデータベースサーバが のPostgreSQL 9.1を実行している

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 

を。

私のアプリケーションのdb接続は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まで上げます。の負荷は約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 

答えて

関連する問題