負荷分散と接続プールを備えたストリーミングレプリケーションモードで、2つのバックエンドを備えたpgpool 3.2.1をインストールしました。pgpool接続を崩壊させるために、いくつかの高負荷テストを実行しました。
このルールが正しいと仮定すると:max_pool * num_init_children <=(max_connections --superuser_reserved_connections)
テスト1:
num_init_children = 90 max_pool = 1
(マスターのみ)max_connections = 100 superuser_reserved_connections = 3
psql -U postgres -c'SELECT COUNTfrompg_stat_activity'の結果は90でした。
テスト2:
num_init_children = 90 max_pool = 2
(マスターのみ)max_connections = 100 superuser_reserved_connections = 3
psql -U postgres -c'SELECT COUNT from pg_stat_activity'の結果は91でした。他の6つの接続で、最大97の接続を取得するにはどうなりますか?これは、postgresqlに到達できる接続の最大数です。
どちらの場合も、pgpoolAdminで使用されるすべての接続を取得し、データベースへの接続がフリーズし、新しい接続が許可されませんでした。
ありがとうございました!