使用容器深入解析來設定 GPU 監視

從代理程式版本 ciprod03022019 開始,容器深入解析整合式代理程式現在支援 GPU 感知 Kubernetes 叢集節點上的監視圖形處理單位 ( GPU ) 使用量,以及監視要求和使用 GPU 資源的 Pod/容器。

注意

根據 Kubernetes 上游公告,Kubernetes 已淘汰 Kubelet 針對 Kubernetes 版本 1.20+ 回報的 GPU 計量。 因此,容器深入解析無法再立即收集下列計量:

  • containerGpuDutyCycle
  • containerGpumemoryTotalBytes
  • containerGpumemoryUsedBytes

若要透過容器深入解析繼續收集 GPU 計量,請在 2022 年 12 月 31 日前移轉至您的 GPU 廠商特定計量匯出工具。 設定 Prometheus 抓取,以從已部署的廠商特定匯出工具抓取計量。

支援的 GPU 廠商

容器深入解析支援監視來自下列 GPU 廠商的 GPU 叢集:

容器深入解析會以 60 秒間隔收集下列計量,並將其儲存在 InsightMetrics 資料表中,以自動開始監視節點上的 GPU 使用量,以及要求 Pod 和工作負載的 GPU。

注意

在使用 GPU 節點佈建叢集之後,請確定依照 Azure Kubernetes 服務 (AKS) 的要求安裝 GPU 驅動程式以執行 GPU 工作負載。 容器深入解析會透過節點中執行的 GPU 驅動程式 Pod 收集 GPU 計量。

度量名稱 計量維度 (標籤) 描述
containerGpuDutyCycle* container.azm.ms/clusterId、container.azm.ms/clusterName、containerName、gpuId、gpuModel、gpuVendor 過去範例期間 (60 秒) 容器 GPU 忙碌/主動處理的時間百分比。 工作週期是介於 1 與 100 之間的數字。
containerGpuLimits container.azm.ms/clusterId、container.azm.ms/clusterName、containerName 每個容器都可以將限制指定為一或多個 GPU。 無法要求或限制 GPU 的一小部分。
containerGpuRequests container.azm.ms/clusterId、container.azm.ms/clusterName、containerName 每個容器都可以要求一或多個 GPU。 無法要求或限制 GPU 的一小部分。
containerGpumemoryTotalBytes* container.azm.ms/clusterId、container.azm.ms/clusterName、containerName、gpuId、gpuModel、gpuVendor 可用於特定容器的 GPU 記憶體數量 (以位元組為單位)。
containerGpumemoryUsedBytes* container.azm.ms/clusterId、container.azm.ms/clusterName、containerName、gpuId、gpuModel、gpuVendor 特定容器所使用的 GPU 記憶體數量 (以位元組為單位)。
nodeGpuAllocatable container.azm.ms/clusterId、container.azm.ms/clusterName、gpuVendor 節點中 Kubernetes 可以使用的 GPU 數目。
nodeGpuCapacity container.azm.ms/clusterId、container.azm.ms/clusterName、gpuVendor 節點中的 GPU 總數。

* 根據 Kubernetes 上游變更,已不再立即收集這些計量。 作為 AKS 的暫時 Hotfix,請將 GPU 節點集區升級至最新版本或 *-2022.06.08 或更高版本。 針對已啟用 Azure Ar 的 Kubernetes,請在節點的 kubelet 設定中啟用閘道 DisableAcceleratorUsageMetrics=false,然後重新啟動 kubelet。 上游變更正式發行後,此修正程式將無法再運作。 請規劃在 2022 年 12 月 31 日前移轉至使用 GPU 廠商特定的計量匯出工具。

GPU 效能圖表

容器深入解析包含資料表稍早所列計量的預先設定圖表,作為每個叢集的 GPU 活頁簿。 如需容器深入解析可用的活頁簿描述,請參閱容器深入解析中的活頁簿

下一步