Apache:MaxSpareServers 与 ServerLimit?

Apache:MaxSpareServers 与 ServerLimit?

我目前正在调查我们某些服务器的一个问题,其中 Apache 进程最终会消耗大量内存,以至于达到交换文件的程度,并导致服务器在达到峰值流量时无响应。查看特定问题服务器的 Apache conf,我在 conf 文件中看到以下内容:

启动服务器 50 最小备用服务器 25 最大备用服务器 90 服务器限制 185 最大客户端 185 每个子级最大请求数 4000

有问题的服务器当前有 185 个空闲的 Apache 进程在运行,占用了服务器上 7.2GB 可用空间中的 6.2GB。但是 Apache 难道不应该只有 90 个活动进程吗?它似乎使用 ServerLimit 而不是 MaxSpareServers 来确定机器上有多少个活动 Apache 进程。如果它在流量高峰期这样做,我可以理解,但是即使几乎没有任何流量进入服务器,服务器上也始终有 185 个 httpd 进程在运行。

配置:Apache 2.2.15 PHP 5.3.3 Redhat Linux Enterprise 6.3

那么,当我的 MaxSpare 设置上限为 90 时,为什么总有 185 个 Apache 进程在运行?

答案1

您的配置不应该导致出现 185 个请求。可能是由于某种原因,您实际上同时收到这么多请求(例如缓慢的 HTTP DoS 攻击)。查看 mod_status 显示的内容以进行进一步调查(请参阅http://httpd.apache.org/docs/2.2/mod/mod_status.html了解如何启用它)。

相关内容