我已经在ubuntu 11.10上运行了超过一年的这个configuration。 我不得不将服务移动到一个更大的服务器,所以我用clonezilla制作了一个完整的os磁盘副本,并将其恢复到新的服务器上。 我将新服务器上的操作系统升级到了12.04。 所有其他的东西在两个系统上是相同的。
我的问题是这样的:Apache运行良好,远远超出maxclients限制。 突然间,php5-cgi产生越来越多的进程,他们都处于“工作”状态,并且apache不能再服务器请求。 所有的apache请求都变成了“W”状态,并且在新的请求即将到来的时候坐在那里,最终所有请求都build立到maxclients设置。 1分钟后,所有的fcgi进程突然将状态转为“就绪”,一切恢复正常。
在这个过程中,Apache不会服务于这个网站。 它看起来像fcgi只是挂起,停止响应。 “top”什么也没有显示,一切看起来都很好,没有D状态的进程或任何东西。 Apache错误日志说,当这种情况发生时,fcgid不能应用进程槽。 但我不明白为什么突然这开始。 我唯一的想法就是在从11.10升级到12.04的时候会有什么问题。 但是为什么它是这样随机的,无论使用量,负载量还是其他任何东西?
非常感谢任何帮助!
说了这么多,我想问问是否有人知道为什么configuration中断?
尽pipe深入研究为什么这个组合会在你的确切情况下出现,这是一个非常不寻常的情况(多年的操作系统,克隆到不同的机器,然后发行版升级),甚至可能不是那种历史问题。
一个更实用的方法是从头开始安装12.04,并重新安装所需的所有东西,以排除操作系统的长期和丰富的历史,作为麻烦的原因。
这是一个configurationpipe理系统,如Puppet或CFEngine或SaltStack或其他十几个人中的任何一个都可以获得保留。