2012-04-11 19 views
0

4GBのRAMを搭載したサーバー上で2つのレールアプリケーションを実行しています。どちらのサーバーもレール3.2.1を使用しており、開発モードまたはプロダクションモードのいずれかで実行すると、サーバーは毎日最大1.07GBのラムを消費する信じられないほどのスピードでRAMを消耗します。わずか4日間サーバを稼動させ続けると、モニタリングですべてのメモリアラームがトリガされ、わずか98MBのRAMが解放されました。Railsサーバーのメモリリーク/ブロッティングの問題

私たちは、鼓動に関連するアクティブレコードの最適化を試みましたが、まだ効果はありませんでした。コントローラのどれに間違いがあるのか​​をどのように追跡することができるのかを理解するのを助けてください。

mysqlデータベースとwebrickサーバーを使用しています。 ありがとう!

+0

Webrickを実稼働環境で使用していますか? – Ernest

+0

relic rpmツールを使用して、ワット状態をチェックすることができます。 –

+1

暗闇の中で刺す:精神(yamlパーサー)が1.9.2でメモリをリークする - YAML :: ENGINEを確認する –

答えて

1

これは、プロジェクトの詳細自体を調べることなく、答えが非常に難しいです。私はあなたのターゲット生産ビルドでWebrickを使用しないことを確信していますが(そうですか?)、それがPassengerかあなたの選択で同じように動作するかどうかを確認してください。

また、私はpdfs、csv解析などの機能を見てみることをお勧めします。pdfファイルを生成しているリソースが同様の方法でリソースを食べていて、5MBのゴミ実行ごとに収集されたメモリー。

幸運。

+0

Passengerを使用する場合、[PassengerMaxRequests](http://www.modrails.com/documentation/Users%20guide% 20Apache.html#PassengerMaxRequests)オプションを使用して、一定数のリクエストの後にサーバーインスタンスを再起動できます。明らかに、あなたのアプリでメモリリークの問題を整理すべきだと述べていますが。 – theodorton