我怎么能理解为什么阿帕奇消耗这么多的CPU – EC2

我有一个ec2 c3.medium实例运行。 它最近开始最大化的CPU使服务器无响应。 重启实例并没有太长的帮助,虽然它确实让Apache服务器站点再次运行了一个小时左右。

当我看到顶部时,我可以看到各种Apache进程正在运行,这在10和1之间波动,这些CPU使用率的波动高达30%左右。

当它最大的是这些Apache进程是问题/

我怎样才能找出驱动这些过程的是什么?

这里的顶部总结的快照

top - 16:06:32 up 33 min, 2 users, load average: 1.80, 1.67, 2.13 Tasks: 87 total, 2 running, 85 sleeping, 0 stopped, 0 zombie Cpu(s): 55.4%us, 2.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 42.0%st Mem: 3842540k total, 1698436k used, 2144104k free, 87556k buffers Swap: 1048572k total, 0k used, 1048572k free, 501328k cached 2088 apache 20 0 707m 75m 31m S 17.9 2.0 0:53.59 /usr/sbin/httpd 2188 apache 20 0 698m 70m 27m S 17.9 1.9 0:59.35 /usr/sbin/httpd 1613 mysql 20 0 885m 200m 6860 S 10.6 5.4 3:41.55 /usr/libexec/mysqld 2197 apache 20 0 698m 86m 44m S 5.6 2.3 0:53.89 /usr/sbin/httpd 1864 apache 20 0 698m 78m 35m S 1.7 2.1 0:55.13 /usr/sbin/httpd 2097 apache 20 0 699m 87m 43m S 1.7 2.3 0:54.70 /usr/sbin/httpd 

从来没有这样的问题,所以除了看顶部不知道如何确定问题来自哪里。

谢谢。

更新:在评论中没有听到我的问题,但有趣的是,这个问题在发生了大约2周之后才自行解决,这对我意味着AWS窃取了太多的CPU,而不是我们的设置中的问题。 任何人对此结论有何评论?

  1. Load average > 1 != bad , 你需要更好地理解它 。
  2. CPU线路中的42.0%st不好。 这就是“偷窃时间” ,这意味着你正在使用的计算主机可能会超额预订,其他情况下42%的CPU周期正在发生,而不是你自己。
  3. 运行apachectl fullstatus并寻找工作在W状态。 那些会告诉你什么请求Apache服务的那一刻。