在CentOS系统中监控和管理显卡温度是许多用户,尤其是从事图形处理、深度学习或游戏开发的工作者的需求,与Windows不同,CentOS作为Linux发行版,默认可能不提供图形化的温度监控工具,但通过命令行和第三方工具,依然可以实现对显卡温度的实时监控和管理,本文将详细介绍在CentOS系统中如何查看显卡温度、常用工具的使用方法以及相关配置技巧。

安装必要的工具
在CentOS中,监控显卡温度通常需要借助第三方工具,如nvidia-smi或amd-adm,具体取决于显卡型号,对于NVIDIA显卡,nvidia-smi是官方提供的命令行工具,可以直接查看显卡温度、显存使用率、功耗等信息,对于AMD显卡,可以使用radeontop或sysfs接口进行监控,确保已安装对应的显卡驱动,以NVIDIA显卡为例,可通过以下命令安装驱动:
sudo yum install akmod-nvidia sudo reboot
重启后,运行nvidia-smi即可验证驱动是否安装成功,若输出显卡信息,则表示驱动已正常工作。
使用nvidia-smi监控温度
nvidia-smi是NVIDIA显卡最常用的监控工具,默认即可显示实时温度,运行以下命令:
nvidia-smi -q -d TEMPERATURE
-q表示查询详细信息,-d TEMPERATURE指定只显示温度相关信息,输出结果中包含GPU当前温度、GPU最大允许温度和GPU慢速阈值温度等数据,若需持续监控温度变化,可结合watch命令实现动态刷新:
watch -n 1 nvidia-smi
该命令会每秒刷新一次显卡状态,方便实时观察温度波动。
使用radeontop监控AMD显卡温度
对于AMD显卡,radeontop是一个轻量级的命令行监控工具,首先安装该工具:
sudo yum install radeontop
运行以下命令启动监控:

radeontop -d
-d参数表示以详细模式显示,包括温度、显存占用、核心频率等信息,若需简化输出,可使用默认模式:
radeontop
通过按q键可退出监控界面。
通过sysfs接口获取温度信息
无论是NVIDIA还是AMD显卡,Linux内核都提供了sysfs接口,允许用户通过读取系统文件获取温度数据,对于NVIDIA显卡,温度信息通常位于:
cat /sys/class/hwmon/hwmon*/temp1_input
该命令会返回以毫摄氏度为单位的温度值,需除以1000得到摄氏温度,对于AMD显卡,路径可能略有不同,可通过以下命令查找:
find /sys -name "temp1_input" 2>/dev/null
找到对应文件后,使用cat命令即可读取温度数据。
配置温度告警
长时间高温运行可能影响显卡寿命,因此配置温度告警非常重要,可通过编写简单的Shell脚本结合nvidia-smi或sysfs接口实现,以下是一个示例脚本,当温度超过80℃时输出警告:
#!/bin/bash
TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=noheader,nounits)
if [ "$TEMP" -gt 80 ]; then
echo "警告:显卡温度过高,当前温度为 $TEMP℃"
fi 将脚本保存为temp_monitor.sh,并赋予执行权限:

chmod +x temp_monitor.sh
可通过cron设置定时任务,例如每分钟检查一次:
*/1 * * * * /path/to/temp_monitor.sh >> /var/log/temp_monitor.log
优化显卡散热
监控温度的同时,合理优化散热措施同样重要,确保机箱通风良好,定期清理风扇和散热片灰尘,对于服务器环境,可调整显卡功耗限制以降低发热量:
nvidia-smi -i 0 -pl 200 # 设置显卡0的功耗限制为200W
适当降低显卡超频频率或使用节能模式也可有效控制温度。
相关问答FAQs
Q1: 为什么在CentOS中运行nvidia-smi提示“command not found”?
A: 这通常是因为NVIDIA驱动未正确安装或未添加到系统路径,可通过以下步骤解决:1)确认驱动已安装(运行modprobe nvidia查看是否报错);2)检查/usr/bin/nvidia-smi是否存在;3)若存在,尝试使用绝对路径运行;4)重启系统后重试。
Q2: 如何在CentOS中持续记录显卡温度日志?
A: 可使用nvidia-smi的--query-gpu参数结合--format=csv将温度数据导出为CSV文件,并通过cron定时任务记录日志,每分钟记录一次温度到/var/log/gpu_temp.log:
*/1 * * * * nvidia-smi --query-gpu=timestamp,temperature.gpu --format=csv,noheader >> /var/log/gpu_temp.log
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复