我们在 LAMP 盒子上。Centos。
从昨天开始我们就遇到了一个问题。我们的 httpd 进程数每小时都会达到 maxclient 限制。起初 maxclient 限制为 900。因此它会飙升到 900。
然后我们把它减少到 500。现在它飙升到 500。每小时的第一分钟都是准时。
由于这种情况发生在每小时的第一分钟。我们检查了 /var/log/cron 日志。有一些作业在每小时开始时运行。我们关闭了这些 cron 作业。仍然没有变化。在第一分钟开始出现峰值。持续约 10-15 分钟。
顺便提一下。我们今天还看到了一些脏 inode。我们还研究了所有最近的部署。我们没有任何重大变化。
这是服务器开始挂起时的服务器状态输出:
Current Time: Friday, 11-May-2012 21:02:42 UTC
Restart Time: Friday, 11-May-2012 19:09:28 UTC
Parent Server Generation: 0
Server uptime: 1 hour 53 minutes 13 seconds
Total accesses: 1128389 - Total Traffic: 8.9 GB
CPU Usage: u203.85 s36.51 cu.1 cs0 - 3.54% CPU load
166 requests/sec - 1.3 MB/second - 8.3 kB/request
500 requests currently being processed, 0 idle workers
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKWWWWWWW
WWWWWWWWWWWWWWRWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWCWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWCWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
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
/var/log/messages 持续接收以下文本。请注意有些单词是错误的。我想知道是否存在每小时尝试修复某些问题的系统机制。:
May 11 22:46:43 www kernel: <ald(2825): WRITE block urnald(2825): WRITE block 128852880 on sdb1kjournald(2825): WRITE block 12885<7>kjournald(2825): WRITE block 128852896 on sdb1
May 11 22:46:43 www kernel: >kjournald(2825): WRITE block 128853
May 11 22:46:43 www kernel: WRITE block 128853104 on sdb5): WRITE block 128853112 on sdb1
May 11 22:46:43 www kernel: 2825): WRITE block 128853120 on sdb1
May 11 22:47:01 www kernel: ock 685806792 on sda1
May 11 22:47:05 www kernel: ock 129145376 on sdb1
May 11 22:47:10 www kernel: RITE block 789789472 on sda1
May 11 22:47:11 www kernel: ock 129189464 on sdb1
May 11 22:47:16 www kernel: <7ock 129360712 on sock 129360720 on sdb1
May 11 22:47:41 www kernel: <TE block 262819968 on sdb1
您建议我可以在哪里找到引发该问题的罪魁祸首?
答案1
实际访问日志中是否有任何内容表明外部用户正在访问?您可以尝试在事件发生之前运行 apachetop,并在事件发生时观察它。
答案2
当有缺陷的脚本发出递归请求时,我曾见过这样的峰值。您能否检查 access.log 中服务器向自身发出的请求(即搜索服务器的 IP 地址)?