[pgpool-general-jp: 1623] Re: pgpoolのmax_pool、num_init_childrenについて

Tatsuo Ishii ishii @ sraoss.co.jp
2020年 4月 10日 (金) 20:45:30 JST


石井です。

> お世話になっております。
> 
> 鄭と申します。
> 
> pgpoolのmax_pool、num_init_childrenについて伺いたいですが、
> 現在運用しているサービスではDB一つに対して4つのDBユーザでpgpool経由でpostgresqlに接続を行っています。
> pgpoolの設定は下記となっております。
> 
>> max_pool: 4
>> num_init_children:48
> 
> 
> 私の認識では4つのユーザそれぞれ最大48個の子プロセスが生成される想定ですが、
> どうしても4つのユーザの合計で48個のプロセスまでしか生成されない状況です。

そうではないです。子プロセスはnum_init_children分しか生成されません。

> それによって48個のプロセスが全てIdle, Idle In tranasctionの状態になった場合、
> それ以上のコネクションが生成されず、繋がらなくなる現象が発生しています。

マニュアルにもあるように、
https://www.pgpool.net/docs/latest/ja/html/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SETTINGS

max_pool*num_init_children <= (max_connections - superuser_reserved_connections)

を満たすように、各種パラメータを調整する必要があります。

クエリのキャンセルを考慮する場合は以下になります。

max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connections)
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


pgpool-general-jp メーリングリストの案内