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

news2024/11/29 13:34:30

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-ubi8
    container_name: dcgm-exporter
    hostname: dcgm-exporter_192
    restart: always
    ports:
      - "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.coloradmin.cn/o/2215775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑端微信图片文件视频的缓存目录

C:\Users\aaa30\Documents\WeChat Files\wxid_n6b8j77iqho412\FileStorage\Video\2024-10

冠层体散射反射对称性协方差矩阵的模型,在多种分解中都适用

把这个矩阵对应到观测协方差矩阵中,看占比多少,然年后得到体散射功率,时前面的系数乘对角线的和

51单片机快速入门之左移右移流水灯 2024年10/15

51单片机快速入门之左移右移流水灯 左移操作: <<1 每次往左移动一位假设一个八位数为0000 1111 当这个数左移一次之后 0 0001 1110当这个数左移两次之后 00 0011 1100 注意观察 橙色 数字 Python代码如下: 0b表示这是一个二进制 注意这里前置0被省略了 …

数据结构——树和森林

目录 树的存储结构 1、双亲表示法 2、孩子链表 3、孩子兄弟表示法 树与二叉树的转换 将树转换为二叉树 将二叉树转换为树 森林与二叉树的转化 森林转换成二叉树 二叉树转换为森林 树和森林的遍历 1、 树的遍历&#xff08;三种方式&#xff09; 2、森林的遍历 树的存…

DVWA之File Inclusion(文件包含)

DVWA之File Inclusion&#xff08;文件包含&#xff09; 1、定义&#xff1a;服务器通过php的特性&#xff08;函数的特性&#xff09;去包含任意文件时&#xff0c;由于对包含的文件来源没有过滤或过滤不严&#xff0c;从而可去包含一个恶意的文件。文件包含包括&#xff1a;…

【从零开始的LeetCode-算法】3200. 三角形的最大高度

给你两个整数 red 和 blue&#xff0c;分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形&#xff0c;满足第 1 行有 1 个球&#xff0c;第 2 行有 2 个球&#xff0c;第 3 行有 3 个球&#xff0c;依此类推。 每一行的球必须是 相同 颜色&#xff0c;且相邻行…

AdaTAD(CVPR 2024)视频动作检测方法详解

前言 论文&#xff1a;End-to-End Temporal Action Detection with 1B Parameters Across 1000 Frames 代码&#xff1a;AdaTAD 从论文标题可以看出&#xff0c;AdaTAD 可以在 1B 参数且输入视频在 1000 帧的情况下实现端到端的训练&#xff0c;核心创新点是引入 Temporal-Inf…

STM32传感器模块编程实践(六) 1.8寸液晶屏TFT LCD彩屏简介及驱动源码

文章目录 一.概要二.TFT彩屏主要参数三.TFT彩屏参考原理图四.TFT彩屏模块接线说明五.模块SPI通讯协议介绍六.TFT彩屏模块显示1.显示英文字符串2.显示数字3.显示中文 七.TFT彩屏实现图片显示八.STM32单片机1.8寸 TFT LCD显示实验1.硬件准备2.软件工程3.软件主要代码4.实验效果 九…

【C++】——list 容器的解析与极致实现

人的一切痛苦&#xff0c;本质上都是对自己的无能的愤怒。 —— 王小波 目录 1、list 介绍 2、list的使用 2.1 list 的构造 2.2 iterator 的使用 2.3 list 的修改 2.4一些特殊接口 2.5 迭代器失效问题 3、实现list 3.1底层结构 结点类 list类 迭代器类 3.2功能接…

VLOG视频制作解决方案,开发者可自行定制包装模板

无论是旅行见闻、美食探店&#xff0c;还是日常琐事、创意挑战&#xff0c;每一个镜头背后都蕴含着创作者无限的热情和创意。然而&#xff0c;面对纷繁复杂的视频编辑工具&#xff0c;美摄科技凭借其前沿的视频制作技术和创新的解决方案&#xff0c;为每一位视频创作者提供了开…

服务端负载均衡和客户端负载

