Amazon-Ec2
為什麼我的 AWS 實例突然變得反應遲鈍,報告高“被盜”的 CPU
我有一堆 t2.small EC2 實例執行託管名為 thumbor 的圖像處理庫**,**用於簡單的動態圖像調整大小。原稿從 S3 載入。在實例前面我有一個 EC 負載均衡器。我在伺服器中安裝了 New Relic 伺服器監控。
問題 隨機的時候,我的伺服器突然開始體驗極高的 avg。響應時間。如果我查看 New Relic 中的統計數據,我唯一看到的是伺服器 CPU 持續出現峰值,報告“被盜”的 CPU。
我的伺服器似乎有足夠高的容量,同時吞吐量並沒有出現任何極端的峰值。
我注意到,如果我再次停止/啟動伺服器。然後被盜的 CPU 消失了,它們再次執行良好 - 直到下一次 - 可能是數小時或數天。
為什麼會發生這種情況,我該怎麼辦?
Amazon 的 t 系列實例使用 CPU 使用配額系統。當您達到配額時,您開始看到被盜百分比上升。您對此無能為力,這是產品的結構性問題。
- 總體上使用更少的 CPU。
- 使用更大的 t 系列實例。
- 使用沒有配額的 m 系列或 c 系列之一。
正如其他人所說,您很可能會用完CPU 積分。基本上,使用 T2 實例,您可以獲得 CPU 的一小部分,在 t2.small 的情況下獲得 20% 的核心,並且能夠突增到一個或兩個核心(取決於您的實例類型),直至達到您的極限CPU 積分。在大多數情況下,您也不應該在負載均衡器後面使用 T 實例,因為性能可變,它可能會導致難以診斷的奇怪問題。
如果您的積分用完,您需要遷移到更大的 T 實例,或遷移到對核心具有一致訪問權限的實例。C(計算優化)或 M(通用)會更合適。
您可以使用 CloudWatch 監控您的 CPU 積分。這將幫助您決定是使用更大的 T 實例還是 C/M 實例。