Apache 挂在“读取请求”, PID 占据 100% CP

最近,在某种程度上与某些服务器的更新重合 (虽然有几种变化), Apache 它开始结束,其中一些过程卡在“读取请求”状态中。 每个 PID, 这落入了这种情况 100% CPU并且很少,这与他符合他和另一个依赖过程 (根据 lsof) - 有些有开放的连接 TCP / IP, 有些人等着,有些人只听 www.

该计划如下:

重新开始 apache

等一会儿 (分钟)

获取“请求阅读”僵尸的过程,处理器开始工作

更多的僵尸来了,一切都与任何明显的东西不匹配

处理器装载到达 15-40 取决于我上次注意到这一点。

GOTO 1

整个周期持续来自 30 分钟到 4 几个小时,取决于我及时执行阶梯的能力 1.

server-status 给我:

R_.__.K._K.._._...._........W...................................
................................................................
................................................................
................................................................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-0 24363 0/1/7 R 0.46 447 844 0.0 0.00 0.26 ? ? ..reading..
[followed by a bunch of entirely normal requests]

当然,在服务器状态栏中缺少将帮助我调试此操作的关键信息。

我无法跟踪任何混凝土。 我试过了 lsof, netstat, 通过杂志看 (虽然需要观看大量的杂志。 没有任何明显的发现). 网络流量中没有跳跃,服务器积极提供大量随机网站,因此轨道传入的化合物很难。

最初,它开始了一个过时的安装 Lenny, 因此,我开始了部分包更新 Squeeze. 到目前为止,没有更新导致它消失的事实 (虽然幸运的是,我得到了很好的,新的软件!).

除了开始
http://httpd.apache.org/dev/debugging.html
, 还有什么可以做到的来试图找到问题的来源吗?

细节:

Debian Lenny / Squeeze (基本上 Lenny. 某些组件已更新为 Squeeze), 在工作 Linux 2.6.32-5-xen-amd64 敬主人 Debian Squeeze Xen.

初步形式 Apache2 MPM (2.2.16-6 + squeeze7)

模块: libapache2-mod-fastcgi, libapache2-mod-perl2, libapache2-mod-php5, libapache2-mod-python, libapache2-mod-scgi, libapache2-mod-wsgi, libapache2-modxslt, libapache2-svn
已邀请:

窦买办

赞同来自:

我在运行的服务器上有同样的问题 CentOS 6.2. 我怀疑它在某种方式与日志的每周旋转框架中的框架顺畅重启。 当我设置这个过程 httpd, 占用 100% CPU循环,它在读取频道描述符中读取空行 (STDIN?). 所以,我认为主要问题是 read () 必须阻止而不是返回零一直导致 100% 加载CP。

要回复问题请先登录注册