【发布时间】:2012-07-04 05:23:50
【问题描述】:
我们有一个非常强大的服务器(32 核 cpu,96GB 内存)并且 apache 在 prefork 模式下运行。我们的 apache2.conf 文件包含这样的设置:
<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(ulimit -a 显示这些值已得到充分考虑)。
/var/log/apache2/error.log 中没有显示错误
【问题讨论】: