私のアプリケーションは 2.2 GB のメモリを使用しているため、ディスクにスワップしています。アプリケーションの何が原因でメモリを大量に消費するのかわかりません。
これは、2 GB の RAM を搭載した RHEL5 VM です。
Rails はバージョン 3.1.3 です。
Phusion Passenger バージョン 3.0.11 を使用する nginx v1.0.10 の Web サーバー。
「ruby」プロセスは、メモリ フットプリントに関して完全にオフフックのように見えます。
アプリケーションは、比較的単純な製品カタログです。メモリが不足すると、サーバーは 1 日に約 2 回クラッシュします。memcached v1.4.4 も使用しています。
Rails キャッシングは、最終的にそれ以上のメモリを確立できなくなったときにクラッシュを引き起こしています。
アプリケーションのフットプリントがこれほど大きい理由を判断するために、どのような手順を実行すればよいかわかりません。
それは可能性が:
1) Some gems being loaded into memory?
2) A faulty or insufficient Passenger setup in my nginx.conf file?
3) Something else?
どなたでもご協力いただければ幸いです。夜は2時間ごとにチェックしなければなりません。楽しくない!
アップデート:
乗客の構成は次のとおりです。
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;
}
また、ロギング ユーティリティで、このことが 20 以上の ruby proc に急速にスピンアップしていることにも気付きました。