什么是NVIDIA DCGM?
NVIDIA 数据中心 GPU 管理器 (DCGM) 是一套专为管理和监控集群环境中的 NVIDIA 数据中心 GPU 而设计的综合工具集。它为数据中心提供了企业级的GPU管理解决方案。
核心功能特性
- 🔍 主动运行状况监控 - 实时监控GPU健康状态
- 🩺 全面诊断 - 多级别的硬件诊断和性能测试
- 🚨 系统警报 - 智能告警系统和策略管理
- ⚡ 治理策略 - 包括电源和时钟管理
- 🔧 易于集成 - 可轻松集成到现有的集群管理工具中
- 🐳 Kubernetes支持 - 通过DCGM-Exporter提供容器化环境支持
支持平台
DCGM 支持以下平台的 Linux 操作系统:
x86_64
架构Arm
架构POWER (ppc64le)
架构
相关资源
安装DCGM
Ubuntu 22.04 环境部署
1. 获取安装包
根据你的系统架构选择对应的安装包:
x86架构:
ARM64架构(鲲鹏):
2. 下载和安装
3. 验证安装
安装完成后,系统会包含以下关键二进制文件:
文件路径 | 功能描述 |
---|---|
/usr/bin/dcgmi |
DCGM管理命令行工具,用于管理和监控NVIDIA GPU |
/usr/bin/dcgmproftester10 |
DCGM性能检测工具第10版 |
/usr/bin/dcgmproftester11 |
DCGM性能检测工具第11版 |
/usr/bin/dcgmproftester12 |
DCGM性能检测工具第12版(推荐使用最新版本) |
/usr/bin/nv-hostengine |
NVIDIA主引擎服务,提供GPU管理和监控的底层支持 |
4. 启动DCGM服务
DCGM基础使用
启动nv-hostengine
设备发现和管理
查看GPU设备列表
群组管理
DCGM的大部分功能都是面向组的,因此需要先创建GPU组:
监控和诊断功能
统计监控
健康检查
诊断测试
DCGM提供4个级别的诊断测试:
NVLink监控
配置管理
查看和修改GPU配置
|
|
策略管理
告警策略配置
DCGM Profiling性能分析
功能要求
使用DCGM Profiling功能需要满足以下条件:
- ✅ DCGM版本 ≥ 1.7
- ✅ NVIDIA驱动版本 ≥ 418.43
- ✅ nv-hostengine以root身份启动
- ✅ 支持的GPU型号:Tesla V100、Tesla T4等
可获取的性能指标
指标名称 | 说明 | Field Name |
---|---|---|
Graphics Engine Activity | 图形引擎活跃度比率 | PROF_GR_ENGINE_ACTIVE (ID: 1001) |
SM Activity | SM单元活跃度比率 | PROF_SM_ACTIVE (ID: 1002) |
SM Occupancy | SM占用率 | PROF_SM_OCCUPANCY (ID: 1003) |
Tensor Activity | Tensor核心活跃度 | PROF_PIPE_TENSOR_ACTIVE (ID: 1004) |
Memory BW Utilization | 内存带宽利用率 | PROF_DRAM_ACTIVE (ID: 1005) |
Engine Activity | FP64/FP32/FP16/HMMA/IMMA管道活跃度 | PROF_PIPE_FPXY_ACTIVE (多个ID) |
NVLink Activity | NVLink传输字节数 | DEV_NVLINK_BANDWIDTH_L0 |
PCIe Bandwidth | PCIe传输字节数 | PROF_PCIE_TX/RX_BYTES (ID: 1009/1010) |
最佳实践建议
1. 日常监控
- 定期运行Level 2诊断检查GPU基础功能
- 设置合理的温度和功率告警阈值
- 启用统计监控跟踪GPU使用率
2. 故障排查
- 使用Level 3/4诊断进行深度硬件检查
- 监控NVLink错误计数器识别连接问题
- 结合health检查功能定期评估GPU健康状态
3. 性能优化
- 利用Profiling功能分析GPU利用率
- 根据工作负载调整时钟频率和功率限制
- 监控内存带宽和计算单元占用率
4. 集群管理
- 将DCGM集成到Kubernetes环境中
- 使用DCGM-Exporter导出监控指标到Prometheus
- 建立自动化的GPU健康检查流程
总结
NVIDIA DCGM是数据中心GPU管理的强大工具,提供了从基础监控到深度诊断的全方位功能。通过合理配置和使用DCGM,可以显著提高GPU集群的可靠性、可观测性和管理效率。
无论是运维团队的日常监控,还是开发团队的性能调优,DCGM都是不可或缺的工具。建议在生产环境中建立完整的DCGM监控体系,以确保GPU资源的高效利用。
个人实践经验
在实际的万卡GPU集群运维工作中,我总结了以下几点经验:
🔧 运维要点
- 定期健康检查:建议每日运行Level 2诊断,每周进行Level 3深度检查
- 告警策略设置:根据业务特点设置合理的温度、功率告警阈值
- 日志监控:结合系统日志监控GPU状态变化,及时发现异常
📊 监控集成
在Kubernetes环境中,推荐使用DCGM-Exporter结合Prometheus和Grafana构建完整的GPU监控体系: