更新时间:2024-11-19 GMT+08:00

使用DCGM监控Lite Server资源

场景描述

本文主要介绍如何配置DCGM监控。DCGM是用于管理和监控基于Linux系统的NVIDIA GPU大规模集群的一体化工具,提供多种能力,包括主动健康监控、诊断、系统验证、策略、电源和时钟管理、配置管理和审计等。

前提条件

裸金属服务器需要安装driver、cuda、fabric-manager软件包。

1、安装Docker

使用Docker官方脚本安装最新版Docker:

curl https://get.docker.com | sh
sudo systemctl --now enable docker

2、安装NVIDIA容器工具集

设置仓库地址和GPG key:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

安装nvidia-docker2:

sudo apt-get update \
   && sudo apt-get install -y nvidia-docker2

编辑/etc/docker/daemon.json,改为如下内容:

{
   "default-runtime": "nvidia",
   "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
      }
   }
}

重启Docker daemon:

sudo systemctl restart docker

3、运行DCGM-Exporter

以Docker方式运行DCGM-Exporter:

DCGM_EXPORTER_VERSION=3.1.7-3.1.4 && \
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

这里使用的是DCGM-Exporter默认的指标采集配置文件/etc/dcgm-exporter/dcp-metrics-included.csv,指标采集对象详见dcgm-exporter。如果采集对象不能满足要求,可通过定制镜像或挂载的方式使用自定义配置。

等待约1分钟,执行下面的命令获取GPU指标:

curl localhost:9400/metrics

指标获取结果如下:

# HELP DCGM_FI_DEV_SM_CLOCK SM clock frequency (in MHz).
# TYPE DCGM_FI_DEV_SM_CLOCK gauge
# HELP DCGM_FI_DEV_MEM_CLOCK Memory clock frequency (in MHz).
# TYPE DCGM_FI_DEV_MEM_CLOCK gauge
# HELP DCGM_FI_DEV_MEMORY_TEMP Memory temperature (in C).
# TYPE DCGM_FI_DEV_MEMORY_TEMP gauge
...
DCGM_FI_DEV_SM_CLOCK{gpu="0", UUID="GPU-6ad7ea4c-5517-05e7-0b54-7554cb4374d3"} 1
DCGM_FI_DEV_MEM_CLOCK{gpu="0", UUID="GPU-6ad7ea4c-5517-05e7-0b54-7554cb4374d3"} 4
DCGM_FI_DEV_MEMORY_TEMP{gpu="0", UUID="GPU-6ad7ea4c-5517-05e7-0b54-7554cb4374d3的"} 9223372036854578794
...

4、安装Prometheus

“/usr/local/prometheus”目录创建配置文件prometheus.yml内容如下:

global:
  scrape_interval: 15s # 采集间隔
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['xx.xx.xx.xx:9400'] # DCGM-Exporter指标获取端口,替换xx.xx.xx.xx为DCGM-Exporter所在节点的IP地址

运行Prometheus:

docker run -d \
    -p 9090:9090 \
    -v /usr/local/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus

这里使用的是Prometheus最基本的功能,如有更高级的诉求,可参考prometheus的官方文档

5、安装Grafana

运行社区最新发行的Grafana版本:

docker run -d -p 3000:3000 grafana/grafana-oss

在BMS页面打开Grafana所在节点的安全组配置,添加入方向规则,允许外部访问3000、9090端口:

在浏览器地址栏输入xx.xx.xx.xx:3000,登录Grafana,默认账号密码为:admin/admin。在配置管理页面,添加数据源,类型选择Prometheus。

备注:xx.xx.xx.xx为Grafana的所在宿主机的IP地址

图1 Prometheus

在HTTP的URL输入框中输入Prometheus的IP地址和端口号,单击Save&Test:

图2 IP地址和端口号

至此,指标监控方案安装完成。指标监控效果展示如下:

图3 指标监控效果

这里使用的是Grafana最基本的功能,如有更高级的诉求,可参考Grafana的官方文档