[pgpool-general-jp: 806] max_poolは1 or ユーザ名, データベース名のペア数?

Synap synap.jp @ gmail.com
2010年 9月 24日 (金) 13:51:21 JST


はじめまして、synapと申します。

現在、pgpool2を設定中で、max_poolの設定値をどうするか悩んでいます。
ご意見頂ければうれしいです。

前提条件
 ・pgpool2はアプリケーションサーバで動作する。
 ・アプリケーションからpgpoolへの接続は、Unixドメインソケットに限定され、
  Apache MaxClientsなどで、最大同時50に制限する。
 ・アプリケーションサーバは2台。
  トラフィックに応じてスケールアップしていく想定。
 ・PostgreSQLサーバも2台。
 ・pgpoolでは、コネクションプーリング、レプリケーションの設定をする。
 ・ユーザ名, データベース名のペアは2

このような条件で、以下どちらの設定にするか悩んでいます。
1.pgpool num_init_children = 50, max_pool = 2
  PostgreSQL max_connections = 200(50*2*2台)

 ・たぶん正攻法
 ・コネクションプーリングが有効に働く。
 ・PostgreSQLへの接続がpgpool上限の2倍(max_pool=2)必要
  実際の接続は,num_init_childrenに制限されるので、
  PostgreSQLへの接続の最大半分は使用されない。

2.pgpool num_init_children = 50, max_pool = 1
  PostgreSQL max_connections = 100(50*1*2台)

 ・PostgreSQLへの最大接続がpgpoolの最大接続数と一致する。
  スケールアップ前提では、リソース設計が行いやすいのかな?
 ・max_pool = 1としているので、pgpoolからPostgreSQLへの接続数が
  最大数まで達している場合は、ユーザ名,DB名の組み合わせにより、
  PostgreSQLへの再接続が発生する?

個人的には、コネクションプーリングを多少犠牲にして 2.の設定に
したほうがよいと考えていますが、皆さんはどう考えますか?


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