httpd 記憶體使用情況
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
此伺服器(亞馬遜 AWS
m1.small
實例)具有1.7 Gb
RAM。因此,因此:關於如何最好地調整
httpd
設置或如何診斷究竟是什麼可能導致這種情況的任何進一步的指示/建議?
這是我為“解決”它所做的工作:
- 設置
MaxClients 7
(基於(1740.8Mb Memory on server - 900Mb for MySQL + other stuff) / 111Mb average usage per httpd process = 7.5747747747747747747747747747748
)所以:
<IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 7 MaxRequestsPerChild 4000 </IfModule>
- 禁用所有 Apache 模組,除了
authz_host_module
,log_config_module
,expires_module
,deflate_module
,setenvif_module
,mime_module
,autoindex_module
,negotiation_module
,dir_module
,alias_module
,rewrite_module
,php5_module
- 刪除
mod_ssl
包,因為客戶端沒有使用https://
任何東西。一旦這個新配置執行了一段時間,我會報告,看看這是否解決了它。
這裡的一些靈感來自:http ://www.activoinc.com/blog/2009/08/31/performance-optimized-httpd-conf-for-magento-ecommerce/和http://www.activoinc.com/下載/httpd.conf-magento