【问题标题】:pgpool2 load balancing not workingpgpool2 负载平衡不起作用
【发布时间】:2012-12-19 04:38:13
【问题描述】:

我有一个 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

【问题讨论】:

    标签: django postgresql-9.1 pgpool


    【解决方案1】:

    我需要

    replication_mode = off
    master_slave_mode = on
    

    感谢石井达男:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2015-08-07
      • 2015-02-11
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      相关资源
      最近更新 更多