监控篇之利用dcgm-exporter监控GPU指标并集成grafana大盘

一、应用场景

当环境中包含GPU节点时,需要了解GPU应用使用节点GPU资源的情况,例如GPU利用率、显存使用量、GPU运行的温度、GPU的功率等。
在获取GPU监控指标后,用户可根据应用的GPU指标配置弹性伸缩策略,或者根据GPU指标设置告警规则。
下文是基于开源Prometheus和DCGM Exporter实现丰富的GPU观测场景

二、采集GPU监控指标

部署dcgm-exporter组件进行GPU指标的采集,同时以9400端口对外暴露GPU指标。
该文利用docker进行gpu监控部署

docker pull nvcr.io/nvidia/k8s/dcgm-exporter:3.0.4-3.0.0-ubuntu20.04

1. 安装 NVIDIA Container Toolkit

确定您的 Linux 发行版和版本:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

添加 NVIDIA Container Toolkit 的 GPG 密钥:

curl -s -L https://nvidia.github.io/nvidia-container-toolkit/gpgkey | sudo apt-key add -

添加 NVIDIA Container Toolkit 的 APT 软件源:

curl -s -L https://nvidia.github.io/nvidia-container-toolkit/ubuntu${distribution}/nvidia-container-toolkit.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

更新您的 yum软件包列表并安装 NVIDIA Container Toolkit:

yum update
yum install -y libseccomp
yum install -y nvidia-container-toolkit

安装完成之后执行如下验证是否安装成功:

rpm -qa | grep nvidia

2. 启动dcgm-exporter容器

运行带有 GPU 支持的容器:

sudo docker run -d --gpus all -p 9400:9400 --restart=always nvcr.io/nvidia/k8s/dcgm-exporter:3.0.4-3.0.0-ubuntu20.04

3. 测试dcgm-exporter的metrics指标

调用dcgm-exporter接口,验证采集的应用GPU信息。
例如:IP地址为:192.168.0.10

curl 192.168.0.10:9400/metrics

4. 集成prometheus

修改监控内容

sudo vim /etc/prometheus/prometheus.yml

添加以下代码

  - job_name: 'gpu_metrics'
    static_configs:
      - targets: ['gpu_exporter_host:9400']

格式如下
在这里插入图片描述
重启prometheus

systemctl restart prometheus

5.集成 grafana大盘

登录Grafana页面查看GPU信息
如您安装了Grafana,您可通过导入NVIDIA DCGM Exporter Dashboard来展示gpu的相关指标信息。
关于在Grafana导入Dashboard的方法,请参见Manage dashboards
在这里插入图片描述

监控宿主机中多个 Docker 容器中的 GPU 信息,可以使用 NVIDIA 官方提供的 GPU 监控 exporter `nvidia_gpu_prometheus_exporter`。这个 exporter 可以把宿主机中所有 GPU 的使用情况统计起来,然后暴露给 Prometheus 进行监控。 具体使用方法如下: 1. 安装 `nvidia_gpu_prometheus_exporter` ```bash docker run -d --name=nvidia_gpu_prometheus_exporter \ --pid=host \ --runtime=nvidia \ -p 9101:9101 \ nvcr.io/nvidia/k8s/dcgm-exporter:2.0.13-2.2.0-rc.3-ubuntu18.04 ``` 运行上述命令会下载 `nvidia_gpu_prometheus_exporter` 镜像,并以 daemon 模式运行一个容器。 2. 配置 Prometheus 在 Prometheus 的配置文件 `prometheus.yml` 中添加以下内容: ```yaml scrape_configs: - job_name: 'nvidia_gpu_exporter' scrape_interval: 5s static_configs: - targets: ['<nvidia_gpu_prometheus_exporter_host>:9101'] ``` 其中 `<nvidia_gpu_prometheus_exporter_host>` 是 `nvidia_gpu_prometheus_exporter` 容器所在的宿主机的 IP 地址。 3. 重启 Prometheus 在修改了 `prometheus.yml` 配置文件后,需要重启 Prometheus 才能生效。 4. 访问 Grafana 访问 Grafana 并配置一个 Dashboard,就可以实时监控 GPU 使用情况了。在添加图表时,可以选择 `nvidia_gpu_duty_cycle`、`nvidia_gpu_memory_free`、`nvidia_gpu_memory_total` 等指标。 需要注意的是,`nvidia_gpu_prometheus_exporter` 只能监控到正在运行的容器中的 GPU 使用情况,如果容器已经停止运行,那么它占用的 GPU 资源也不会被统计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听说唐僧不吃肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值