Azure Kubernetes Service(AKS)GPU 可觀察性最佳實踐

本文提供監控與解讀 Azure Kubernetes Service (AKS) GPU 訊號的最佳實務。 你不是孤立地看 NVIDIA GPU 的指標,而是將訊號在利用率、記憶體和工作負載情境中相互關聯,以提升長期效能與節點效率。

Important

AKS 預覽功能可透過自願加入的方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

了解 GPU 利用率與飽和度的差異

不要把 NVIDIA DCGM 的指標 DCGM_FI_DEV_GPU_UTIL 當作直接的效率分數。 DCGM_FI_DEV_GPU_UTIL 它只顯示核心啟用的頻率,所以不會告訴你工作負載是否具備運算效率。 透過將利用率訊號相關聯,而非單獨讀取,以獲得更準確的指引。 比較DCGM_FI_DEV_GPU_UTIL和DCGM_FI_PROF_SM_ACTIVE,然後比較DCGM_FI_PROF_SM_ACTIVE和DCGM_FI_PROF_DRAM_ACTIVE,以判斷你的瓶頸是計算、記憶體,還是啟動與同步的開銷。

DCGM_FI_DEV_GPU_UTIL 偏高而 DCGM_FI_PROF_SM_ACTIVE 偏低,通常表示存在啟動負擔、同步停滯或記憶體爭用。 DCGM_FI_PROF_SM_ACTIVE 偏高而 DCGM_FI_PROF_DRAM_ACTIVE 偏低,通常較符合計算受限的行為。 越高 DCGM_FI_PROF_DRAM_ACTIVE 越低 DCGM_FI_PROF_SM_ACTIVE 通常表示執行記憶體受限。

備註

DCGM_FI_PROF_SM_ACTIVE 和 DCGM_FI_PROF_DRAM_ACTIVE 是 DCGM 剖析欄位,且預設可能不會出現在 Azure 虛擬機(VM)所有規模的 NVIDIA GPU 架構類型中。

這種以關聯為先的方法,能幫助你避免在根本問題可能是核心效率或記憶體存取模式時,過度擴展。 如需詳細的度量語意,請參閱 NVIDIA DCGM 使用者指南。

使用記憶體壓力作為主要排程訊號

如果記憶體多次接近記憶體外的臨界點,應將此模式視為不穩定的早期指標。 Kubernetes 沒有原生的 GPU 記憶體壓力訊號,因此 VRAM 耗盡通常只會在容器發生 OOM 終止與 Pod 中斷時才顯現,且往往已晚於 DCGM 遙測資料顯示趨勢的時間。

依據 GPU 健康訊號,自動化管理節點生命週期中的動作

此做法對於長期的 AKS GPU 節點池尤其重要,因為主機老化可能因節點間而異。

將可觀測性訊號與擴展決策對齊

針對垂直擴展,請在不同的 Azure GPU VM SKU 上建立新的節點集區,並在功率或散熱限制導致輸送量受限時遷移工作負載。例如,當 DCGM_FI_DEV_POWER_USAGE 接近上限,而 DCGM_FI_PROF_SM_ACTIVE 在需求存在的情況下仍維持平坦時。

獨立的 MIG 與非 MIG 可觀察性策略

啟用 MIG 後,每個指標的範圍會改變,因此訊號的解讀會有所不同。

發布成本感知型的 GPU 效能指標

優化以提高成本可視化,而不僅僅是效能。 AKS 平台團隊的一個高價值衍生指標是使用的 GPU 秒數與分配的 GPU 秒數之比。 使用 DCGM 遙測與 Kubernetes 上下文結合,依據命名空間和工作負載類別公開發佈此指標,然後作為平台與財務團隊共享的關鍵績效指標進行持續檢視。 此方法定義了優化決策的共同真相來源,並有助於防止過度配置被總體使用率平均值掩蓋。

下一步