GPU裸金属服务器使用DCGM实现指标监控可视化方案

举报
modelarts-dev-server 发表于 2023/05/27 14:51:16 2023/05/27
【摘要】 在GPU裸金属服务器上搭建基于DCGM+DCGM EXPORTER+PROMETHUS+GRAFANA, 实现对GPU指标的采集以及可视化展示解决方案。

0. 前置条件

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

上述软件安装方法可参考:GPU Ant8裸金属服务器装机和验证-云社区-华为云 (huaweicloud.com)

DCGM-Exporter可以参考: https://github.com/NVIDIA/dcgm-exporter

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,指标采集对象详见https://github.com/NVIDIA/dcgm-exporter/tree/main/etc。如果采集对象不能满足要求,可通过定制镜像或挂载的方式使用自定义配置。

 等待约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的官方文档:https://prometheus.io/docs/prometheus/latest/

安装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.png

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

1.png

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

3.png

说明:这里使用的是Grafana最基本的功能,如有更高级的诉求,可参考Grafana的官方文档:https://grafana.com/docs/grafana/latest/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。