CentOS 9 下查看 CPU 频率、温度、降频记录,以及如何限频(intel_pstate)

1. 查看 CPU 调频驱动、频率范围、当前策略

1.1 查看频率信息

cpupower frequency-info

重点看这些字段:

如果你看到 current CPU frequency 长期在 5.xGHz,且温度 90°C 以上,基本就是睿频冲顶导致。


2. 实时查看当前频率(观察是否被限制、是否在抖)

2.1 最简单的实时看频率

watch -n 1 "grep -m1 'cpu MHz' /proc/cpuinfo"

更想看多个核心(前 12 行):

watch -n 1 "grep -E 'cpu MHz' /proc/cpuinfo | head -n 12"

3. 查看 CPU 温度(Package / 各核心)

3.1 安装 sensors 工具

dnf install -y lm_sensors

3.2 探测传感器(只需一次)

sensors-detect

3.3 查看温度

sensors

一般重点看:

实时刷新:

watch -n 1 sensors

4. 查看是否发生过热降频(throttling)

降频有没有发生过,不要靠猜。优先看内核统计计数。

4.1 查看 thermal throttle 计数(最可靠)

grep -i . /sys/devices/system/cpu/cpu*/thermal_throttle/* 2>/dev/null

你会看到类似:

只要出现非 0,就说明发生过热降频。


4.2 查内核日志(不一定有)

dmesg | egrep -i 'thermal|throttl|overheat'

注意:有些 BIOS/板子不会打日志,日志空不代表没降频。所以日志只能当辅助,统计计数才是核心。


5. 限制最高频率(推荐做法:只限上限,不锁死)

高负载长跑的重点是稳定,不是跑分。限上限能明显降温,减少热保护介入,性能反而更稳。

5.1 限制最高频率(示例 5.2GHz)

cpupower frequency-set -u 5.2GHz

更稳一些的常用档位(按实际情况选):

示例:

cpupower frequency-set -u 4.2GHz
# 或
cpupower frequency-set -u 3.8GHz

验证是否生效:

cpupower frequency-info
watch -n 1 "grep -m1 'cpu MHz' /proc/cpuinfo"

6. 调整 EPP(能效策略,配合限频更稳)

intel_pstate 下的 energy_performance_preference(EPP)会影响 CPU 是否“动不动就冲最高频”。

查看当前:

cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference

改为更适合服务器的策略:

echo balance_performance > /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference

再看一次确认:

cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference

说明:
performance 更激进,更容易冲顶;balance_performance 更稳,温度更好看。


7. 一键采集(频率/温度/降频计数),方便截图发群里

echo "==== CPU FREQ (policy) ===="
cpupower frequency-info

echo
echo "==== CPU TEMP ===="
sensors

echo
echo "==== THROTTLE COUNT ===="
grep -i . /sys/devices/system/cpu/cpu*/thermal_throttle/* 2>/dev/null | head -n 60

8. 常见现象与判断

1)Package 长期 90°C+,风扇满速,频率仍能冲 5.x:
基本属于“睿频冲顶 + 持续高负载”,后续很容易开始热降频,表现为性能波动。

2)某几个核心特别热,其他核心低:
多见于进程亲和性绑定不合理(热点集中),不是机箱温度问题。

3)降频计数持续增长:
说明热保护在频繁介入,需要降温(限频/优化绑核/减少负载/检查散热)。


已有10位网友发表了看法:

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。