Apache httpd进程压倒性的服务器

随机Apache似乎吓坏了,吃掉了CPU的使用,并淹没服务器。 每日浏览量只有8000左右,所以它可以肯定地处理这个stream量。 这似乎也是随机发生的。 有没有人听说过这种情况以及可能的解决scheme?

一些基本的服务器统计:运行WHM / Cpanel最新稳定的4G内存Xeon CPU X3430 @ 2.40GHz。

Apache:2.2.17 PHP:5.2.17 w / eAccelerator

最佳:

top - 16:41:12 up 7:15, 1 user, load average: 2.77, 2.23, 1.91 Tasks: 79 total, 4 running, 75 sleeping, 0 stopped, 0 zombie Cpu(s): 88.4% us, 2.5% sy, 0.0% ni, 9.1% id, 0.1% wa, 0.0% hi, 0.0% si Mem: 4024216k total, 960384k used, 3063832k free, 0k buffers Swap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 31902 nobody 17 0 43072 16m 6804 S 65.9 0.4 0:07.93 httpd 29802 nobody 16 0 45700 24m 13m R 32.3 0.6 0:19.77 httpd 32159 nobody 15 0 41984 11m 3440 S 30.3 0.3 0:01.34 httpd 28227 nobody 15 0 43492 17m 7456 S 29.6 0.4 0:27.59 httpd 31848 nobody 16 0 46184 17m 6608 R 29.6 0.5 0:07.40 httpd 31785 nobody 16 0 44872 16m 5964 S 26.0 0.4 0:01.05 httpd 30310 nobody 15 0 43284 16m 7228 S 24.6 0.4 0:08.90 httpd 32130 nobody 15 0 42064 12m 3776 S 21.6 0.3 0:02.18 httpd 28597 nobody 16 0 43396 17m 7368 S 21.0 0.4 0:12.76 httpd 32158 nobody 15 0 43180 14m 5216 S 21.0 0.4 0:01.00 httpd 17861 nobody 16 0 43484 24m 14m S 17.3 0.6 1:15.55 httpd 31764 mysql 15 0 631m 318m 5056 S 14.3 8.1 76:50.21 mysqld 32157 nobody 15 0 42668 15m 6312 S 10.7 0.4 0:01.07 httpd 29841 nobody 15 0 44512 18m 8128 S 7.7 0.5 0:15.14 httpd 26296 nobody 15 0 44624 18m 7800 S 1.0 0.5 0:31.26 httpd 31825 nobody 15 0 43268 16m 6468 S 0.7 0.4 0:07.50 httpd 1 root 15 0 1716 608 520 S 0.0 0.0 0:00.49 init 

阿帕奇信息

几件事你可以检查:

  • 这个服务器是一个VPS(交换/缓冲区是0K,通常发生在VPS服务器上)? 如果是这种情况,可能会导致服务器上其他站点的部分或全部减速。 如果是这种情况,您可以切换VPS提供商或移动到专用服务器。
  • 检查/ server-status的输出,因为你已经启用了mod_status。 这将告诉你所有的httpd客户端在做什么,并可能会给你一些问题的原因(例如一个缓慢的加载页面)。
  • 尝试使用ab(ApacheBench)对您的网站进行基准testing,以获得最大容量。 每天8000次点击只是每11秒钟一次,但如果stream量不均匀分布或者某些页面需要10秒钟渲染,则很容易出现问题。 有时你可能会在一天中的某个时间点击您网站的最大服务器容量。
  • 尝试获得更准确的入站stream量数量,不要以为每天只有8k次点击。 谷歌分析(或类似的服务)或Apache日志parsing就足够了,并会让你知道,如果一个或多个客户正在锤击你的网站出于某种原因,或者你只是收到突然增加的stream量(例如,博客文章在Reddit上)。
  • 中断是否发生在当天的特定时间(在每个小时或每天的同一时间)? 如果是这样,它可能是一个导致问题的cron脚本。