私たちのクライアントはRuby on Railsアプリで、ほとんどがクライアントベース(つまり、コントローラーとビューでの処理がほとんどない)で、ApacheとPassengerがサーバースタック。
各接続には、ユーザー接続ごとに約2MBかかることがわかります。これは合理的ですか、それとも構成に何か問題がありましたか?
各サーバーがサポートできるユーザー数を見積もろうとしています。
ありがとう!
Phusionの乗客のメモリフットプリントは、passenger-memory-statsを使用して決定する必要があります。 http://www.modrails.com/documentation/Users%20guide%20Apache.html#_inspecting_memory_usage を参照してください。
RSSフィールドに関する次のコメントに注意してください。
プライベートまたはプライベートダーティRSSフィールドは、プロセスの実際のメモリ使用量を示します。ここでは、すべてのApacheワーカープロセスがそれぞれ1MB未満のメモリしか使用しないことがわかります。これは、VMSize列に示されている50 MB程度のメモリ使用量よりもはるかに少ないです(これは多くの人が実際のメモリ使用量であると考えていますが、実際にはそうではありません)。
彼らはメモリ出力の良い例を提供しました:
[bash@localhost root]# passenger-memory-stats
------------- Apache processes --------------.
PID PPID Threads VMSize Private Name
---------------------------------------------.
5947 1 9 90.6 MB 0.5 MB /usr/sbin/Apache2 -k start
5948 5947 1 18.9 MB 0.7 MB /usr/sbin/fcgi-pm -k start
6029 5947 1 42.7 MB 0.5 MB /usr/sbin/Apache2 -k start
6030 5947 1 42.7 MB 0.5 MB /usr/sbin/Apache2 -k start
6031 5947 1 42.5 MB 0.3 MB /usr/sbin/Apache2 -k start
6033 5947 1 42.5 MB 0.4 MB /usr/sbin/Apache2 -k start
6034 5947 1 50.5 MB 0.4 MB /usr/sbin/Apache2 -k start
23482 5947 1 82.6 MB 0.4 MB /usr/sbin/Apache2 -k start
### Processes: 8
### Total private dirty RSS: 3.50 MB
--------- Passenger processes ---------.
PID Threads VMSize Private Name
---------------------------------------.
6026 1 10.9 MB 4.7 MB Passenger spawn server
23481 1 26.7 MB 3.0 MB Passenger FrameworkSpawner: 2.0.2
23791 1 26.8 MB 2.9 MB Passenger ApplicationSpawner: /var/www/projects/app1-foobar
23793 1 26.9 MB 17.1 MB Rails: /var/www/projects/app1-foobar
### Processes: 4
### Total private dirty RSS: 27.76 M
使用しているモジュールによっては、Apacheには2MBが妥当です。メモリ効率の最大化を調べるには、Apacheのmpm_worker
モジュールを調べることをお勧めします。
答えを待っている同様の質問があります。次のコマンドを使用しました。
ps aux | grep "Apache"
Apache 10120 0.1 5.2 287908 31964 ? S 10:41 0:26 /usr/sbin/httpd
総メモリの5.2%(600MB)なので、プロセスあたり約3MB(phpを使用)。これが正しいかどうかわからない。
私の質問はここにあります、 ec2メモリ使用量