私は、約 3,000 万のデータベース レコードでかなりの量の作業を行っている非常に長時間実行されるスクリプトを持っています。CLI で起動して実行するたびに、実行している作業量 (約 5,000 レコード/分) を考えると、かなり速く実行されます。ただし、これが約 90 分後には劇的に遅くなり、5,000 レコードを完了するのに 2 時間かかります。再起動すると、約 90 分間正常に動作します。
Apache のログには、速度が低下している時間については何も表示されません。他にどこを見ればよいかわかりません。
コマンド ラインで実行する場合、PHP の最大実行時間は問題にならないはずです。CodeIngiter で 300 に設定されている箇所をコメントアウトしました。set_time_limit(0)
スクリプトの先頭にa を追加しました。
私のデータベースは PostgreSQL です。
どこを見るべきかについて何か提案はありますか?
編集:わかりました、間違いなくメモリの問題のようです。しかし、いくつかの配列を使用して結果をキャッシュし、バッチの挿入と更新を行っていますが、後でそれらをクリアしており、90 分を超えるまでに何度も使用されています。
現在メモリ内にあるものを確認する方法はありますか?
編集: これが私の解決策であるかどうかは、あと 90 分間わかりませんが、メモリの問題を抱えている CI ユーザーの場合は、http://codeigniter.com/forums/viewthread/140012/#689396を確認してください。