跳到主要内容

DCGM Exporter 使用指南

DCGM-Exporter 是基于 DCGM 架构、为摩尔线程数据中心 GPU(MTT 系列)定制的 GPU 指标导出工具。它使用 Go 语言编写,通过 HTTP 端点(/metrics)以 Prometheus 格式暴露 GPU 指标,可无缝对接 Prometheus、Grafana 等监控系统。

本文介绍 DCGM Exporter 的使用方法, DCGM 详情参考 Data Center GPU Management 使用手册,包括诊断指南、XID参考等。

组件架构

MT GPU Operator / Device Plugin 的安装文件及指导文档中,包含了 DCGM 和 DCGM Exporter 的镜像地址及容器化部署方式。该 独立模式 下 DCGM Exporter 仅作为指标采集与导出前端,连接单独运行的 mt-hostengine 进程。

架构概述

  • mt-dcgm 以 hostengine 模式提供服务:
hostNetwork: true
hostPort: 5555
  • mt-dcgm-exporter 通过节点本地地址连接 mt-dcgm
DCGM_REMOTE_HOSTENGINE_INFO=localhost:5555
┌─────────────────────────────────────────────────────────┐
│ │
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ │
│ │ mt-hostengine │◄────►│ dcgm-exporter (Go) │ │
│ │ │ │ ┌───────────────────┐ │ │
│ │ │ │ │ Pipeline │ │ │
│ │ ┌─────────────┐ │ │ │ ┌─────────────┐ │ │ │
│ │ │ DCGM Fields │ │ │ │ │ Collector │ │ │ │
│ │ └─────────────┘ │ │ │ └─────────────┘ │ │ │
│ └──────────────────┘ │ │ ┌─────────────┐ │ │ │
│ │ │ │ HTTP Server │ │ │ │
│ │ │ │ (:9400) │ │ │ │
│ │ │ └─────────────┘ │ │ │
│ │ └───────────────────┘ │ │
│ ┌──────────────────┐ └─────────────────────────┘ │
│ │ dcgmi CLI │ 命令行工具 │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘


┌──────────────────┐ ┌──────────────────┐
│ Prometheus │─────►│ Grafana │
│ (指标采集) │ │ (可视化面板) │
└──────────────────┘ └──────────────────┘

数据流

  1. mt-hostengine 通过 MUSA / MTML 驱动访问 GPU 硬件寄存器;
  2. DCGM Exporter 定期调用 DCGM API 采集字段;
  3. 采集到的指标通过 Pipeline 处理并缓存;
  4. Prometheus 通过 /metrics 端点拉取指标;
  5. Grafana 从 Prometheus 读取数据并展示。

配置选项

DCGM Exporter 支持通过命令行参数和环境变量进行配置:

