从零搭建AI算力监控平台:GPU资源可视化教程
为什么要自己搭AI算力监控平台
当你有一台带GPU的服务器跑深度学习或AI推理时,最怕的就是显存爆掉或GPU过温降频。
直接登录服务器看 nvidia-smi 毕竟不方便,多个节点时更麻烦。
自己搭一套AI算力监控平台,就能在浏览器里随时看到GPU使用率、显存占用、温度、功耗等指标,还能设告警。
本文面向零基础用户,用 Prometheus + DCGM Exporter + Grafana 这套成熟组合,一步步带你在 Ubuntu 20.04/22.04 上完成部署。
准备条件
- 一台带NVIDIA GPU的Linux服务器(本文用Ubuntu 22.04)
- 已安装NVIDIA驱动和
nvidia-smi命令能正常输出 - 服务器能正常访问外网(用于下载软件包)
- 开放以下端口(后续使用):9090(Prometheus)、3000(Grafana)、9400(DCGM Exporter)
确认驱动和GPU是否就绪:
nvidia-smi
如果显示GPU型号和驱动版本,继续下一步。
第一步:安装Prometheus
Prometheus负责抓取和存储指标数据。
用压缩包方式安装,便于新手理解。
# 下载最新版(以2.53.0为例,版本号可去官网确认)
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
# 解压
tar xzf prometheus-2.53.0.linux-amd64.tar.gz
cd prometheus-2.53.0.linux-amd64
修改配置文件 prometheus.yml,在 scrape_configs 下添加DCGM Exporter的抓取目标(后续安装):
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'dcgm'
static_configs:
- targets: ['localhost:9400']
启动Prometheus(后台运行):
./prometheus --config.file=prometheus.yml &
访问 http://你的服务器IP:9090 看到Prometheus界面就成功。
第二步:安装DCGM Exporter
DCGM Exporter由NVIDIA官方提供,专门采集GPU指标。
# 拉取Docker镜像(确保已安装Docker)
docker run -d --gpus all -p 9400:9400 \
--name dcgm-exporter \
nvidia/dcgm-exporter:latest
如果不想用Docker,也可以用二进制版,但Docker最省事。
检查是否运行:
docker ps | grep dcgm
如果看到容器运行,访问 http://你的IP:9400/metrics 应返回大量GPU相关指标。
第三步:安装并配置Grafana
Grafana负责可视化展示,从官方APT源安装最稳定。
# 添加Grafana仓库
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y grafana
# 启动并设置开机自启
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
访问 http://你的IP:3000,默认账号密码都是 admin,首次登录会要求修改密码。
添加Prometheus数据源
- 登录Grafana后,左侧菜单点 Configuration > Data Sources
- 点 Add data source,选择 Prometheus
- URL填
http://localhost:9090(如果Prometheus在本机) - 点 Save & Test,提示成功即可。
导入GPU监控仪表盘
Grafana社区有现成的DCGM仪表盘,ID为 12227。
操作路径:
- 左侧菜单点 + > Import
- 输入
12227,点 Load - 数据源选择刚创建的Prometheus,点 Import
稍等几秒,你就能看到GPU使用率、显存、温度、功率等实时曲线。
避坑指南
- 端口被防火墙拦截:如果访问不了Grafana或Prometheus,检查云安全组或服务器
ufw。Ubuntu打开端口示例:sudo ufw allow 9090/tcp等。 - DCGM Exporter抓取不到指标:检查
dcgm-exporter容器是否运行,用docker logs dcgm-exporter看日志。 - Grafana仪表盘图表没数据:确认Prometheus配置里
dcgmjob的target地址是否正确,并刷新数据源。 - 版本兼容:DCGM Exporter 3.x版本需要Prometheus 2.x,Grafana 9.x以上都支持。
验证效果
打开Grafana仪表盘,观察GPU实时数据。
你也可以在服务器上跑一个压力命令来测试:
# 如果没有压力工具,用简单的矩阵运算
python3 -c "import numpy as np; a=np.random.rand(10000,10000); b=np.random.rand(10000,10000); print(np.dot(a,b))"
此时Grafana面板上的GPU使用率和显存应明显上升。
如果你发现某个指标异常(比如温度过高),建议检查散热或降频策略。
这套AI算力监控平台搭建完成后,你还可以添加告警规则,在GPU使用率超过90%时发送通知。
遇到问题先回看本文避坑部分,或查看Prometheus和Grafana官方文档。