[pgpool-general-jp: 1154] 管理用のクエリーを投げて固まる?現象

長村善行 osa @ osa-p.net
2013年 5月 2日 (木) 12:06:14 JST


長村と申します。

pgpool-II 3.2.4 を利用しています。
ストリーミングレプリケーション環境なのですが、マスターDBの
pg_stat_activityを見ると

SELECT count(*) FROM pg_catalog.pg_class AS c WHERE c.oid =
pgpool_regclass('テーブル名') AND c.relpersistence = 'u'
(ソースにISUNLOGGEDQUERY2で定義されているクエリーです。)

というクエリーを実行して数時間経過しているプロセスが確認できます。
放っておくと、そのまま数日でも残ったままとなります。
しかしpgAdminIIIなどから実行しても、すぐに結果が帰ってきて、
ロックするようなことはありません。
pg_stat_activityのwaitingも f になっています。

全てのクエリーが常に引っかかるわけでは無く、ほとんどのクエリーは
きちんと動作しているようなのですが、ときどき結果が帰らず、
積もり積もっていつの間にか子プロセスが使い果たされるという状況です。
pg_terminate_backendを使うと終了できますが、pgpoolのマニュアルには
使わないでと書いてあるので、多用するのをためらっています。
なにか原因となる部分が想定できますでしょうか?

ちなみに、サーバーへpgpoolのモジュールを組み込んでいないと
ISUNLOGGEDQUERYの方を投げて、同様の症状が発生します。

環境
CentOS 6.3(マスタDB、スレーブDB、クライアント共)
PostgreSQL9.2.4(ソースからビルド)
pgpool-II 3.2.4、3.2.3以前でも発生します。

--
+-----------------------------------------------------------------------+
 NAME:長村善行   HANDLE:おさ
 EMAIL :osa @ osa-p.net twitter:osapon URL:http://www.osa-p.net/
+-----------------------------------------------------------------------+


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