结论与要点
不同内核与接口的差异
| 接口 | 含义 | 准确性与注意 |
|---|---|---|
| /proc/cpuinfo 的 cpu MHz | 早期为“设定/策略频率”,自 4.15 起多用 APERF/MPERF 计算“实际平均频率”;但在 ≥5.11 的一些系统上,访问空闲 CPU 可能直接返回 min_freq/基频 | 通常接近实际,但在空闲或采样受限时可能偏低或为固定值 |
| /sys/devices/system/cpu/cpuX/cpufreq/scaling_cur_freq | 当前“策略/设定”频率(单位 kHz),由 governor 决策 | 反映策略层面的目标频率,通常与瞬时实际频率接近,但存在调度与硬件响应延迟 |
| /sys/devices/system/cpu/cpuX/cpufreq/cpuinfo_cur_freq | 驱动读取的“当前运行频率”(单位 kHz) | 一般更接近硬件瞬时频率,但不同驱动实现可能略有差异 |
如何获取更准确的频率
sudo turbostat(观察各核 “Bzy MHz”/“Avg MHz”)。sudo cpupower frequency-info;必要时将 governor 设为 performance 以减少频率波动:echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor。cat /sys/devices/system/cpu/cpu0/cpufreq/{cpuinfo_cur_freq,scaling_cur_freq}。常见误区与排查