Apache 服务器上的 Icinga HTTP 间歇性不返回 200

Apache 服务器上的 Icinga HTTP 间歇性不返回 200

我有一台在 Debian Lenny 上运行 Apache/2.2.16 的服务器。该服务器托管大约 6 个虚拟主机。其中一个虚拟主机只是服务器的 FQDN,除了 Icinga 每 5 分钟检查一次的 index.html 页面外,没有其他内容。现在,服务器通常处于中等负载。它托管一个带有 Vbulletin 论坛部分的 Joomla 网站。它还为网站上的许多视频做一些 ffmpeg 工作。它一直很忙。现在,关键来了。Icinga 正在监控服务器的 FQDN,而不是用于提供内容的主要虚拟主机。Icinga 会定期报告 HTTP 关键问题,我将登录 icinga 并通过 telnet 或“siege --get”运行“get /”。这里发生了一件有趣的事情,我没有收到来自 Apache 的响应。没有 200 代码,什么都没有。

我的第一个假设是 Apache 被堵塞了,所以我去启动服务器上托管的其他虚拟主机。它们启动正常,但有一点延迟。我挠了挠头,然后尝试在浏览器中启动 Icinga 正在监控的 FQDN,它也能正常工作。接下来,我检查 FQDN 虚拟主机的 Apache 日志,我看到 Icinga 服务器正在访问,但错误代码为 200。我查看服务器状态,发现平均有大约 60 个请求正在处理,最多有 120 个。

我不禁认为该问题与 Apache 和 suPHP 的限制有关。最终我想采用 modPHP/APC 解决方案,但目前我必须使用 suPHP。有人见过 Icinga 监控中的此类问题吗?有人有推荐的 Apache mpm_prefork_module 配置吗?当前设置为:

ServerLimit          512
StartServers          20
MinSpareServers       20
MaxSpareServers      40
MaxClients          512
MaxRequestsPerChild   0

任何见解或观点都值得赞赏。

此外,临时解决办法是定期重启 apache,虽然这确实有效,但我确信用户会对该网站感到厌烦。

相关内容