pgpool num_init_children,具有10000个并发连接

时间:2015-07-30 03:33:06

标签: postgresql concurrency connection pgpool

昨天我用pgbench测试了pgpool:

pgbench -c 30 -T 20 -r pgbench -p9999 -h192.168.8.28

并发连接为30,pgpool默认num_init_children为32.

所以,当我设置-c 33时,测试将被阻止,除非我爆发。

我的问题是:

If my concurrent connections online is 10000, should I set num_init_children=10000? 

很可能num_init_children = 10000表示pgpool以10000进程开始。

有什么问题吗?

如何使用10000个并发连接配置pgpool?

2 个答案:

答案 0 :(得分:1)

一个pgpool子进程可以随时处理一个客户端连接。因此num_init_children的值与预期的最大并发连接数成正比。如果你想要通过pgpool进行10,000个并发连接,除了将num_init_children设置为10,000之外别无他法。 PostgreSQL还产生了一个专门的进程来处理每个客户端连接,所以如果在任何情况下PostgreSQL服务器有10,000个连接的客户端,它也会有10,000个子进程。 pgpool和PostgreSQL在这方面的区别在于pgpool预先确定了num_init_children连接数,而PostgreSQL则根据需要进行连接。

答案 1 :(得分:0)

是的,您必须提及num_init_children = 10000和max_pool = 1。您也可以写为num_init_children = 1000和max_pool = 10