不能启动超过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