3

昨日、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 を設定するにはどうすればよいですか?

4

2 に答える 2

7

1 つの pgpool 子プロセスは、常に 1 つのクライアント接続を処理できます。したがって、num_init_children の値は、予想される最大同時接続数に正比例します。pgpool を介して 10,000 の同時接続が必要な場合、num_init_children を 10,000 に設定する以外に方法はありません。また、PostgreSQL は各クライアント接続を処理するための専用プロセスを生成するため、いずれかのインスタンスで PostgreSQL サーバーに 10,000 の接続クライアントがある場合、10,000 の子プロセスも作成されます。この点での pgpool と PostgreSQL の違いは、pgpool は num_init_children の数の接続を事前生成し、PostgreSQL はオンデマンドでそれを行うことです。

于 2016-04-20T12:02:36.537 に答える
-1

はい、num_init_children=10000 と max_pool=1 に言及する必要があります。num_init_children=1000 と max_pool=10 のように書くこともできます

于 2016-04-03T07:30:46.930 に答える