环境变量说明命令行参数默认值
DCGM_EXPORTER_COLLECTORS指标配置文件路径-f/etc/dcgm-exporter/default-counters.csv
DCGM_EXPORTER_LISTENHTTP 监听地址-a:9400
DCGM_EXPORTER_INTERVAL采集间隔(毫秒)-c10000(10 秒)
DCGM_EXPORTER_KUBERNETES启用 Kubernetes Pod 映射-kfalse
DCGM_EXPORTER_CONFIGMAP_DATAConfigMap 命名空间和名称-mnone
DCGM_REMOTE_HOSTENGINE_INFO远程 hostengine 地址(Host:Port-r空(嵌入模式)
DCGM_EXPORTER_DEVICES_STR指定监控的设备-d所有 GPU

设备字符串语法

[g[:id1[,-id2]]] | [i[:id1[,-id2]]]
  • g = 监控所有 GPU(建议非 MIG 场景)
  • g:0,1 = 监控 GPU 0 和 1
  • i = 监控所有 GPU Instance(MIG 场景)
  • i:0,2-4 = 监控 GPU Instance 0、2、3、4

自定义指标

Exporter 通过 CSV 文件配置需要采集的 DCGM 字段,格式为:

DCGM_FIELD, prometheus_type, help_text

标签字段(标签类型为 label

DCGM 字段说明
DCGM_FI_DRIVER_VERSION驱动版本
DCGM_FI_MTML_VERSIONMTML 版本
DCGM_FI_DEV_NAMEGPU 名称
DCGM_FI_DEV_BRANDGPU 品牌
DCGM_FI_DEV_SERIALGPU 序列号
DCGM_FI_DEV_UUIDGPU UUID
DCGM_FI_DEV_VBIOS_VERSIONVBIOS 版本

时钟与温度

DCGM 字段类型说明
DCGM_FI_DEV_SM_CLOCKgaugeSM 时钟频率(MHz)
DCGM_FI_DEV_MEM_CLOCKgauge显存时钟频率(MHz)
DCGM_FI_DEV_MEMORY_TEMPgauge显存温度(°C)
DCGM_FI_DEV_GPU_TEMPgaugeGPU 温度(°C)

功率

DCGM 字段类型说明
DCGM_FI_DEV_POWER_USAGEgauge当前功耗(W)
DCGM_FI_DEV_POWER_MGMT_LIMITgauge功率管理上限(W)

PCIe

DCGM 字段类型说明
DCGM_FI_DEV_PCIE_TX_THROUGHPUTcounterPCIe 发送吞吐量(KB)
DCGM_FI_DEV_PCIE_RX_THROUGHPUTcounterPCIe 接收吞吐量(KB)
DCGM_FI_DEV_PCIE_REPLAY_COUNTERcounterPCIe 重试次数
DCGM_FI_DEV_PCIE_MAX_LINK_GENgauge最大 PCIe 链路代数
DCGM_FI_DEV_PCIE_MAX_LINK_WIDTHgauge最大 PCIe 链路宽度
DCGM_FI_DEV_PCIE_LINK_GENgauge当前 PCIe 链路代数
DCGM_FI_DEV_PCIE_LINK_WIDTHgauge当前 PCIe 链路宽度

利用率与 XID

DCGM 字段类型说明
DCGM_FI_DEV_GPU_UTILgaugeGPU 利用率(%)
DCGM_FI_DEV_XID_ERRORSgauge最近 XID 错误码

显存

DCGM 字段类型说明
DCGM_FI_DEV_FB_FREEgauge显存空闲(MB)
DCGM_FI_DEV_FB_USEDgauge显存已用(MB)
DCGM_FI_DEV_FB_TOTALgauge显存总量(MB)
DCGM_FI_DEV_FB_USED_PERCENTgauge显存利用率(%)
DCGM_FI_DEV_MEMORY_STATUSgauge显存健康状态

硬件

DCGM 字段类型说明
DCGM_FI_DEV_HWR_COUNTERcounter硬件锁死恢复计数

MTLink(摩尔线程特有)

MTLink 是摩尔线程 GPU 间的高速互联链路,以下为 MTLink 相关指标:

DCGM 字段类型说明
DCGM_FI_DEV_MTLINK_CRC_DATA_ERROR_COUNT_TOTALcounterMTLink 数据 CRC 错误次数
DCGM_FI_DEV_MTLINK_REPLAY_ERROR_COUNT_TOTALcounterMTLink 重放错误次数
DCGM_FI_DEV_MTLINK_RECOVERY_ERROR_COUNT_TOTALcounterMTLink 恢复错误次数
DCGMI_FI_DEV_MTLINK_UNCORRECTABLE_COUNTER_TOTALcounterMTLink 不可纠正错误次数
DCGMI_FI_DEV_MTLINK_CORRECTABLE_COUNTER_TOTALcounterMTLink 可纠正错误次数
DCGM_FI_PROF_MTLINK_TX_BYTEScounterMTLink 发送字节数(KB)
DCGM_FI_PROF_MTLINK_RX_BYTEScounterMTLink 接收字节数(KB)

CPU / 内存亲和性

DCGM 字段类型说明
DCGM_FI_DEV_CPU_AFFINITY_0..3gaugeCPU 亲和性位掩码(共 256 核)
DCGM_FI_DEV_MEM_AFFINITY_0..3gauge内存节点亲和性位掩码(共 256 节点)

Grafana 集成

gpu-operator-full/grafana 路径下,提供开箱即用的 Grafana Dashboard 定义文件。

# 导入 Grafana Dashboard
grafana-cli dashboards import <dashboard.json>

导入后可查看以下面板:

  • GPU 利用率概览(所有 GPU)
  • 显存使用量 / 使用率
  • GPU 温度与功耗
  • MTLink 互联状态与带宽
  • PCIe 吞吐量
  • XID 错误事件