[pgsql-jp: 33891] pgpool のエラー(pool_read: EOF encountered)

Reiji Matsumoto matsumoto @ spline.oc.to
2004年 8月 19日 (木) 00:48:43 JST


Matsumoto @ Spと申します。

pgpool 2.0.7を利用していますが、エラーメッセージの意味と対処方法
についてご存知の方いらっしゃいましたらご教示頂けたらと思います。

以下のようなエラーが発生し、pgpoolが止まってしまう事があります。
ERROR: pid 17764: pool_read: EOF encountered
ERROR: pid 17764: ProcessFrontendResponse: failed to read kind

あるいは、
ERROR: pid 14363: pool_read: read failed (Connection reset by peer)
ERROR: pid 14363: ProcessFrontendResponse: failed to read kind

または、
ERROR: pid 18550: pool_read: EOF encountered
ERROR: pid 18550: ProcessFrontendResponse: failed to read kind
ERROR: pid 18550: pool_flush: fflush failed (Broken pipe)

現在、あるシステムで大変な過負荷でシステムを稼動させています。これ
自体とても良くない事ですが、過負荷状態においてpgpoolが上記のエラー
を出力する事に気が付きました。エラーが発生した後は、一切pgpoolに
よる接続が出来なくなります。pgpoolのプロセスそのものは生きている
ようです。現在、監視しながら問題発生時にpgpoolを再起動するか、
監視員が不在の時間帯はpgpoolを利用しない事で対処しています。

現在の構成は以下の通りです。

・webサーバー1
NetBSD 1.6
Apache/1.3.29(MaxClient=50)
pgpool 2.0.7(num_init_children = 3)
php 4.3.4

・webサーバー2(ここが重いです)
NetBSD 1.6.2
Apache/1.3.29(MaxClient=100から250で色々試している)
pgpool 2.0.7(num_init_children = 25)
php 4.3.4

・webサーバー3
Red Hat Linux release 9 Kernel 2.4.24 on an i686
Apache/1.3.29(MaxClient=50)
pgpool 2.0.7(num_init_children = 4)
php 4.3.4

・dbサーバー
Red Hat Linux release 7.2 Kernel 2.4.24 on an i686
PostgreSQL 7.2.3 on i686-pc-linux-gnu, compiled by GCC 2.96

3台のwebサーバーからはいずれもphpでコネクションしています。
webサーバー2と3で上記のエラーが発生する事があります。
過負荷そのものについては、まったく別のアプローチで回避する作業を行っ
ている最中なのですが、数日は今の状況が続く見通しです。
そこで取りあえずpgpoolからのアクセス不能を回避する方法が分かればと
思っているのですが、何か良い方法は無いでしょうか。

ご教示頂きたくお願い申し上げます。






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