GPU服务器的性能实时监控(由nvidia_gpu_exploter+prometheus+grafana实现)

先展示最终效果:

要实现上述监控页面,必须安装并配置nvidia_gpu_exploter、prometheus、grafana这三个软件,具体的安装配置流程如下:

(我想通过网页实时展示服务器上正在运行的gpu进程以及使用的显存占比,但是这套配置其最终效果只显示内存使用占比、显存使用占比,gpu实时利用率等等,无法实现gpu进程和其占比的实时展示)

一、nvidia_gpu_exploter的安装配置

nvidia_gpu_exploter用于获取nvidia-smi的输出信息,可以将其看作一个抓手,定时(5s/10s)抓取一次nvidia-smi的输出信息。

  1. nvidia_gpu_exploter的安装

    ubuntu20.04可使用以下命令一键傻瓜安装:

    sudo dpkg -i nvidia-gpu-exporter_1.1.0_linux_amd64.deb

    或使用二进制文件安装:

bash 复制代码
VERSION=1.1.0
wget https://github.com/utkuozdemir/nvidia_gpu_exporter/releases/download/v${VERSION}/nvidia_gpu_exporter_${VERSION}_linux_x86_64.tar.gz
tar -xvzf nvidia_gpu_exporter_${VERSION}_linux_x86_64.tar.gz
mv nvidia_gpu_exporter /usr/bin
nvidia_gpu_exporter --help
 
  1. nvidia_gpu_exploter的配置

    一键式傻瓜安装无需额外就能启用nvidia_gpu_exploter.service

    systemctl start nvidia_gpu_exporter.service

    systemctl status nvidia_gpu_exporter.service

  1. 之后在局域网内部任意一台电脑中输入服务器IP:9835 即可访问服务页面

出现上述内容,说明nvidia_gpu_exporter.service成功运行

nvidia_gpu_exporter项目的github主页: utkuozdemir/nvidia_gpu_exporter: Nvidia GPU exporter for prometheus using nvidia-smi binary (github.com)

二、prometheus的安装配置

prometheus用于将nvidia_gpu_exporter抓取到的数据格式化为grafana可使用的标准数据。

  1. prometheus的安装

    sudo apt install prometheus

  2. prometheus的配置

    进入/etc/prometheus目录,修改prometheus.yml,设置prometheus的数据源(设置为nvidia_gpu_exporter),如下图所示:

    然后开启prometheus服务:sudo systemctl start prometheus.service

  3. 之后在局域网内部任意一台电脑中输入服务器IP:9090 即可访问prometheus服务页面

  4. Targets 下出现nvidia_gpu_exporter的数据源,则证明prometheus服务配置成功。

三、grafana的安装配置

grafana软件用于数据的可视化展示,Grafana 支持的数据源有

  • Prometheus 本文中的例子,你没听过也没关系不影响阅读,把它想象成带时间戳的 MySQL 就好
  • Graphite
  • OpenTSDB
  • InfluxDB
  • MySQL/PostgreSQL
  • Microsoft SQL Server
  • 等等
  1. grafana的安装

    下载deb文件:wget https://dl.grafana.com/enterprise/release/grafana-enterprise_10.4.0_amd64.deb

    解压安装:sudo dpkg -i grafana-enterprise_10.4.0_amd64.deb

  2. 启动grafana.service服务: sudo systemctl start grafana-server.service

  3. 之后在局域网内部任意一台电脑中输入服务器IP:3000 即可访问grafana服务页面。(首次登录用户名和密码都是admin)

  4. 登录成功后配置grafana的仪表盘:

    1. 第一步:创建一个grafana data connection:

      (1). 选择数据格式为prometheus.

      (2). 添加prometheus数据源地址,如图所示: prometheus服务地址中,端口号要和你在prometheus.yml中配置的一致,由于我没有修改prometheus服务的端口,所以仍使用默认端口9090

    2. 第二步:创建仪表盘

      (1) 加载你想要的仪表盘样式,我选择的是nvidia_gpu_exploter官方发布的仪表盘,编号为:14574

    3. 第三步,为你的仪表盘选择一个grafana data connection数据源,如图所示

最终,通过以下操作得到服务器状态的实时展示,如图所示:

完!

相关推荐
金士顿17 分钟前
ASP.NET Core BackgroundService 深度解析:设备后台任务到底应该怎么设计
linux·嵌入式·asp.net core·arm64
j7~28 分钟前
【Linux网络加餐课】(篇八)网络版计算器(终篇):守护进程、标准 IO 重定向与部署打包
linux·运维·网络编程·tcp·守护进程·io重定向·部署打包
Escalating_xu37 分钟前
【Linux 多线程】自旋锁:从 atomic_flag 原子操作到 pthread_spin_* 与高竞争优化
linux·系统架构
kkkkkkkkkk_Z1 小时前
学嵌入式和Linux应用编程|学习日记:深入理解TCP协议与网络编程实战
linux·笔记·学习
kaoa0001 小时前
Linux入门攻坚——90、Hadoop-2-MapReduce计算框架及Hadoop生态系统概览
linux·hadoop·mapreduce
The Chosen One9852 小时前
OS第二章随手记(2.1)
linux·运维·服务器·笔记
xx~t3 小时前
嵌入式——ARM——汇编1
linux·汇编·arm开发·嵌入式硬件·arm
ly76893 小时前
磁盘 I/O 延迟突增:用 iostat、blktrace 与火焰图定位到具体调用栈
java·linux·前端·数据库·iostat·磁盘 i/o·blktrace
程序员-Benothing3 小时前
Linux查找文件命令:find、locate、which、whereis实战
linux·运维·服务器
j7~3 小时前
【Linux网络加餐】(篇七)网络版计算器(中):协议落地、报文分隔与完整链路
linux·c++·网络编程·tcp·报文分割·网络计算器·协议落地