当前位置: 首页 > news >正文

Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控

Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控

文章目录

  • Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控
      • 一 查看当前 GPU 信息
      • 二 dcgm-exporter 部署
        • 1)Docker run 运行
        • 2)Docker compose 运行
      • 三 运行时报错
        • 解决方案
      • 四 验证测试
      • 五 配置 prometheus
        • 属性解释

本文介绍了如何在 Docker 环境下,通过 Prometheus 和 DCGM Exporter 实现对 GPU 资源的监控。文章首先展示了如何使用 nvidia-smi 查看 GPU 信息,并提供了通过 Docker run 和 Docker Compose 部署 DCGM Exporter 的详细步骤。接着,文章还解决了部署过程中可能遇到的 NVML 初始化错误,指导用户安装 NVIDIA 容器工具包,确保 GPU 监控顺利进行。最后,用户可以通过 Prometheus 配置抓取 GPU 性能指标数据,并通过访问 metrics 页面验证系统是否成功运行,帮助开发者和运维人员实现对 GPU 资源的高效监控和管理。

预备课

Docker 安装与配置:从入门到部署

Docker 部署 Prometheus+Grafana 监控系统快速指南

Docker Compose 部署大模型GPU集群:高效分配与管理算力资源

一 查看当前 GPU 信息

nvidia-smi

当前GPU信息

在这里插入图片描述

二 dcgm-exporter 部署

1)Docker run 运行
$ DCGM_EXPORTER_VERSION=2.1.4-2.3.1 && \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
# 或者

或者

$ sudo docker run -d --gpus all --rm -p 9400:9400 nvidia/dcgm-exporter:3.2.5-3.1.8-ubi8

:测试时可以用 --rm ,其他情况删除上面的 --rm

2)Docker compose 运行

docker-compose.gpu192.yml

version: '3'
services:dcgm-exporter:image: nvidia/dcgm-exporter:3.2.5-3.1.8-ubi8container_name: dcgm-exporterhostname: dcgm-exporter_192restart: alwaysports:- "9400:9400"

三 运行时报错

运行上面的 docker compose 报错,如下

dcgm-exporter  | Warning #2: dcgm-exporter doesn't have sufficient privileges to expose profiling metrics. To get profiling metrics with dcgm-exporter, use --cap-add SYS_ADMIN
dcgm-exporter  | time="2023-10-23T07:55:38Z" level=info msg="Starting dcgm-exporter"
dcgm-exporter  | Error: Failed to initialize NVML
dcgm-exporter  | time="2023-10-23T07:55:38Z" level=fatal msg="Error starting nv-hostengine: DCGM initialization error"

ERROR

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
解决方案

需要 安装 NVIDIA 容器工具包

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
# 
sudo yum install -y nvidia-container-toolkit
#
sudo nvidia-ctk runtime configure --runtime=docker
#
sudo systemctl restart docker

运行,sudo nvidia-ctk runtime configure --runtime=docker,追加 /etc/docker/daemon.json 的内容

{"runtimes": {"nvidia": {"args": [],"path": "nvidia-container-runtime"}}
}

四 验证测试

访问 URL:http://your-ip:9400/metrics 。

五 配置 prometheus

global:scrape_interval: 15s # 设置全局默认的抓取周期为15秒,这意味着Prometheus每15秒从配置的目标处拉取数据一次external_labels:monitor: gpu-monitor # 给所有从此Prometheus实例抓取的数据添加额外的标签,这里的标签名是"monitor",值是"gpu-monitor"scrape_configs:- job_name: 'dcgm-exporter' # 定义一个抓取任务,名称为'dcgm-exporter'static_configs:- targets: ['your-ip:9400'] # 指定抓取目标,这里是位于'your-ip'的主机上,端口为9400的服务
属性解释
  • scrape_interval 定义了Prometheus抓取指标数据的频率。
  • external_labels 用于添加一些额外的、全局的标签到抓取到的数据中,这有助于在多个Prometheus实例中区分数据来源。
  • scrape_configs 部分定义了具体的抓取任务。每个任务可以有不同的目标和配置。
  • job_name 为这个抓取任务命名,可以在Prometheus的查询界面中用于区分不同的任务。
  • static_configs 中的 targets 列表指定了具体的抓取目标。这里的地址需要替换成实际的IP地址和端口,通常是运行监控代理的服务器地址。
http://www.lryc.cn/news/460405.html

相关文章:

  • 联想小新打印机M7328w如何解决卡纸,卡了一个小角在里面,然后再次打印的时候,直接卡住,不能动了。灯显示红色。
  • 软件可靠性之MTTR、MTBF、MTTF、MTTD区别
  • Qt-QDockWidget浮动窗口相关操作(49)
  • 图形用户界面-GUI的基本概念和组件之一
  • 【MATLAB代码】基于RSSI原理的蓝牙定位程序(N个锚点、三维空间),源代码可直接复制
  • Pyenv 介绍和安装指南 - Ubuntu 24
  • zookeeper实现RMI服务,高可用,HA
  • 通过Express + Vue3从零构建一个用户认证与授权系统(一)项目结构设计
  • JavaScript 第13章:Ajax 与异步请求
  • 速卖通商品详情接口技术解析及Python代码示例
  • 邻接表的有向网(C语言代码)
  • 大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成
  • MRSO算法(JCR2区)
  • 最新Spring Boot3框架入门教程,基础知识讲解(参考官方文档),同时基于MybatisPlus+MYSQL搭建后台管理系统基础流程(附源码)
  • 导数的概念及在模型算法中的应用
  • 获取首日涨停封盘后第二次交易日上涨/下跌的概率
  • shell $ 用法
  • 如何用支付宝实现靠脸吃饭
  • Visual Studio的实用调试技巧总结
  • graphrag学习总结
  • 专题:贪心算法(已完结)
  • Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式
  • JavaScript将array数据下载到Excel中
  • 【前端】Bootstrap:快速开始
  • 文献阅读(222) VVQ协议死锁
  • Node.js管理工具NVM
  • 云原生后端
  • 充电宝哪个品牌值得买?2024年五款靠谱充电宝推荐
  • YOLOv11对比YOLOV8网络结构变化分析,帮助你真正的理解和学习yolo框架
  • 弃用RestTemplate,RestClient真香!