1

私はPhusionPassenger(mod_rails)を介してRailsアプリを実行しています。このアプリはしばらくはスムーズに実行され、その後突然クロールが遅くなり(1時間に1つまたは2つのリクエスト)、応答しなくなります。メモリについてはよくわかりませんが、試練全体を通してCPU使用率は低くなっています。

問題の診断/修正をどこから始めるべきか誰かが知っていますか?

更新:私はより長期的な解決策を探していますが、時々アプリを再起動すると問題が修正されます。メモリ使用量は徐々に増加します(最初はインスタンスあたり約30mb、1時間後に40mbになり、クラッシュするまでに60または70mbになります)。

4

3 に答える 3

1

アプリを再起動すると問題が解決する場合は、リソースの使用状況を確認することから始めるとよいでしょう。

于 2009-10-25T01:27:44.063 に答える
1

New Relicは、組み合わせたメモリ使用量を表示できます。Engine Yardは、Rack :: Bug、MemoryLogic、Oinkなどのツールを推奨しています。これはあなたが役に立つかもしれない似たようなものについての素晴らしい記事です。

于 2009-10-25T15:33:59.180 に答える
0

ある種のメモリリークがあるようです。問題を解決したい場合は、何が起こっているのかがわかるまで、PassengerMaxRequestsを少し低い値に設定してみてください。

http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequests

これにより、インスタンスが設定された数のリクエストを処理した後、インスタンスが個別に再起動されます。彼らがロックする前に彼らが自動的に再起動しているスイートスポットを見つけるためにそれをいじる必要があるかもしれません。

その他のヒントは次のとおりです。-プラグイン/gemを調べて、それらが最新であることを確認します-メモリを大量に消費する重いアクションやリクエストをチェックします(NewRelicはこれに最適です)-REEへの切り替えを検討することをお勧めしますガベージコレクションが優れているため

最後に、現在実行中のパッセンジャーインスタンスを調べ、特定のメモリしきい値を超えた場合にそれらを強制終了するcronジョブを設定することをお勧めします。乗客はそれらの再起動を処理します。

于 2009-10-27T17:21:51.900 に答える