針對 AKS 叢集中的高 CPU 使用量進行疑難解答
高 CPU 使用量是一或多個應用程式或進程的徵兆,這些應用程式或進程需要太多 CPU 時間,因此會影響機器的效能或可用性。 高 CPU 使用量可能會以許多方式發生,但主要是由使用者設定所造成。
當 Azure Kubernetes Service (AKS) 叢集中的節點遇到高 CPU 使用量時,在叢集上執行的應用程式可能會遇到效能和可靠性降低的問題。 應用程式或程式也會變得不穩定,這可能會導致回應速度緩慢以外的問題。
本文可協助您識別耗用高CPU的節點和容器,並提供解決高CPU使用量的最佳做法。
徵狀
下表概述高 CPU 使用量的常見徵兆:
徵兆 | 描述 |
---|---|
CPU 耗盡 | 需要大量 CPU 的應用程式會使相同節點上的其他應用程式變慢。 |
狀態變更緩慢 | Pod 可能需要較長的時間才能準備就緒。 |
NotReady 節點狀態 | 節點會進入 NotReady 狀態。 發生此問題的原因是具有高 CPU 使用量的容器導致 Kubectl 命令行工具沒有回應。 |
疑難解答檢查清單
若要解決高 CPU 使用量,請使用有效的監視工具並套用最佳做法。
步驟 1:識別使用高 CPU 的節點/容器
使用下列其中一種方法來識別具有高 CPU 使用量的節點和容器:
在網頁瀏覽器中,使用 Azure 入口網站 中 AKS 的 Container Insights 功能。
在控制台中,使用 Kubernetes 命令行工具 (kubectl) 。
Container Insights 是 AKS 內的一項功能。 其設計目的是要監視容器工作負載的效能。 您可以使用容器深入解析來識別驅動高 CPU 使用量的節點、容器或 Pod。
若要識別驅動高 CPU 使用量的節點、容器或 Pod,請遵循下列步驟:
從 Azure 入口網站 瀏覽至叢集。
在 [ 監視] 底下,選取 [ 深入解析]。
設定適當的 時間範圍。
找出 CPU 使用量較高的節點,並檢查節點 CPU 使用量是否穩定。
選取 [節點]。 將 [計量 ] 設定為 [CPU 使用量 (毫核心) ,然後將範例設定為 [最大值]。 使用 Max 上的排序功能,依 Max%排序節點。 CPU 使用量最高的節點會出現在頂端。
在下列螢幕快照中,節點只使用最大CPU的12%,而且已執行16天。
找到 CPU 使用量較高的節點之後,請選取節點來尋找其上的 Pod 及其 CPU 使用量。
注意事項
Pod 的 CPU 或記憶體使用量百分比是以為容器指定的 CPU 要求為基礎。 它不代表節點的CPU或記憶體使用量百分比。 因此,請查看實際的CPU或記憶體使用量,而不是Pod的CPU或記憶體使用量百分比。
一旦取得具有高 CPU 使用量的 Pod 清單,您就可以將它對應至造成 CPU 使用量尖峰的應用程式。
步驟 2:檢閱最佳做法以避免高 CPU 使用量
請檢閱下表,以瞭解如何實作避免高 CPU 使用量的最佳做法:
最佳作法 | 描述 |
---|---|
設定容器的適當限制 | Kubernetes 允許指定容器資源的要求和限制。 資源要求和限制代表容器可以使用的最低和最大資源數目。 建議您設定適當的要求和限制,為每個 Pod 選擇適當的 Kubernetes 服務品質 (QoS) 類別。 |
啟用水準 Pod 自動調整程式 (HPA) | 設定適當的限制以及啟用 HPA 有助於解決高 CPU 使用量。 |
選取較高的 SKU VM | 若要處理高 CPU 工作負載,請使用較高的 SKU VM。 若要這樣做,請建立新的節點集區、封鎖節點使其無法排程,並清空現有的節點集區。 |
隔離系統和使用者工作負載 | 建議您建立個別的節點集區 (而不是代理程式集區) 來執行您的工作負載。 這可以防止多載系統節點集區,並提供更佳的效能。 |
參考
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應