你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
高效放置和优化 GPU 工作负荷通常需要了解资源利用率和性能。 AKS 上的托管 GPU 指标(预览版)提供跨已启用 NVIDIA GPU 的节点池的 GPU 利用率、内存和性能数据的自动收集和公开。 这使平台管理员能够优化集群资源,同时开发人员可以通过有限的人为操作来调整和调试工作负载。
在本文中,你将了解由 NVIDIA 数据中心 GPU 管理器 (DCGM)exporter 收集的 GPU 指标,以及如何在 Azure Kubernetes 服务(AKS)中使用 完全托管且启用了 GPU 的节点池(预览版)。
重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
先决条件
- 具有全托管且支持 GPU 的节点池(预览版) 的 AKS 集群,并确保 GPU 可被调度。
- 将 示例 GPU 工作负载 部署到节点池中。
局限性
- Azure 托管 Prometheus 或 Azure 托管 Grafana 目前不支持托管 GPU 指标。
验证是否已安装托管 GPU 组件
按照 以下说明创建托管 NVIDIA GPU 节点池(预览版)后,请确认 GPU 软件组件是否已随 az aks nodepool show 命令一起安装:
az aks nodepool show \
--resource-group <resource-group-name> \
--cluster-name <cluster-name> \
--name <node-pool-name> \
输出应包含以下值:
...
...
"gpuInstanceProfile": …
"gpuProfile": {
"driver": "Install"
},
...
...
了解 GPU 指标
GPU 利用率指标
GPU 利用率指标显示 GPU 核心正在主动处理工作的百分比。 高值表示 GPU 被大量使用,这通常适用于训练或数据处理等工作负荷。 此指标的解释应考虑工作负荷的类型:AI 训练通常保持高利用率,而推理可能因流量突发而出现间歇性利用率。
内存利用率:显示正在使用的 GPU 内存百分比。 内存使用率高,而 GPU 使用率不高,可能表明是受内存限制的工作负载,导致 GPU 等待内存传输。 低利用率的内存使用率可能表明工作负荷太小,无法完全利用 GPU。
SM(流式处理多处理器)效率:测量 GPU 核心使用的效率。 低 SM 效率表示,由于工作负荷不平衡或未充分利用内核设计,内核处于空闲或未充分利用状态。 高效率非常适合计算密集型应用程序。
内存指标
内存带宽利用率:反映消耗的理论内存带宽量。 高带宽利用率和低计算利用率可能表示内存受限的工作负载。 相反,计算和内存带宽中的高利用率都表明工作负荷平衡良好。
内存错误:跟踪 ECC(纠错码)错误,如果已启用。 大量错误可能表示硬件降级或热问题,应监视其可靠性。
温度和电源指标
GPU 温度:指示 GPU 的运行温度。 持续的高温会触发热降频,降低性能。 此指标的理想解释涉及观察相对于 GPU 的热限制和冷却容量的温度。
功率使用情况:显示即时功率消耗。 将电源使用情况与 TDP(热设计电源)进行比较有助于了解 GPU 是否被推送到其限制。 功耗突然降低可能表示性能限频或资源未充分利用。
时钟和频率指标
GPU 时钟:GPU 的实际作频率。 结合利用率,这有助于确定 GPU 是性能限频还是未能充分发挥其潜力。
内存时钟:GPU 内存的运行频率。 内存绑定的工作负载可能会受益于更高的内存频率,内存与计算利用率不匹配可能会突出显示瓶颈。
PCIe 和 NVLink 指标
PCIe 带宽:通过 PCIe 总线测量吞吐量。 工作负荷使用率低可能表明 CPU-GPU 通信不是瓶颈。 高利用率可能指向影响性能的数据传输限制。
NVLink 带宽:此指标类似于 PCIe 带宽,但特定于 NVLink 互连,在多 GPU 系统中与跨 GPU 通信相关。 具有低 SM 利用率的高 NVLink 使用率可能表示同步或数据传输延迟。
错误和可靠性指标
已停用的页面和 XID 错误:跟踪 GPU 的内存错误和关键故障。 对于长时间运行的工作负荷,频繁出现的情况可能是潜在的硬件故障信号,需要加以关注。
解释指南
在解释 DCGM 指标时,应始终考虑 AKS 上的工作负荷类型及其具体上下文。 理想情况下,高计算密集型工作负荷应显示高 GPU 和 SM 利用率、高内存带宽使用率、温度稳定在低于限制阈值的范围内,以及电源消耗接近但低于 TDP。
内存绑定工作负荷可能会显示较高的内存利用率和带宽,但计算利用率较低。 出现高温或高能耗但利用率低等异常情况通常表明存在降频、任务调度效率低或系统级瓶颈。
监视一段时间内的趋势,而不是单个快照至关重要。 在影响生产工作负荷之前,利用率突然下降或错误峰值通常会揭示根本问题。 比较多个 GPU 中的指标还有助于识别群集中的异常设备或行为不当的设备。 通过组合了解这些指标,而不是隔离,可以清楚地了解 GPU 效率和工作负荷性能。
常见 GPU 指标
以下 NVIDIA DCGM 指标通常针对 Kubernetes 上的 GPU 节点池的性能进行评估:
| GPU 指标名称 | Meaning | 典型范围/指示器 | 使用提示 |
|---|---|---|---|
DCGM_FI_DEV_GPU_UTIL |
GPU 利用率(% GPU 核心处于活动状态的时间) | 0–100% (更高更好) | 监视每个节点和每个 Pod;低值可能表示 CPU 或 I/O 瓶颈 |
DCGM_FI_DEV_SM_UTIL |
流式处理多处理器效率(% 活动核心) | 0–100% | 较高内存使用下的低值表示内存受限的工作负荷 |
DCGM_FI_DEV_FB_USED |
使用的帧缓冲区内存(字节) | 0 到总内存 | 使用 Pod GPU 内存限制并跟踪每个 Pod 内存使用情况 |
DCGM_FI_DEV_FB_FREE |
空闲 GPU 内存(字节) | 从0到总内存 | 可用于计划调度和避免 OOM 错误 |
DCGM_FI_DEV_MEMORY_UTIL |
内存使用率 (%) | 0–100% | 结合 GPU/SM 利用率来确定内存绑定工作负荷 |
DCGM_FI_DEV_MEMORY_CLOCK |
当前内存时钟频率 (MHz) | 从 0 到最大内存时钟 | 内存使用率高时的低值可能表示降频 |
DCGM_FI_DEV_POWER_USAGE |
即时电源使用(瓦茨) | 0 到 TDP | 在高使用率期间的下降可能表示性能限频 |
DCGM_FI_DEV_TEMPERATURE |
GPU 温度 (°C) | 约 30–85°C 正常 | 针对持续高温的警报 |
DCGM_FI_DEV_NVLINK_RX |
NVLink 接收带宽利用率(%) | 0–100% | 如果 GPU 利用率高而 SM 利用率低,则出现多 GPU 同步瓶颈 |
DCGM_FI_DEV_XID_ERRORS |
驱动程序报告的 GPU 严重错误 | 通常为 0 | 需要立即进行调查;可以在 Kubernetes 中给节点打污点 |
若要了解完整的 GPU 指标套件,请访问 NVIDIA DCGM 上游文档。
后续步骤
- 使用节点问题检测器跟踪 GPU 节点运行状况 (NPD)
- 在 AKS 上创建 多实例 GPU 节点池
- 探索 AI 工具链操作器加载项以进行 AI 推理和微调