2015-12-10 176 views
2

的竊取時間過長我已經習慣AWS EC2來部署一個使用Apache Kafka數據的Python應用程序。最近幾天,我發現當傳入數據變大時,CPU的竊取時間會變得過高(約35%)。AWS EC2

The following figure shown the CPU usage of that machine, given by Zabbix

使用的EC2實例是t2.medium,CPU 2和4G存儲器。任何人都可以告訴我爲什麼會發生這種情況,有什麼辦法可以避免它。

+0

請將您可以在EC2控制檯中找到的CPU信用餘額的Cloudwatch圖表發佈一段時間,該時間段與您所顯示圖表中的時間段相當。這應該很好地解釋您看到的內容,並且我期望它會通過@ user567797確認您在這些時間內已用完信用的答案。請注意,您越難推送一個信用不足的實例,則越多的時間顯示爲「被盜」,因爲當這些週期閒置時,不需要竊取。偷竊只出現在需求的情況下。 –

回答

4

如果不查看您的應用程序和指標,則很難評論。我的猜測是T2實例是burstable performance instances它們在正常情況下提供了基本的CPU性能。但是,當負載增加時,突發性能實例爆發,這意味着提高CPU性能。

CPU Credit指示實例中CPU的突發量。您可以將此CPU信用額度用於增加突發期間的CPU性能。

當您不支持CPU信用時,它會降低整體性能,而不僅僅是阻止您破壞性能。事實上,您將會觀察到90%以上的CPU竊取時間,這意味着當您的信用不足時,管理程序不允許您的實例在CPU上。你可以看到更多http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html#t2-instances-cpu-credits

希望這會有所幫助。

+0

這或者只是試圖在CPU限制的實例上做太多事情,可能是忙碌的鄰居。根據我的經驗,CPU竊取對於* .large實例和更大的實例而言不是問題。 –

+0

@ user567797我懷疑你是正確的,但有一點需要澄清的是t2實例並不是完全「可破解的」。核心專用於虛擬機,並始終以完全傾斜運行,直到您的餘額接近0.在1個核心的100%處,每1分鐘就會燒掉1個信用點。在t2.medium的情況下,每分鐘都會獲得一小部分的信用額度,這足以保持20%的連續性,並且這裏的基準線看起來只略低於此數......證實這看起來像信用卡餘額很低。 –