2013-01-04 39 views
6

Tôi có một ứng dụng Python/Django sẽ yêu cầu cân bằng tải cơ sở dữ liệu tại một số điểm trong tương lai gần. Trong khi chờ đợi, tôi đang cố gắng học cách thực hiện pgpool trên một thiết lập máy ảo cục bộ.pgpool2 cân bằng tải không hoạt động

Tôi có 4 máy ảo 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 

Tôi có pgpool-II phiên bản 3.1.1 và máy chủ cơ sở dữ liệu của tôi đang chạy PostgreSQL 9.1.

Tôi có kết nối db của ứng dụng được trỏ đến 192.168.1.80:9999 và nó hoạt động tốt.

Vấn đề là khi tôi sử dụng Apache ab để ném một số tải vào nó, không ai trong số truy vấn SELECT dường như được cân bằng. Tất cả tải đều được chuyển đến trình chủ db1 của tôi. Ngoài ra, khá liên quan là tải trên máy chủ hồ bơi chính nó, nó thực sự là cao so với db1, có thể là trung bình 8-10 lần cao hơn. Trong khi đó các máy chủ db2 và db3 của tôi có tải gần bằng không, chúng xuất hiện chỉ sao chép từ db1, mà không phải là rất tải chuyên sâu cho các thử nghiệm của tôi với ab.

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

Điều đó thúc đẩy tải trên máy chủ của tôi lên tới 2.3. Tải trên db1 là khoảng 0,4 và tải trên db2 và db3 gần bằng không.

Ai đó có thể xem cấu hình của tôi và xem tôi đang làm gì sai?

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 

toàn bộ cấu hình của tôi là ở đây:

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

Trả lời

Các vấn đề liên quan