带有 mod_fcgid 的 apache2 随机挂起

带有 mod_fcgid 的 apache2 随机挂起

我已经在 ubuntu 11.10 上运行此配置一年多了。我不得不将服务移至更大的服务器,因此我使用 clonezilla 完整复制了操作系统磁盘并将其还原到新服务器。我将新服务器上的操作系统升级到 12.04。两个系统上的其他所有内容都相同。

我的问题是:Apache 运行良好,远远超出了 maxclients 限制。突然,php5-cgi 生成越来越多的进程,它们都处于“工作”状态,而 apache 无法再处理请求。所有 apache 请求都变为“W”状态,并处于此状态,而新请求不断涌来,最终所有请求都达到 maxclients 设置。1 分钟后,所有 fcgi 进程突然将其状态变为“就绪”,一切恢复正常。

发生这种情况时,Apache 不会为网站提供服务。看起来 fcgi 只是挂起并停止响应。“top”什么都没显示,一切看起来都很好,没有处于 D 状态的进程或任何其他状态。当发生这种情况时,Apache 错误日志显示 fcgid 无法应用进程槽。但我不明白为什么会突然发生这种情况。我唯一的想法是从 11.10 升级到 12.04 时出现了问题。但为什么它会如此随机地发生这种情况,而不管使用情况、负载或其他什么?

非常感谢您的帮助!

说了这么多,我想问一下是否有人知道为什么配置会中断?

答案1

虽然深入研究为什么这种组合会在您的具体情况下挂起可能会很有趣,但这是一个非常不寻常的情况(多年的旧操作系统,克隆到不同的机器,然后发行版升级)并且甚至可能不是什么问题。

更务实的方法是从头安装 12.04,然后重新安装您需要的所有其他内容,以排除操作系统的悠久而丰富的历史作为问题的原因。

这就是 Puppet、CFEngine、SaltStack 或任何其他配置管理系统发挥作用的地方。

相关内容