负载均衡分为服务端负载均衡和客户端负载均衡&#xff0c;图解&#xff1a; 客户端的负载均衡还需要从注册中心获取集群部署的服务地址&#xff0c;其中客户的负载均衡器定时读取注册中心的IP和端口&#xff0c;然后缓存起来&#xff0c;这样以后可以先判断缓存IP和端口是否可用…

矩阵基础知识

矩阵定义 矩阵的定义 1.矩阵是由一组数按照矩形排列而成的数表。矩阵通常用大写字母表示&#xff0c;例如 AA、BB 等。矩阵中的每个数称为矩阵的元素或元。 一个 mn的矩阵 AA 可以表示为&#xff1a; 其中 aij表示矩阵 A中第i行第j列的元素。 矩阵的维度 1.矩阵的维度由它…

城市形态计算方法

1、天空可视率&#xff08;Sky view factor sky&#xff09; &#xff08;1&#xff09;准备地形数据、带高度的建筑矢量数据 &#xff08;2&#xff09;将建筑矢量数据投影栅格&#xff0c;利用栅格计算器和镶嵌至新栅格得到带有建筑高度数据的地形数据 &#xff08;3&…

[Windows] 屏幕截图工具Snipaste 开发过程更轻松

前言 老大&#xff1a;你去把用户登录代码写完。 老大&#xff1a;你把这周的周报发一下 老大&#xff1a;你把生产的数据清理一下。 结果… 今天刚把登录代码写完&#xff0c;下班&#xff0c;明天就处理别的事情去了&#xff01;&#xff01;&#xff01; 之后我就… 直接…

MATLAB智能算法 - AntColonyOptimization蚁群算法

AntColonyOptimization蚁群算法 智能算法是路线规划、深度学习等等一系列领域所使用的优化算法&#xff0c;是算法进阶之路的必备之路。 前言&#xff1a;本文主要围绕解决TSP旅行商问题展开&#xff0c;对于机器人的路线规划以及非线性方程求解的问题等解决方案 对于一些其他优…

线上找工作小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 这款线上找工作小程序源码系统是一款集成了岗位发布、简历投递、在线沟通等核心功能的一站式解决方案。系统采用主流的技术栈开发&#xff0c;如PHP后端配合MySQL数据库&#xff0c;前端则利用了Vue.js框架或原生微信小程序技术&#xff0c;确保了系统的高性能与良好…

AWS账号与邮箱的关系解析

在当今数字化时代&#xff0c;云计算服务的普及使得越来越多的企业和个人用户开始使用亚马逊网络服务&#xff08;AWS&#xff09;。作为全球领先的云服务平台&#xff0c;AWS为用户提供了丰富的计算、存储和数据库服务。然而&#xff0c;对于许多新用户来说&#xff0c;关于AW…

IT圈大实话!卷运维不如卷网络安全

前言 在刚刚过去的金九银十&#xff0c;我进行了多场网络安全的技术面试&#xff0c;我发现最近很多从事运维的选择了辞职&#xff0c;转行到了网络安全这个发展路线。 说实话&#xff0c;运维工程师这个岗位在IT行业里面确实是处于最底层的&#xff0c;不管什么环节出现问题…

从“寻鲜市集”看巴奴产品主义的「新生命力」

【潮汐商业评论/原创】 “这个就是获得‘国家地理标志产品’的金阳青花椒&#xff0c;七分麻三分香&#xff0c;是麻辣火锅的灵魂&#xff1b;这个菌汤用了3种云南野生牛肝菌熬制&#xff0c;味道鲜香&#xff0c;口感顺滑&#xff1b;还有这个龙竹鲜笋可不得了&#xff0c;它…

【基于docker的深度学习训练环境】关键步骤记录

最近给公司搭建了一个小型的深度学习环境&#xff0c;实现了多人通过SSH对GPU资源的利用&#xff0c;下面对一些关键架构和易用性部分进行记录。 一、整体软硬件框架 1、硬件配置&#xff0c;采用的双GPU的方案&#xff0c;两块消费级显卡。 2、应用层架构 宿主机系统为ubunt…