不能啓動超過1000個apache進程,但我們有一個非常強大的服務器(32核cpu,96GB RAM),並且Apache以prefork模式運行。我們apache2.conf文件包括這樣的設置:儘管maxclients和serverlimits設置爲3000
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 5
MaxSpareServers 20
ServerLimit 3000
MaxClients 3000
MaxRequestsPerChild 1000
</IfModule>
的問題是,當我們的網站是在重負載下(當Apache進程數達到1000準確地說)(或設置StartServers的時候1000以後),凍結的Apache2和需要重新啓動。然而,仍然有很多內存,cpu使用不足,而且apache進程數量遠遠超出maxclients。
我的問題是,我該怎麼做才能讓apache到達conf文件中配置的maxclients?
請考慮我們已經與在/etc/security/limits.conf發揮到最大設置打開的文件和nprocs到5000(-a的ulimit顯示這些值以及考慮)。
沒有錯誤在/var/log/apache2/error.log
感謝您的回答,順便說一句,您知道在編譯時更改變量的名稱嗎?爲了避免這個問題,我切換到mod worker + fpm + fast cgi,這限制了進程數量和增強的速度,減少了cpu和ram。 – christophe