0

我已经在流复制模式下安装了 pgpool 3.2.1 和 2 个后端,带有负载平衡和连接池。我做了一些高负载测试,试图折叠 pgpool 连接。

假设这条规则是正确的:max_pool*num_init_children <= (max_connections - superuser_reserved_connections)

测试1:

num_init_children = 90 最大池 = 1

(仅在主服务器中) max_connections = 100 superuser_reserved_connections = 3

psql -U postgres -c 'SELECT COUNT from pg_stat_activity' 的结果是 90。

测试 2:

num_init_children = 90 最大池 = 2

(仅在主服务器中) max_connections = 100 superuser_reserved_connections = 3

psql -U postgres -c 'SELECT COUNT from pg_stat_activity' 的结果是 91。其他 6 个连接达到 97 个连接会发生什么情况?这是我可以到 postgresql 的最大连接数。

在这两种情况下,我都得到了 pgpoolAdmin 中使用的所有连接,并且与数据库的连接被冻结并且不允许新的连接。

谢谢!

4

1 回答 1

1

在 pgpool 中,他们使用以下规则来控制连接:

max_pool*num_init_children <= (max_connections - superuser_reserved_connections)(不需要取消查询) max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connections)(需要取消查询)

因此,问题是当您取消查询时,您必须在 postgresql 中设置 pgpool 中配置的双倍连接数。

于 2013-03-14T19:44:27.243 回答