GPU裸金属服务器使用DCGM实现指标监控可视化方案
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地址
在HTTP的URL输入框中输入Prometheus的IP地址和端口号,点击Save&Test:
至此,指标监控方案安装完成。指标监控效果展示如下:
说明:这里使用的是Grafana最基本的功能,如有更高级的诉求,可参考Grafana的官方文档:https://grafana.com/docs/grafana/latest/
- 点赞
- 收藏
- 关注作者
评论(0)