內存總是越來越少,虛擬內存使用越來越多
首先確定到底是什麼佔用了大量的內存
可以看到,大部分內存被閒置的httpd進程佔用
且當我重啓mysql服務後,內存沒有出現明顯變化,但是當我重啓apache時,內存佔用從2G瞬間下降到300M。由此可見,大量佔用內存的就是閒置的httpd進程所致
於是上網查找了原因,原來是wdcp面板的apache配置不合理所致
vim /www/wdlinux/httpd-2.2.22/conf/httpd-wdl.conf 看到如下代碼
不合理的地方在於MaxClients和MaxRequestsPerChild。
MaxClients指定的是可以啓動的APACHE進程數量上限,對於小內存的主機,這個設置(1024個)很容易把內存用光。
MaxRequestsPerChild指定的是每個APACHE進程可以處理的最多請求次數,達到次數之後這個進程就會退出,然後重新開啓新的進程。這一點的意義在於,進程會出現內存泄露的問題,就是進程使用的內存會越來越多,越來越多,越來越多,越來越多,無法釋放。設置MaxRequestsPerChild後,進程重啓動則可以解決。而WDCP中設置的爲0,0的意思爲,永不退出。
prefork調優,修改爲
修改完成後,保存
經多番測試,服務器內存使用被穩定在以下情況