为什么来自IOWait的AWS EC2 CPU使用率暂时高达100%?

时间:2016-09-28 16:54:37

标签: amazon-web-services amazon-ec2 sensu

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

这是通知:

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和CPU的图片。 IO等级是13:38

enter image description here

enter image description here

enter image description here

有趣的是,AWS说告诉我这个实例很快就会退役。可能两者有关系吗?

enter image description here

2 个答案:

答案 0 :(得分:0)

AWS仅显示5分钟的时间段,看起来您的CPU检查设置为在一次发生后发送警报。如果您的CPU检查间隔小于5分钟,则AWS控制台可能会累计平均值以掩盖实际的CPU峰值。

我建议将AWS监控控制台缩小到较短的时间段,看看是否看到那里的尖峰。

答案 1 :(得分:0)

我会将此添加为评论,但我没有声誉。

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

相关问题