気まぐれSE日記

地方でエンジニアしてます

PostgreSQL の接続数が溜まっていく?

またcronがらみの処理で、理解不能な障害が発生しました。
cron で 1分おきと、5分おきのPHPスクリプトPostgreSQLサーバへDB接続して
SQLを実行させるを実行しているのですが....



なぜか、cronの処理自体が残ってしまい....
PostgreSQLサーバへの同時接続数が限界に達するのです。


しかも、現象が出るサーバと出ないサーバがあります。
比較的最新のマシン、(CPUはPentium4、メモリ1GB程度)では現象は全く出ない。


サーバ自体の問題な気もするし?


DB接続時にタイムアウトでエラーが起きたなら、処理自体止まると思ってたのですが
DB接続自体のセッションが残ったままでロックしたような感じです。
ps -ef 等でプロセスを見ると、cron経由で実行されたPHPのプロセスが残ってしまってます。


PHPの問題なのか、DB側の問題なのか何なんでしょう...


プロセスが残ったままになるのがなぁ...



PHPは 4.4.2
PostgreSQLは 7.2.8
OSは RedHat 7.3 や Turbo 10 Server (Turboの方ではほとんど出てない)


ひょっとしてだけど、PostgreSQLサーバの方のcronでvacuumを動かす設定してあるから、それとかち合っちゃうとか...かも?

とりあえず、vacuumを止めてみて様子を見てみます
あり得るかも。