DCGM-Exporter 完全使用指南:NVIDIA GPU监控利器

DCGM-Exporter 是一个基于 Go 语言开发的开源工具,专门用于通过 NVIDIA DCGM API 收集 GPU 性能数据,并以 Prometheus 兼容的格式输出指标。它为构建完整的 GPU 监控系统提供了强大的基础支撑。

【免费下载链接】dcgm-exporter NVIDIA GPU metrics exporter for Prometheus leveraging DCGM 【免费下载链接】dcgm-exporter 项目地址: https://gitcode.com/gh_mirrors/dc/dcgm-exporter

项目架构解析

DCGM-Exporter 采用模块化设计,各个组件分工明确:

核心目录结构

  • cmd/ - 主程序入口点,包含服务启动逻辑
  • internal/ - Go 语言核心库,处理与 DCGM 的交互
  • docker/ - Docker 容器构建配置
  • deployment/ - Kubernetes 部署配置和 Helm Chart
  • etc/ - 默认指标配置和兼容性文件
  • grafana/ - 官方监控仪表盘配置
  • pkg/ - 公共包和命令行接口
  • tests/ - 完整的测试套件

关键组件

  • 数据收集系统:负责从 DCGM 获取不同类型的 GPU 指标
  • 设备监控(Device Monitoring):实时跟踪 GPU 设备状态
  • 指标转换(Transformation):对原始数据进行处理和格式化
  • 服务端(Server):提供 HTTP 端点供 Prometheus 采集

快速部署指南

Docker 容器部署

使用官方 Docker 镜像快速启动 DCGM-Exporter:

docker run -d --rm --gpus all --cap-add SYS_ADMIN -p 9400:9400 nvcr.io/nvidia/k8s/dcgm-exporter:4.4.2-4.7.0-ubuntu22.04

验证服务运行状态:

curl localhost:9400/metrics

Kubernetes 部署

推荐使用 Helm Chart 进行 Kubernetes 部署:

# 添加 Helm 仓库
helm repo add gpu-helm-charts https://nvidia.github.io/dcgm-exporter/helm-charts

# 更新仓库
helm repo update

# 安装 Chart
helm install --generate-name gpu-helm-charts/dcgm-exporter

或者使用提供的 YAML 配置文件:

kubectl create -f dcgm-exporter.yaml

配置详解

自定义指标采集

DCGM-Exporter 允许通过自定义 CSV 文件配置要收集的指标。默认配置文件位于 etc/default-counters.csv

# DCGM FIELD, Prometheus metric type, help message
DCGM_FI_DEV_SM_CLOCK, gauge, SM clock frequency (in MHz).
DCGM_FI_DEV_MEM_CLOCK, gauge, Memory clock frequency (in MHz).
DCGM_FI_DEV_MEMORY_TEMP, gauge, Memory temperature (in C).

使用自定义配置文件:

dcgm-exporter -f /path/to/custom-collectors.csv

安全配置

启用 TLS 加密和基本身份验证:

dcgm-exporter --web-config-file=web-config.yaml

示例 web-config.yaml 文件:

server:
  listenAddress: ":9400"
  tls:
    enabled: true
    certFile: "/security/cert.pem"
    keyFile: "/security/key.pem"
basicauth:
  enabled: true
  users:
    - name: admin
      password: securePassword123

高级功能

HPC 作业映射

DCGM-Exporter 支持将 HPC 作业信息包含到指标标签中。启用方法:

dcgm-exporter --hpc-job-mapping-dir=/path/to/mapping/files

性能剖析指标

要收集性能剖析指标,需要额外的系统权限:

docker run --user 0 --cap-add SYS_ADMIN --cap-drop ALL nvcr.io/nvidia/k8s/dcgm-exporter:latest

监控指标详解

DCGM-Exporter 提供丰富的 GPU 监控指标,主要包括:

核心性能指标

  • GPU 利用率(SM 时钟、内存时钟)
  • 温度监控(GPU 核心温度、内存温度)
  • 功耗和能耗统计
  • 显存使用情况
  • 错误计数和健康状态

网络指标

  • P2P 状态和带宽
  • NVLink 连接状态

集成监控系统

Prometheus 配置

在 Prometheus 配置文件中添加 DCGM-Exporter 作业:

scrape_configs:
  - job_name: 'dcgm-exporter'
    static_configs:
      - targets: ['localhost:9400']

Grafana 仪表盘

项目提供了官方 Grafana 仪表盘配置,位于 grafana/dcgm-exporter-dashboard.json。可以直接导入使用。

构建与定制

从源码构建

构建 DCGM-Exporter 需要以下环境:

  • Go 语言 >= 1.24
  • NVIDIA DCGM 库
  • 支持 DCGM 的 Linux 系统和 GPU

构建步骤:

git clone https://gitcode.com/gh_mirrors/dc/dcgm-exporter
cd dcgm-exporter
make binary
sudo make install

容器镜像构建

构建多架构容器镜像:

# 构建本地镜像
make local

# 构建 Ubuntu 22.04 镜像
make ubuntu22.04 PLATFORMS=linux/amd64 OUTPUT=type=docker

故障排除

常见问题

  1. 权限问题:确保容器有足够的权限访问 GPU 设备
  2. DCGM 版本兼容性:检查 DCGM 库版本是否匹配
  3. 端口冲突:确认 9400 端口未被占用

日志分析

DCGM-Exporter 会输出详细的运行日志,通过分析日志可以快速定位问题。

安全最佳实践

  1. 最小权限原则:仅在需要性能剖析指标时授予 SYS_ADMIN 权限
  2. 网络安全:在生产环境中启用 TLS 加密
  3. 身份验证:配置基本身份验证保护监控端点

通过本指南,您可以充分利用 DCGM-Exporter 的强大功能,构建稳定可靠的 GPU 监控系统。无论是单机部署还是大规模集群管理,DCGM-Exporter 都能提供准确、实时的 GPU 性能数据。

【免费下载链接】dcgm-exporter NVIDIA GPU metrics exporter for Prometheus leveraging DCGM 【免费下载链接】dcgm-exporter 项目地址: https://gitcode.com/gh_mirrors/dc/dcgm-exporter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值