2012-07-28 87 views
21

我有運行Windows 2008的R2的微型EC2實例。近來我一直在收到很多高CPU警報,並且當我登錄到AWS管理控制檯時,我發現我的CPU實際上是100%掛鉤。但是,如果我登錄到實例並啓動任務管理器,則我的CPU看起來幾乎空閒。我已經讓任務管理器打開了一段時間,並且截圖顯示了AWS正在報告和我的實例看起來像是在做什麼之間的區別。建議?AWS EC2高CPU警報都會響起

CPU Usage Graphhttps://s3.amazonaws.com/caskerdbbucket/public/cpu.png

PS:上的任務管理器的更新速度被設定爲「低」

+0

我在t1.micro linux實例上看到相同的東西。 – Molomby 2014-05-23 04:36:41

+0

隨着t2實例的發佈,這可能幾乎已經消失,因爲我們對何時可能會受到限制的可見性更高。 – 2015-03-07 15:18:14

回答

34

由操作系統所暴露的數據往往是在虛擬化環境等Amazon EC2不足或誤導,和報告的百分比取決於您的實例類型和底層的處理器核心利用率(通常不匹配您從管理程序呈現的虛擬化硬件),除其他事項外 - 你所看到的很可能是由各自的佔用CPU引起的時間如暴露在最相關的Unix/Linux監控工具現在(而不是在Windows中,不幸的是,看到我的問題Is there a Windows equivalent of Unix 'CPU steal time'?更多的關於這個問題) - 見例如列sartop%竊取或ST:

ST - 偷時間
由管理程序執行其他任務從該虛擬機 「竊取」 CPU的量(如運行的另一個虛擬 機)。

博客文章EC2 monitoring: the case of stolen CPU提供了這個主題的一個很好的探索和插圖:

當top命令顯示了40%的CPU繁忙,但CloudWatch的說, 服務器以100%的淋漓盡致了 - 哪一方你拿?答案很簡單 (CloudWatch的是正確的,頂部是不是)[...]

佔用CPU時間是t1.micro您正在使用的EC2實例類型中特別普遍,從而可以獲得大量節流通過定義(通常〜97%盜取的時間!),請參閱Micro Instances爲理念的廣泛解釋和說明 - 具體而言,部分When the Instance Uses Its Allotted Resources狀態:

我們期待您的應用程序只消耗一定量的CPU 資源在一段時間內。如果應用程序消耗超過 您的實例的分配CPU資源,所以它在低CPU級別運行,我們暫時限制 實例。如果您的實例繼續 使用其所有分配資源,它的性能會降低。我們 將增加我們限制其CPU級別的時間,從而增加了 時間允許的情況下才再次破滅。[重點煤礦]

因此,你可能已經超越了微實例可持續CPU使用配置文件,要麼需要調整你的工作量或切換到另一個實例類型。

+0

優秀的答案。在附註中,我的實例現在似乎恢復了正常。 – 2012-07-30 16:58:43

2

我有同樣的問題,並花了很多時間找出解決方案。 在互聯網上我沒有找到我的情況,所以我分享。

我在事件列表中發現記錄了很多欺詐性登錄嘗試。在這種情況下,任務管理器報告CPU使用率爲30-40%(Cloud Watch 100%),並在進程列表中顯示一些winlogon.exe。 更改遠程桌面端口(3389是默認值)後,我沒有更多的問題。 現在,Cloud Watch中的CPU使用率保持在34-35%。

希望這會有所幫助。