[pgsql-jp: 40994] Re: 【質問】"pgstat wait timeout"のメッセージ解消について

m.murakami m.murakami @ lightcafe.co.jp
2011年 12月 2日 (金) 13:55:44 JST


村上と申します。よろしくお願い致します。

以下長文での確認となりますが、ご容赦願います。

PostgreSQLバージョン:8.3.5を使用中

PostgreSQLのDB同時接続に関して質問があります。

1分間に1度接続のみのコマンドを発行し、DBが停止していないかなどを確認しており
ます。
ここ数日1分間のうちに、SQLのselect文が大量に実施されており、その間
DB接続確認処理がエラー(タイムアウト50秒)する場合があります。

実際にその時間帯に接続していた処理数がどの程度あったかを
確認したいと思っており、以下のようなコマンドがございますが、
こちらは実行したタイミング(現時点)のものと認識しております。
「select count(*) from pg_stat_activity;」

ちなみにMAXコネクションを500で設定しております。
Postgresqlのログにて3秒以上実行時間がかかったものを
ログに出力していますが、1分間に400〜600以上のSQLが
実行されているときにDB接続確認処理のエラーが発生します。
 ※ログを確認したところ、大量に実施されている処理は、
  3〜40秒実行時間が記録されております。

1.過去の時間帯にどの程度の処理が実施されていたかを
  確認する(pg_stat_***)ものがございますでしょうか?

2.MAXコネクション数が足りないor接続確認はできているが応答が返しきれていな
いのかを
  切り分けたいとも思っています。
  コネクション数が不足した際、接続エラーになった際はログに
  なんらかのエラーが出力されると思いますが、それらしきエラーは
  残念ながらみあたりませんでした。
  コネクションエラーに関するログはデフォルトで出力されるという認識であって
いますか?

3.DB接続確認時はDBの管理者ユーザ権限にて接続しています。
  MySQLだったかもしれませんが、管理者ユーザでの接続は
  Maxコネクション数に達していても、接続できるな記憶があります。
  PostgreSQLでも管理者ユーザならMaxコネクション数に達していても
  接続はできるなどございますでしょうか?
  (接続確認処理のみで50秒以上かかるのも考えづらい気がしております
が。。。)

4.接続に時間がかかっているだけなど確認する方法があればご教示ねがいます。


以上、よろしくお願い致します。


__________ Information from ESET NOD32 Antivirus, version of virus signature
database 6674 (20111201) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com




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