Linux怎么监控CPU实时温度防止高温降频

胖强姑娘_4198

胖强姑娘_4198

2026-09-20

428人浏览

原创

用sensors命令配合coretemp(intel)或k10temp(amd)驱动是最轻量可靠的cpu温度监控方式;需确保内核模块加载、权限正确、路径准确,并关注单核瞬时温度而非封装平均值。

linux怎么监控cpu实时温度防止高温降频

直接看结论:用 sensors 命令配合内核 coretemp(Intel)或 k10temp(AMD)驱动,是最轻量、最可靠、最贴近硬件的实时温度监控方式;但前提是传感器已被正确加载——很多用户卡在第一步就失败,不是工具不行,而是没打通内核到用户的通路。

为什么 sensors 显示 0℃ 或 “No sensors found”

这不是软件问题,是内核模块没加载或权限/路径没对上。常见现象包括:sensors-detect 扫不到设备、/sys/class/hwmon/ 下有目录但 temp*_input 文件读出来是 0、或者 coretemp 模块存在却显示 “Package id 0: +0.0°C”。

  • Intel CPU 必须确认 coretemp 已加载:lsmod | grep coretemp;若无输出,手动加载:sudo modprobe coretemp
  • AMD Ryzen/EPYC 用户注意:k10temp 默认只暴露主板温度,要启用 CPU 核心温度需加内核参数:amd_iommu=on k10temp.polling_rate=2000(写入 /etc/default/grubGRUB_CMDLINE_LINUX 后运行 sudo update-grub && sudo reboot
  • sensors-detect 过程中遇到 “Probe it now?” 提示时,务必选 YES;它会自动添加 modprobe 配置到 /etc/modules,否则重启后模块丢失
  • 普通用户无法直接读 /sys/class/hwmon/hwmon*/temp*_input?加入 hwmon 用户组:sudo usermod -aG hwmon $USER,然后重新登录

sensors 输出里哪些温度值真正反映 CPU 负载热点

别只盯着 “Package id 0” —— 它是封装级平均温度,滞后且平滑;真正决定是否降频的是单核瞬时温度,尤其 Core 0/1 这类常驻调度核心。

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • “Core X: +XX.X°C” 行才是每个物理核心的实测值,单位为摄氏度,数值来自 MSR 寄存器直读,延迟
  • 注意括号里的 high = +82.0°Ccrit = +100.0°C:前者是 Intel TjMax 偏移阈值,触发 thermald 介入;后者是硬关机临界点,不可靠,仅作参考
  • 如果某核心持续比 Package 高 8℃ 以上,说明该核正在高频满载(如编译、FFmpeg 单线程转码),此时即使 Package 温度才 75℃,也已逼近降频起点
  • Raspberry Pi 用户请改看 bcm2835_thermaltemp1_input,单位是毫摄氏度(如 58250 = 58.25℃),别直接当摄氏度用

怎么用最小开销实现“超 85℃ 自动告警+降频干预”

不用写完整服务,一行 while 循环 + 内核接口就够了。关键是要绕过用户态轮询延迟,直接读 /sys 文件,避免 watch -n 1 sensors 这种高开销方案。

  • 实时读取最敏感核心温度(以 Core 0 为例):cat /sys/class/hwmon/hwmon*/temp*_label 2>/dev/null | grep "Core 0" -A1 | tail -1 | tr -d '+' | cut -d' ' -f1 | cut -d'.' -f1
  • 触发告警脚本(比如弹窗):if [ $(cat /sys/class/hwmon/hwmon0/temp2_input) -gt 85000 ]; then notify-send "CPU高温" "Core 0: $(cat /sys/class/hwmon/hwmon0/temp2_input | awk '{printf "%.1f", $1/1000}')°C"; fi
  • 更激进的干预:写入 /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq 限制频率(如 echo 1200000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq),比等系统自动降频更快
  • 注意:所有 /sys/class/hwmon/ 下的路径不固定,建议先用 find /sys/class/hwmon -name "temp*_label" | xargs grep -l "Core 0" 定位真实路径,再固化脚本

最易被忽略的一点:温度读数本身有 ±1.5℃ 硬件误差,且不同核心传感器校准不一致。别把告警阈值卡死在 85℃,建议设为 82–83℃ 并持续 3 秒才触发——否则风扇启停抖动、误报频繁,反而掩盖真实过热问题。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3570

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3113

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2153

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5110

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4802

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2893

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2405

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2619

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习