2012-04-18 21 views
1

2.2 GBのメモリを使用しているため、アプリケーションがディスクにスワップしています。私のアプリケーションで何がそのようなメモリ豚になるのか分かりません。My Rails 3.1.3アプリケーションのメモリが多すぎます

これは2 GBのRAMを搭載したRHEL5 VMです。

Railsはバージョン3.1.3です。

Phusion Passengerバージョン3.0.11を使用しているnginx v1.0.10のマイウェブサーバ。

"ルビー"プロセスは、メモリフットプリントに関して完全にはずれているようです。

このアプリケーションは、比較的簡単な製品カタログです。メモリ不足時にサーバーが1日約2回クラッシュしています。 memcached v1.4.4も使用しています。

最終的にメモリを設定できなくなったときに、キャッシュキャッシュが原因でクラッシュが発生しています。

私のアプリケーションに大きなフットプリントがある理由を判断するためにどのような手順をとるべきかわかりません。

それは次のようになります。

1) Some gems being loaded into memory? 
2) A faulty or insufficient Passenger setup in my nginx.conf file? 
3) Something else? 

私は深く、誰もが提供できる任意の助けに感謝!私は夜に2時間ごとにこのことをチェックしなければなりません。楽しくない!私もこの事はすぐに20以上のルビーprocsのにスピンアップしている私のロギングユーティリティに気づい

server { 
    listen 80; 
    client_max_body_size 4M; 
    server_name www.myapp.net myapp.net *.myapp.net; 
    root /usr/code/mcp5/public; # <--- be sure to point to 'public'! 
    passenger_enabled on; 
    passenger_min_instances    5; 
    rails_env       production; 
    rails_framework_spawner_idle_time 0; 
    rails_app_spawner_idle_time   0; 
} 

UPDATE:次のように

旅客configがあります。

答えて

1

あなたの乗客の構成はどうなっていますか?利用可能なリソースのスレッドが多すぎる可能性があります。

ありがとうございます。

私たちのサーバーはあなたよりもはるかに多くのリソースを持っていますが、引き続き以下の指示文を使用しています。

PassengerMaxPoolSize

で始めると負荷テストを実行するために10にそれを設定してみてください。これは、少なくともあなたのサーバーを殺すからアプリを停止する必要があります。私は、ボトルネックがどこにあるのかを判断しようと、さらに時間を費やすだろう。パフォーマンス監視にはNewrelicを使用します。

sudo /usr/local/bin/passenger-status 

に属しているとどのように多くのプロセスを表示するために:あなたはNewRelicを使用することはできませんか、あなたは乗客の問題を特定するために、次の試みることができるプロの計画のためのお金を持っていない場合は、これは

+0

お返事ありがとうございました!上記の設定を投稿しました。 – AKWF

+0

私は自分のレスポンスを更新しました –

+0

私たちはNewRelicも使用しています。新しいサーバモニタリング機能とポインタが私の問題解決に役立っています。 23時を知っていたラックプロセス。あなたが言及したパラメータを追加します。再度、感謝します。 – AKWF

1

を役に立てば幸いどのサイト - 非常に便利なサービス提供 に関わるすべてのプロセス(Apacheの+乗客+ルビー)の詳細なメモリ情報を表示するために、1台のマシンと

sudo /usr/local/bin/passenger-memory-stats 

からいくつかのサイトにサービスを提供する場合。

muninのような従来のモニタリングをセットアップすることもできます。ムーニーで乗客を監視するためのいくつかのhowtosがあります

関連する問題