PostgreSQL接続数の件
なんかおかしい
先日から挙動がおかしいPostgreSQLサーバですが、今朝も動作が固まりだしたので
調査していたらmuninで計測していたPostgreSQLの接続数が、2000件超えてました。
そりゃ、設定値の上限が1024だから、落ちるわけだわ。
原因はよくわからないが、1000件程度DB接続がidleやauthentication状態で切れないで残ってしまい、
どんどん溜まっていく挙動していたため、cronでidle状態に陥っているpostgresのpidを強制的にkill
するようにしてみました。
↓サンプル
#!/bin/shpids=`ps -ef | grep 'postgres: ' | grep -e 'idle\|authentication' | awk '{printf $2 " " }'`
echo "PostgreSQL idle process killing..........."kill -KILL $pids
こんなことを5分おきに実行させてみました。
正直データベース的にはやばいような気もしますが、様子見です。
その後
上記の対応か、以前からの現象が悪化したのか定かではありませんが、
超やばい。
PostgreSQLデータベースが吹っ飛(ry
↓あぁ〜pg_dumpもまともに動かない。
こんなメッセージ出してpostgresが止まっちまうよ。
XLogFlush: request C/E2294484 is not satisfied ...
pg_dumpでDBのダンプが取れない状況です。
なぜか、tableを一個一個ダンプするのはOKだったのでデータの紛失だけは防げました。
ま、PostgreSQLを再インストールで治ればいいんだけど。
その後 (一応解決)
PostgreSQL 7.2.8再インスコで無事治りましたとさ。
どうやら、DBが壊れかけていてレスポンスが詰まった模様です。
kernel panicでPostgreSQLって壊れるDB なんですかね。
怖すぎる。
あと非常に気になるのは、ここのところ同時期にほかのお客さんの所でもPostgreSQLが爆死し続けてるので、
2007年タイマーかなんかですかねぇ。バグなのかなぁ。