web-dev-qa-db-ja.com

powernapのIOMonitorをpostgresqlで動作させる

Postgresql 9.1.8-0ubuntu12.04を実行している12.04ボックスがあり、Java webapp(Atlassian Confluence wiki)を提供しています。powernapのIOMonitor機能を利用しようとしています。ただし、 /etc/powernap/configの対応する行のコメントを解除した場合:

[IOMonitor]
postgres-io = "postgres"

... powernapは、ボックスがスリープ状態になることを許可しません。ログ(DEBUG = 3)は次のことを示しています。

Looking for [postgres-io] IOMonitor
Activity found, reset absent time [0/60]

私が気づいたことの1つは、postgresが2〜3分ごとにプロセスを再生成しているように見えることです(wikiに対するユーザーアクティビティがない場合でも)。これが発生するたびに、powernapは次のように出力します。

<powernap.monitors.IOMonitor.IOMonitor instance at 0xXXXX> - adding new PID 16783 to list.

問題のPIDは、私のwikiDBにサービスを提供しているもののようです。

postgres 16783  1067  0 11:05 ?        00:00:00 postgres: confluence confluence 127.0.0.1(50689) idle

これが邪魔になっていると思いますか?これはPostgresの問題ですか(アクティビティがなくても、プロセスを頻繁にリスポーンすることになっていますか?)。これをデバッグする方法についてのポインタは、最もありがたいです(おそらく、powernapがI/Oアクティビティを推測する方法から始めます-多くのpostgresプロセスがあるので、おそらく適切なものをターゲットにする正規表現を見つけることができますか?)。

PS:Postgres IOMonitorをコメントアウトすると、powernapは扱いますが、Wikiの使用中はボックスを一時停止します...

2
sxc731

上記のコメントによると-私を正しい軌道に乗せてくれた@ craig-ringerに感謝します!

  1. Postgresqlは、アイドル状態かどうかを判断するためのI/O監視には適していません
  2. 代わりに、可能であればフロントエンドアプリへのTCP接続を監視することをお勧めします
  3. ただし、接続がIPv6を介して確立されている場合は、 bug 1070695 に注意してください。バグチケットには、私にとって扱いやすいパッチがあります。
1
sxc731