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数据源,如图所示

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

完!

相关推荐
EPSDA几秒前
Linux线程池
linux·运维·服务器·开发语言·c++
我爱蛋蛋后几秒前
Linux驱动开发之音频驱动与基础应用编程
linux·c语言·驱动开发·音视频
你好呀我是裤裤1 小时前
Linux基础开发工具的使用(apt、vim、gcc、g++、gdb、make、makefile)
linux·运维·vim
望获linux2 小时前
如何在望获实时 Linux & 京博航友善 NanoPC-T6 上部署 Docker
linux·运维·服务器·docker·eureka·开源软件
wangchen_02 小时前
linux编译器和自动化构建工具(gcc与Makeile)
linux·运维·服务器
DC_BLOG2 小时前
Linux-Ansible命令
linux·运维·服务器·ansible
suenpeng2 小时前
安全运维,等保测试常见解决问题。
linux·运维·安全
码农君莫笑2 小时前
Linux系统上同时打印到物理打印机并生成PDF副本方法研究
linux·前端·chrome·打印·信管通
马剑威(威哥爱编程)3 小时前
Linux驱动开发13个实用案例
linux·运维·驱动开发
程序员JerrySUN3 小时前
每天设计者模式-1:基础面试题
java·linux·运维·服务器·开发语言·python·docker