2016-09-28 40 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之後重新啓動機器,因爲它似乎是使其恢復正常的唯一方法。