Apache 2.4 不关闭连接

Apache 2.4 不关闭连接

我有一个Apache 2.4在带有 CentOS 的 AWS 微型实例上运行的 Web 服务器。Apache
运行带有 prefork MPM 模块的 PHP。
服务器通过 Amazon 负载均衡器访问,该负载均衡器具有运行状况检查功能,每 60 秒尝试访问服务器的 index.php 网页。

问题是,经过 1-2 天,Apache 不知何故打开了 256 个 index.php 页面的进程,并出现以下错误:

[Sun Sep 08 02:13:00.356051 2013] [mpm_prefork:error] [pid 1201] (12)Cannot allocate memory: AH00159: fork: Unable to fork new process
[Sun Sep 08 02:13:13.656694 2013] [mpm_prefork:error] [pid 1201] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

通常当发生这种情况时,新的 http 连接将不再被接受。

Apache 可能不会关闭负载均衡器的所有连接。
我们有另一台装有 Apache 2.2 的服务器,它没有这个问题,所以问题可能出在 2.4 版本上,它与 2.2 有很大不同(我们没有更改 Apache 的任何默认配置)。

mod_status 已启用,以下是当这种情况发生一次时我们可以得到的输出: http://www.speedyshare.com/vE3My/server-status.txt

有人知道我们该如何解决这个问题吗?

提前致谢!

答案1

我发现当无限期地重复使用 apache 进程时,它们会膨胀(泄漏内存),因此值得MaxRequestsPerChild 200在 httpd.conf 中设置并重新启动。

相关内容