你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文提供了有关监视和解释 Azure Kubernetes 服务 (AKS) 上的 GPU 信号的最佳做法。 无需单独查看 NVIDIA GPU 指标,而是将信号关联到利用率、内存和工作负荷上下文中,以提高长期性能和节点效率。
重要
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_PROF_SM_ACTIVE 较低的较高 DCGM_FI_DEV_GPU_UTIL 经常指向启动开销、同步停滞或内存争用。 高 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 耗尽通常仅在 DCGM 遥测显示趋势之后很久才会以容器 OOM 终止和 Pod 中断形式出现。
从 GPU 运行状况信号自动执行节点生命周期操作
这种做法对于长期存在的 AKS GPU 节点池尤其重要,其中主机老化可能会因节点而异。
将可观测性信号与缩放决策保持一致
对于垂直缩放,请在支持 Azure GPU 的不同 VM SKU 上创建新的节点池,并在电源或热约束限制吞吐量时迁移工作负载,例如当 DCGM_FI_DEV_POWER_USAGE 接近限制而 DCGM_FI_PROF_SM_ACTIVE 尽管有需求但仍保持平稳时。
单独的 MIG 和非 MIG 可观测性策略
启用 MIG 后,每个指标的范围都会改变,因此以不同的方式解释信号。
发布考虑成本的 GPU 效率指标
优化成本可见性,而不仅仅是性能。 AKS 平台团队的一个高价值派生指标是 GPU 秒的使用量与分配量的比率。 使用 DCGM 遥测和 Kubernetes 上下文联接按命名空间和工作负荷类发布此指标,然后在一段时间内将其作为平台和财务团队的共享 KPI 进行查看。 此方法定义优化决策的常见事实来源,并帮助防止过度分配被聚合利用率平均值隐藏。
后续步骤
- 查看 AKS 的 GPU 最佳做法。
- 开始使用 AKS 托管 GPU 可观测性。
- 使用 多实例 GPU (MIG) 节点优化分配。
- 使用 KEDA 和 DCGM 指标根据 GPU 信号进行缩放。