最可靠方法是比对scaling_cur_freq与cpuinfo_max_freq:若前者持续接近后者(差值小于100MHz)且系统有负载,即可确认睿频已激活。

直接看 scaling_cur_freq 和 cpuinfo_max_freq 的关系最可靠
Linux 没有叫“睿频状态”的开关字段,判断是否正在睿频,本质就是比对「此刻实际频率」和「硬件允许的最高频率」。前者来自 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq(单位 kHz),后者来自 /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq(同样单位 kHz)。如果前者持续接近后者(差值 stress-ng -c 1 --timeout 10s),基本可确认睿频已激活。
常见错误是只看 lscpu 输出里的 CPU MHz 字段——它可能来自空载时的缓存采样,甚至固定显示基础频率;cpupower frequency-info --freq 虽比 lscpu 准,但仍是策略级平均值,不如直接读 sysfs 实时。
实操建议:
- 用
watch -n 0.5 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq'对比两值跳变 - 若
scaling_cur_freq恒等于cpuinfo_max_freq,大概率 governor 是performance且无温控压制 - 某核输出为空?先检查该核是否 online:
cat /sys/devices/system/cpu/online,或被isolcpus隔离
turbostat 是唯一能区分“基础频”和“睿频倍频”的工具
turbostat 不读 sysfs,而是直接访问 Intel CPU 的 MSR 寄存器,能给出每个核心的 Bzy_MHz(忙时频率)、Turbo 标志、Core MHz 等底层指标。当 Core MHz 显著高于 Base_MHz(查 lscpu 可得),且 Turbo 列显示数字而非 -,说明睿频正在生效。
注意:它只对 Intel 物理 CPU 有效,AMD 或虚拟机里基本不可用;运行前必须 sudo modprobe msr,否则报 No such file or directory。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
实操建议:
- 安装后运行:
sudo turbostat --interval 1,重点关注Bzy_MHz和Core MHz两列 - 若
Core MHz长期卡在cpuinfo_max_freq / 1000附近,但Turbo为-,检查 BIOS 是否关闭了 Turbo Boost - 输出中
Pkg_W(整包功耗)突然下降、GHz列回落,大概率是 thermal throttling 触发,不是睿频失效
cpupower frequency-info --freq 需要 sudo,且不自动刷新
这个命令才是看「此刻」频率的正确入口,它底层就是读取所有 scaling_cur_freq 文件并取平均,比 lscpu 或 cat /proc/cpuinfo 都更贴近真实。但它默认只输出一次,不轮询;而且必须加 sudo,否则报 Permission denied。
常见问题:
- 提示
No such file or directory:说明内核没加载频率驱动,查dmesg | grep -i "cpu.*freq",尝试sudo modprobe intel_cpufreq - 输出里
current frequency: X.XX GHz (asserted by call to hardware)——括号带asserted才可信,否则可能是策略估算值 - 在 KVM/QEMU 虚拟机里运行,大概率返回固定值或报错,此时应监控宿主机,而非 guest
别信 performance 模式就等于满频
设成 performance 调频策略(sudo cpupower frequency-set -g performance)只是把频率下限拉到 cpuinfo_max_freq,允许调度器在负载来时立刻升频,但它不保证 CPU 一直跑在最高频——温度、功耗墙(RAPL)、同时激活核心数都会实时压制。
真正容易被忽略的点:
-
intel_pstate启用时(较新 Intel 平台默认),cpupower工具链部分功能会失效,scaling_cur_freq可能被绕过 -
/sys/devices/system/cpu/intel_pstate/max_perf_pct若小于 100,会硬性限制睿频上限,哪怕 BIOS 开了 Turbo 也没用 - 短突发负载(如单次 syscall)在
ondemand下可能来不及升频,但在performance下能立刻响应——这不是“满频”,而是“无延迟升频”

















