我如何理解为什么 apache 消耗了这么多的 CPU - ec2

我如何理解为什么 apache 消耗了这么多的 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

  1. Load average > 1 != bad你需要更好地理解它
  2. CPU 线路中的这个42.0%st不太好。“偷时间”这意味着您所使用的计算主机可能已超额认购,并且 42% 的 CPU 周期发生在其他实例中,而不是您的实例中。
  3. 运行apachectl fullstatus并查找该W州的工作人员。这些将告诉您 Apache 当时正在处理哪些请求。

相关内容