httpd
(Apache/2.2.29
)メモリ使用量に問題があります。
時間が経つにつれて、httpd
プロセスのメモリ使用量は徐々に増加し、最終的に100%になります。
最後に再起動したのhttpd
は約24時間前でした。次からの出力free -m
:
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 1415 239 0 202 424
-/+ buffers/cache: 788 866
Swap: 1023 4 1019
それが間違いないことを証明するためにhttpd
、私は再起動しhttpd
、free -m
再び走りました:
[ec2-user@www ~]$ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 760 894 0 202 360
-/+ buffers/cache: 197 1457
Swap: 1023 4 1019
したがって、Apacheを再起動すると、空きメモリが239 Mbから894 Mbになります。これは大きな飛躍のようです。
私は現在有効なApacheモジュールのリストを調べており(かなりたくさんあります)、無効化/削除されmod_wsgi
ていますmod_perl
(どちらもPHPベースのWebアプリケーションを実行しているこのサーバーには必要ありません-特にMagento)。
https://servercheck.in/blog/3-small-tweaks-make-apache-flyに基づいて、実行ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
して次の出力を取得しました。
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
15.1328 MB
118.09 MB
127.449 MB
129.059 MB
117.734 MB
113.824 MB
125.062 MB
123.922 MB
119.855 MB
108.066 MB
136.23 MB
114.031 MB
113.27 MB
110.695 MB
102.113 MB
113.234 MB
186.816 MB
118.602 MB
0.835938 MB
他の推奨診断ツールを実行すると、次の結果MaxClients
がps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
返されます。
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
110.212 MB
このサーバー(Amazon AWS m1.small
インスタンス)に1.7 Gb
はRAM があります。したがって、したがって:
httpd
設定を微調整する最善の方法や、これを引き起こしている可能性のあるものを正確に診断する方法に関するさらなるポインター/提案はありますか?
nginx
ので、試してみる時が来るかもしれませんが、正直なところ、私は長年Apacheを使用しており、大きな問題は一度もありませんでした。しかし、Magentoは本当にメモリをかみます。
grep httpd
(少なくとも私にとっては)-processの低メモリ使用量が含まれていることに注意してください。:私はこのような計算からその行を除外するために推薦することを修正するためにps aux | grep 'httpd' | grep -v grep | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
-/+ buffers/cache
行を見る必要があることに注意してください。ただし、この場合、変更は同等です。Apacheの調整方法によっては、リクエストを処理する準備ができているいくつかのプロセスで開始する場合があります。多数の同時要求の期間が経過すると、おそらく負荷を処理するためにより多くのプロセスが分岐します。アイドルプロセスの数も調整できます。したがって、Apacheが大きくなりすぎてメモリを使用するようになった場合は、チューニングを行う必要があります。