2023-12-13    2023-12-13    466 字  1 分钟

公司内有一批GPU服务器,需要针对GPU使用的情况进行监控。

通过nvidia_gpu_exporter可实现对GPU的监控。

安装nvidia_gpu_exporter

下载安装

1
2
3
4
5
6
cd /usr/local/src
VERSION=1.2.0
wget https://github.com/utkuozdemir/nvidia_gpu_exporter/releases/download/v${VERSION}/nvidia_gpu_exporter_${VERSION}_linux_x86_64.tar.gz
mkdir /opt/nvidia_gpu_exporter_1.2.0
tar xf nvidia_gpu_exporter_1.2.0_linux_x86_64.tar.gz -C /opt/nvidia_gpu_exporter_1.2.0/
ln -s /opt/nvidia_gpu_exporter_1.2.0/ /opt/nvidia_gpu_exporter

ops用户启动,需要先创建用户并授权。

1
2
useradd -r ops
chown -R ops. /opt/nvidia_gpu_exporter*

服务启动

system配置文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
cat > /etc/systemd/system/nvidia_gpu_exporter.service << EOF
[Unit]
Description=nvidia_gpu_exporter daemon
After=network.target

[Service]
ExecStart=/opt/nvidia_gpu_exporter/nvidia_gpu_exporter
User=ops
Group=ops
PrivateTmp=True

[Install]
WantedBy=multi-user.target
EOF

启动

1
2
3
4
systemctl daemon-reload
systemctl enable nvidia_gpu_exporter.service
systemctl start nvidia_gpu_exporter.service
systemctl status nvidia_gpu_exporter.service

验证

nvidia_gpu_exporter默认监听在9835端口上。

1
2
netstat -lnpt | grep 9835
curl localhost:9835/metrics

Prometheus

Prometheus配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
- job_name: 'ng-k8s-node-gpu'
  static_configs:
    - targets: [
            '10.166.18.185:9835',
            '10.166.19.183:9835',
            '10.166.18.236:9835',
            '10.166.18.89:9835',
            '10.166.19.108:9835',
            '10.166.17.210:9835',
            '10.166.17.240:9835',
 ]

重载Prometheus

1
curl -XPOST localhost:9090/-/reload

Grafana

GrafanaDashboard14574点击跳转官方地址。

使用官方模版,效果如图。下拉菜单可以根据GPUUUID进行筛选。

image-20231213165301836

根据GPUUUID进行筛选不是很直观。我们希望先根据主机进行筛选,然后在对GPU进行筛选。

修改Variables,添加一条host,筛选出主机。然后在修改gpu,使其依赖host变量。

image-20231213170642655

最终效果如图。

image-20231213165909354


image-20231028232834657