昨天我用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?
答案 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