DCGM 诊断与健康检查:用 dcgmi 做 GPU 发现、健康、诊断和策略管理
DCGM(NVIDIA Data Center GPU Manager)是数据中心 GPU 的监控与诊断框架,包含后台服务 nv-hostengine、命令行 dcgmi 和 Prometheus exporter。dcgmi 负责发现 GPU、分组、健康检查、诊断、统计和策略;dcgm-exporter 负责把指标暴露给 Prometheus。两者不是同一个东西:排查单机 GPU 用 dcgmi,做长期监控用 exporter + 指标系统。
DCGM 能发现 XID、ECC、温度、功耗、NVLink、显存和 PCIe 异常,也能运行分级的诊断测试。诊断会占用 GPU 并产生负载,生产节点上要先确认没有训练/推理任务,或使用维护窗口。
# 发现 GPU,查看 GPU ID 与型号
dcgmi discovery -l
# 创建分组,后续命令按组执行
dcgmi group -c lab -a 0,1,2,3
dcgmi group -l
# 健康检查:看当前是否有 XID、ECC、温度等异常
dcgmi health -g 0
dcgmi health -g 0 -j
# 统计:查看当前指标
dcgmi stats -g 0 -e
dcgmi stats -g 0 -v
# 诊断:r1 快速、r2 中等、r3 深度;会占用 GPU
dcgmi diag -g 0 -r 1
dcgmi diag -g 0 -r 2
# 查看/设置健康策略(示例:启用策略)
dcgmi policy -g 0 --set 1
dcgmi policy -g 0 --get
# 查看服务状态
systemctl status nvidia-dcgm
容器中运行 dcgmi 需要访问 NVIDIA 设备与驱动能力,通常要 --gpus all 和相应权限;生产环境优先在宿主机或专用诊断容器中执行。
dcgmi 和 dcgm-exporter 混用:dcgmi 是命令行诊断,exporter 是指标端点;Prometheus 指标应从 exporter 采集,不要靠解析 dcgmi 输出。nv-hostengine 没启动:dcgmi discovery 会连接失败;先看 systemctl status nvidia-dcgm 和服务日志。diag -r 3:深度诊断会施加负载、占用显存,可能影响业务;先排空任务或安排维护窗口。CAP_SYS_ADMIN 时,发现和诊断会失败;不要为了跑诊断给整个容器 privileged,使用专用诊断容器。合上页面,先回答,再展开对照。
dcgmi 和 dcgm-exporter 的分工是什么?diag -r 1/2/3 的级别差异是什么?生产环境要注意什么?dcgmi 是命令行诊断和健康检查工具;dcgm-exporter 把指标暴露为 Prometheus 格式,供长期监控和告警。r1 是快速检查,r2 是中等诊断,r3 是深度诊断;级别越高越耗时、负载越大。生产环境要先排空任务或安排维护窗口。
小程序版
微信扫码,随时查命令