操作系统监控手册
Linux-GPU
Graphics ProcessingUnit(GPU)是一种能够加速类图形计算的硬件设备,它可以提供用于图形和高性能计算的高速数据处理。许多大型GPU具有令人惊叹的价值,但只有在适当的环境中才能发挥其应有的性能。Linux系统中,使用情况可以帮助用户探索其GPU性能利用率。
要探索Linux下GPU性能利用率,一个常用的工具是nvidia-smi。它可以显示当前GPU的使用情况,包括图形渲染的帧速率,以及显存,电源和温度监控。例如,可以使用以下命令来查看GPU的当前使用率;
$nvidia-smi-query-gpu=utilization.gpu-format=csv
此外,还可以使用NVIDIA的TOPT具,它可以显示运行在托管GPU上的对应应用程序的情况。可以使用如下命令查看TOP工具的信息:
$nvidia-smitopo-matrix
有时,还需要监控GPU中资源利用率最高的进程,这需要使用nvidia-smi命令。使用以下命令可以查看在本次会话中使用最多显存的进程:
$ nvidia-smi dmon -s um -c 1
此外,还可以使用CUDA Profiler工具来详细了解GPU在渲染图形或执行计算时的实时性能。可以使用CUDA Profiler工具来查看特定GPU及其相邻GPU的实时性能指标,以及每个GPU的统计信息。
最后,为了探索Linux下GPU性能利用率,还可以使用NVIDIA System Management Interface
(NSMI)命令行接口。它可以提供有关GPU电源、温度、时钟频率和风扇速度等的实时信息,以帮助用户调整设置以优化性能。
因此,使用nvidia-smi、TOP工具、Cuda Profiler工具以及NSMI等技术,Linux用户可以更好地探索其GPU性能利用率,从而及时调整它们以获得最佳性能。
Linux-GPU监控模版采集到的监控指标如下图:
1 Linux-GPU模板概述
本文档适用于监控操作系统Linux-GPU,Linux-GPU是通过Zabbix Agent进行设备纳管,监控指标主要包含GPU利用率、显存、温度等。
支持的Zabbix版本:5.0以上版本
支持的Linux-GPU版本:Centos、Redhat、Uos、Kylin、Ubuntu、Euler、Suse
监控模板下载:子模板_操作系统_Linux-GPU_主动.xml
脚本文件下载:gpu_info.zip
2 模板详情
2.1 模板宏
无
2.2 监控指标
指标组 | 监控指标项 | Item名称 | Item键值 | 触发器 |
GPU数据 | GPU {#GPUINDEX} 使用率 | GPU {#GPUINDEX} 使用率 | gpu.check[{#GPUINDEX},utilization.gpu] |
|
GPU {#GPUINDEX} 内存使用大小 | GPU {#GPUINDEX} 内存使用大小 | gpu.check[{#GPUINDEX},memory.used] |
|
GPU {#GPUINDEX} 内存可用大小 | GPU {#GPUINDEX} 内存可用大小 | gpu.check[{#GPUINDEX},memory.free] |
|
GPU {#GPUINDEX} 内存总大小 | GPU {#GPUINDEX} 内存总大小 | gpu.check[{#GPUINDEX},memory.total] |
|
GPU {#GPUINDEX} 已使用电源功率 | GPU {#GPUINDEX} 已使用电源功率 | gpu.check[{#GPUINDEX},power.draw] |
|
GPU {#GPUINDEX} 温度 | GPU {#GPUINDEX} 温度 | gpu.check[{#GPUINDEX},temperature.gpu] | [主机]GPU {#GPUINDEX} 温度大于70°C |
GPU {#GPUINDEX} 温度 | GPU {#GPUINDEX} 温度 | gpu.check[{#GPUINDEX},temperature.gpu] | [主机]GPU {#GPUINDEX} 温度大于75°C |
GPU {#GPUINDEX} 温度 | GPU {#GPUINDEX} 温度 | gpu.check[{#GPUINDEX},temperature.gpu] | [主机]GPU {#GPUINDEX} 温度大于80°C |
GPU{#GPUINDEX} 风扇速率 | GPU{#GPUINDEX} 风扇速率 | gpu.check[{#GPUINDEX},fan.speed] |
|
GPU的数量 | GPU的数量 | gpu.number |
|
3 模板安装说明
3.1 监控前置条件
1. 导入Linux-GPU监控模板至Zabbix Web页面;
2. 需要存在已安装配置的zabbix agent程序,通过检查zabbix进程;
ps-ef|grep zabbix_agentd
3. 上传GPU脚本的压缩包gpu_info.zip至/tmp目录,并且解压gpu_info.zip文件;
unzip gpu_info.zip
4. 上传GPU纳管脚本至到被监控服务器的Agent规划的Userparameter目录中,例如/opt/zabbix/agent/agentscripts/gpu为gpu自定义监控的执行目录,复制gpu目录到/opt/zabbix/agent/agentscripts/;
cp -a /tmp/gpu /opt/zabbix/agent/agentscripts/
5. 上传gpu.conf文件到被监控服务器的config目录下,可以根据zabbixagent配置文件的Include参数,如未定义Include参数,则直接将gpu.conf文件追加到zabbix agent配置文件中,并且修改gpu.conf定义的get_gpu_info.sh/ get_gpu_check.执行路径,上传gpu.conf文件中默认路径为/opt/zabbix/agent/agentscripts/gpu,如默认路径是正确,则不需要修改;
cp -a /tmp/gpu.conf /opt/zabbix/agent/conf/zabbix_agentd/
6. 赋予/opt/zabbix/agent目录权限为zabbix用户组且755
chown -Rzabbix:zabbix /opt/zabbix/agent
chmod -R755 /opt/zabbix/agent
7. 重启zabbix agentd
systemctl restart zabbix-agentd
3.2 设备监控
3.2.1 主机添加
在zabbix web上新建host并关联Linux-GPU模板
3.2.2 修改主机宏
无
3.2.3 查看最新数据
在zabbix web上点击“monitor”à”Latest data”,在“Hosts”选择新增的Linux-GPU主机,最后点击“Apply”生效来查看最新数据。