お世話になります。
Postgres8.3+PHPを利用した集計バッチを作成し、そのバッチを
20回程連続でcurlを使用して呼び出しておりますが、10回程経過
した時点で極端に処理が遅くなり困っております。
バッチの中身はPHPから標準のpg関数を使用して、概ね以下の通りです。
1.curl http://~~で実行
2.トランザクション開始
3.select-update
4.select-insert(not exists 2.)
5.3-4を数回ループ(見るテーブルを変更)
6.コミット or ロールバック
途中でパフォーマンスが落ちるので、リソースの問題だと思うのですが
一度遅くなると、スクリプトを終了させて再び実行しても遅いままで、
Postgresを再起動すると直ります。
ただし遅くなる状態でも、上記バッチとは関係のない処理は問題なく
バッチの特定のテーブルからのレスポンスが悪いような印象です。
Postgresにテーブル別にリソースを管理する仕様やそれの確認方法、
また再起動以外での対処の仕方、スクリプト中で防ぐ方法など、
何かご存知の方おられましたらお教えいただければと思います。
※fsmあたりが怪しいとは思い、vacuume verboseの値とconfの設定値を
現在比較中です。。
※リソースの消費として速度重視と思って採択したselect-insertの
selectサイズが大きすぎると思ってますが、スクリプト終了後も
継続してしまう理由がわからない状態です。。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。