コネクションプールで接続負荷を軽減!

2008年7月10日(木)
SRA OSS, Inc. 日本支社 マーケティング部

パラメータを設定する

 pgpool.confの主なパラメータについて説明します。なおこれらのパラメータはすべてpgpoolAdminから設定することが可能です。

 まず、「listen_addresses」について説明します。このパラメータはpgpool-IIがTCP/IPコネクションを受け付けるアドレスをホスト名またはIPアドレスを指定します。

 「*」を指定するとすべてのIPインタフェースからのコネクションを受け付けます。「''」を指定するとTCP/IPコネクションを受け付けません。デフォルト値は「localhost」です。UNIXドメインソケット経由のコネクションは常に受け付けます。このパラメータを変更した時にはpgpool-IIを再起動してください。

 「port」ではpgpool-IIがコネクションを受け付けるポート番号を指定します。デフォルト値は9999です。このパラメータを変更した時にはpgpool-IIを再起動してください。

 「child_life_time」はpgpool-IIの子プロセスの寿命です。アイドル状態になってからchild_life_time秒経過すると、いったん終了して新しいプロセスを起動します。これはメモリーリークそのほかの障害に備えた予防措置です。

 child_life_timeのデフォルト値は300秒、すなわち5分です。0を指定するとこの機能は働きません(起動し続けます)。なお、まだ一度もコネクションを受け付けていないプロセスにはchild_life_timeは適用されません。このパラメータを変更した時には設定ファイルを再読み込みしてください。

パラメータの設定

 「connection_cache」はコネクションをキャッシュするかどうかを設定します。trueならコネクションをキャッシュします。デフォルトはtrueになっています。このパラメータを変更した時にはpgpool-IIを再起動してください。

 「num_init_children」はpreforkするpgpool-IIのサーバープロセスの数です。デフォルト値は32になっています。この値がクライアントが同時に接続できる最大数となります。このパラメータを変更した時にはpgpool-IIを再起動してください。

 「max_pool」はpgpool-IIの各サーバープロセスがキープするPostgreSQLへの最大コネクション数です。pgpool-IIは、ユーザー名、データベースが同じならばコネクションを再利用しますが、そうでなければ新たにPostgreSQLへのコネクションを確立しようとします。

 したがって、ここでは想定されるユーザー名とデータベース名のペアの種類の数だけをmax_poolに指定しておく必要があります。もしmax_poolを使いきってしまった場合は一番古いコネクションを切断し、そのスロットが再利用されます。max_poolのデフォルト値は4です。

 なお、pgpool-II全体としては、num_init_children*max_pool分だけPostgreSQLへのコネクションが張られる点に注意してください。このパラメータを変更した時にはpgpool-IIを再起動してください。

著者
SRA OSS, Inc. 日本支社 マーケティング部
SRA OSS, Inc. 日本支社マーケティング部では、PostgreSQL/PowerGresのサポート、コンサルティング、販売を中心にビジネス展開しています。pgpoolのサポートやpgpoolを使った大規模システムのコンサルティングの実績もあります。http://www.sraoss.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています