2016-09-28 44 views
0

我有一个在AWS中运行的大型基于Web的应用程序,其中包含许多EC2实例。偶尔 - 大约每周两次或三次 - 我收到来自我的Sensu监控系统的警报通知,通知我其中一个实例已达到100%CPU。为什么IOWait中的AWS EC2 CPU使用率瞬间高达100%?

这是通知:

CheckCPU TOTAL WARNING: total=100.0 user=0.0 nice=0.0 system=0.0 idle=25.0 iowait=100.0 irq=0.0 softirq=0.0 steal=0.0 guest=0.0 

Host: my_host_name 
Timestamp: 2016-09-28 13:38:57 +0000 
Address: XX.XX.XX.XX 
Check Name: check-cpu-usage 
Command: /etc/sensu/plugins/check-cpu.rb -w 70 -c 90 
Status: 1 
Occurrences: 1 

这似乎是一个瞬间发生,CPU进入回落到正常水平秒之内。所以这似乎不应该太担心。但我仍然好奇它为什么会发生。请注意,CPU占用100%IOWaits。亚马逊的监测系统并没有注意到这一点。下图给出了CPU & IOlevels图像在13:38

enter image description here

enter image description here

enter image description here

有趣的是,AWS说告诉我,这种情况将很快退休。可能是两者有关吗?

enter image description here

回答

0

AWS只显示5分钟内,它看起来像你的CPU检查的就是设定一个发生后发出警报。如果您的CPU检查间隔小于5分钟,则AWS控制台可能会卷起平均值以掩盖实际CPU峰值。

我建议将AWS监控控制台的范围缩小到一个较小的时间段,以查看是否在那里看到峰值。

0

我会将此添加为评论,但我没有声望这样做。

我已经注意到我的ec2实例已经这样做了,但是在apt-get update + upgrade之后更长。 我很难说它是一个Apache的东西,然后开始在一个新实例中使用Nginx进行测试,并且它只是做了它,几个小时前运行apt-get,然后回来找到使用完整cpu的实例 - 几个小时!好东西它只是一个测试机器,但我不知道ubuntu/apt-get有什么问题可能导致这种情况。从现在开始,我想我必须在apt-get之后重新启动机器,因为它似乎是使其恢复正常的唯一方法。