DCGM-Exporter

DCGM-Exporter 是基于 NVIDIA DCGM (Data Center GPU Manager) 的Go API开发的工具,允许用户采集GPU metrics以及了解工作负载或者监控集群中的GPU。 dcgm-exporter 采用Go语言开发,并且在一个HTTP endpoint( /metrics )输出GPU指标,用于 Prometheus监控 等监控解决方案。

dcgm-exporter 运行在Kubernetes集群的GPU节点上作为daemonset来运行,也可以直接使用 Docker Atlas 容器化运行。

备注

物理主机需要安装 NVIDIA DCGM (Data Center GPU Manager)

运行 dcgm-exporter

dcgm-exporter 容器作为 Docker Atlas 的独立运行容器时, dcgm-exporter 作为一个嵌入进程启动 nv-hostengine 然后开始发布 metrics:

../../_images/dcgm-exporter_embedded.png

dcgm-exporter 容器化运行

  • 容器化运行 dcgm-exporter :

容器化运行 dcgm-exporter 命令
DCGM_EXPORTER_VERSION=2.1.4-2.3.1 && \
docker run -d --rm \
   --gpus all \
   --net host \
   --cap-add SYS_ADMIN \
   nvcr.io/nvidia/k8s/dcgm-exporter:${DCGM_EXPORTER_VERSION}-ubuntu20.04 \
   -f /etc/dcgm-exporter/dcp-metrics-included.csv

此时可以通过以下命令获取 metrics:

curl localhost:9400/metrics

此时就可以观察到GPU节点的 metrics 数据

备注

NVIDIA GPU Telemetry 官方文档提供了多种安装场景,详情请参考原文。本文只实践常规场景以及用于我个人的 私有云架构

实际上,通常我们采用 dcgm-exporter 都是在大规模Kubernetes集群,此时我们会采用 NVIDIA GPU Operator 在Kuternetes集成GPU可观测能力

参考