使用DCGM监控Lite Server资源
场景描述
本文主要介绍如何在Lite Server上配置DCGM监控,用于监控Lite Server上的GPU资源。
DCGM是用于管理和监控基于Linux系统的NVIDIA GPU大规模集群的一体化工具,提供多种能力,包括主动健康监控、诊断、系统验证、策略、电源和时钟管理、配置管理和审计等。
约束限制
仅适用于GPU资源监控。
前提条件
裸金属服务器需要安装driver、cuda、fabric-manager软件包。
步骤一:安装Docker
使用Docker官方脚本安装最新版Docker:
curl https://get.docker.com | sh sudo systemctl --now enable docker
步骤二:安装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
步骤三:运行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 ...
步骤四:安装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的官方文档。
步骤五:安装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的官方文档。