最轻量方法是读/proc/cpuinfo的cpu MHz字段,但存在几十毫秒滞后且反映的是最近调度周期平均频率;更准确的方式是watch -n 1 'cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq',直接读硬件寄存器获取每核实时kHz值。

直接读 /proc/cpuinfo 的 cpu MHz 字段最轻量,但要注意它不是“此刻”值
每个逻辑核心的当前频率就藏在 /proc/cpuinfo 里,执行 grep "cpu MHz" /proc/cpuinfo 就能看到全部输出。数值单位是 MHz,比如 cpu MHz : 3400.000 表示该核当前运行在 3.4 GHz。
常见错误是只取第一行:grep "cpu MHz" /proc/cpuinfo | head -n 1。这会漏掉其他核心的真实状态——多核负载不均时,各核频率可能差 2 GHz 以上。
注意:cpu MHz 是内核缓存值,有轻微滞后(几十毫秒级),空载刚唤醒或刚结束高负载时可能还没刷新。它反映的是「最近一次调度周期」的平均频率,不是硬件寄存器的瞬时采样值。
- 用
awk '{print $4}' /proc/cpuinfo | grep -v '^$'提取全部数值,再人工比对最大/最小值 - 若某核无输出,先检查该核是否 online:
cat /sys/devices/system/cpu/online - 虚拟机或容器中该字段可能恒为 0 或缺失,此时需换用 sysfs 接口
用 watch -n 1 'cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq' 看每核真实 kHz 值
这是最可靠、无需额外安装的实时方案。每个 scaling_cur_freq 文件返回当前核心的实际频率,单位是 kHz(比如 2400000 = 2.4 GHz),直接读硬件寄存器,无缓存延迟。
路径中的 cpu* 会匹配所有在线逻辑核,自动适配物理核+超线程。只要你的系统启用了 cpufreq 驱动(intel_cpufreq 或 acpi-cpufreq),这个路径就有效。
- 先确认路径存在:
ls /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq - 若报
No such file or directory,说明驱动没加载,查dmesg | grep -i "cpu.*freq" - 数值长期不变?检查 governor:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor,performance才会锁频,powersave需负载触发升频 - 注意:某些嵌入式平台或旧内核(scaling_cur_freq,只有
cpuinfo_cur_freq(精度更低)
cpupower frequency-info --freq 返回单个“主核”频率,不能代表全部
这个命令绕过缓存,直接读硬件寄存器,结果比 /proc/cpuinfo 更准,尤其适合验证睿频是否真正生效。但它只返回一个数值,不是每核值——它读的是当前调度策略下被选作采样点的那个核心(通常是 cpu0 或最近活跃核)。
必须用 sudo,否则报 Permission denied;若提示 No such file or directory,说明 cpufreq 驱动未启用,或系统用的是 intel_pstate 模式但未正确配置。
- 输出格式类似:
current frequency: 4.20 GHz (asserted by call to hardware),括号里带asserted表示可信度最高 - 别用
watch -n 1 'cpupower frequency-info'—— 默认不显示当前频率,只刷 policy 概览,容易误判 - 在 Intel 平台,若启用
intel_pstate,cpupower可能无法准确读取,此时优先看/sys/devices/system/cpu/intel_pstate下的max_perf_pct和min_perf_pct
调试睿频瓶颈或长时间监控,用 turbostat --interval 1
turbostat 是唯一能同时抓取每核频率、C-state 深度、温度、封装功耗(pkg power)的工具,特别适合诊断“为什么睿频上不去”。它每秒采样一次,输出列明每个逻辑核的 Avg_MHz(实际运行频率)和 Bzy_MHz(忙时频率),比单纯看 scaling_cur_freq 多一层负载上下文。
需要 root 权限,且部分发行版默认不装:sudo apt install linux-tools-common(Ubuntu/Debian)或 sudo dnf install kernel-tools(RHEL/Fedora)。
- 若报
No permission to change system clock,加--ignore-unprivileged参数跳过权限校验 - 输出中
Avg_MHz接近scaling_max_freq且C10占比高,说明睿频已激活且核心充分休眠 - 若
Bzy_MHz远低于scaling_max_freq,但Pkg_W很高,大概率是热节流(Thermal throttling)或功耗墙(RAPL limit)在起作用
/proc/cpuinfo 快速扫一眼,watch + scaling_cur_freq 确认动态行为。只有当你发现频率“该升不升”“该降不降”,才需要搬出 turbostat 查底层限制。别一上来就装一堆工具,先看路径是否存在、权限够不够、驱动有没有加载——很多问题其实卡在第一步。


















