cpupower frequency-info --freq才是看「此刻」频率的正确命令,它直接读取内核sysfs接口的实时值;lscpu和cpufreq-info显示的是标称或策略频率,非实时运行频率。

cpufreq-info 能看到当前策略,但不等于实际生效状态
cpufreq-info 是最直接的命令,它会列出每个 CPU 核心当前使用的调频驱动、可用策略和当前频率。运行后你会看到类似 current policy: frequency should be within 800 MHz and 4.20 GHz 和 governor: powersave 的行。
注意:这里的 governor 只表示策略名称,不代表该策略一定在起效——比如内核可能因 thermal throttling 或 BIOS 设置强制锁频,此时 scaling_cur_freq 和 scaling_max_freq 会严重偏离预期。
- 检查是否所有核心策略一致:
for i in /sys/devices/system/cpu/cpu[0-9]*; do echo "$i: $(cat $i/cpufreq/scaling_governor 2>/dev/null)"; done - 确认策略是否被覆盖:某些笔记本 BIOS 或 systemd 服务(如
thermald)会在后台改写/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor,需用sudo watch -n1 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'持续观察 - AMD Zen 3+ 系统可能默认启用
amd-pstate驱动,此时cpufreq-info显示的策略可能不完整,应优先查/sys/firmware/acpi/platform_profile和/sys/devices/system/cpu/cpu0/acpi_cppc/下的参数
/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 是真实控制点
Linux 内核通过 sysfs 暴露策略开关,/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 这个文件就是最终生效的策略名。读取它比 cpufreq-info 更可靠,因为它是内核实时维护的值。
写入新策略也必须走这个路径,例如切换到 performance:
sudo sh -c 'echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'
但要注意:
- 不是所有策略都对所有 CPU 可用,
ondemand在较新内核中已被废弃,schedutil是默认替代者 - 写入失败常见原因:驱动不支持(如
intel_pstate启用时部分策略被禁用)、权限不足、或当前策略被其他进程锁定(如thermald占用) - 修改单个 core 的策略不影响其他 core,需循环写入全部(
cpu[0-9]*),否则负载迁移后功耗行为不可控
Intel CPU 要看 intel_pstate 是否启用,它绕过 cpufreq 框架
现代 Intel CPU 默认启用 intel_pstate 驱动,它不走传统 cpufreq 策略路径,而是通过 /sys/devices/system/cpu/intel_pstate/ 控制。此时 cpufreq-info 显示的 governor 可能是假象。
验证方式:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
如果输出是 intel_pstate,则真正起作用的是:
-
/sys/devices/system/cpu/intel_pstate/status(active或passive) -
/sys/devices/system/cpu/intel_pstate/min_perf_pct和max_perf_pct(百分比形式的性能限制) -
/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost(是否启用硬件反馈加速)
例如设为“性能优先”模式:
echo 100 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
powertop 的 “Tunables” 页面暴露隐藏策略干预点
sudo powertop 启动后按 Tab 切到 “Tunables” 页面,这里列出的每一项都是内核或驱动实际执行的功耗策略开关,比如:
-
Bad: Runtime PM for PCI Device Intel Corporation Wi-Fi 6 AX201—— 表示该设备未启用运行时电源管理 -
Good: Enable SATA Link Power Management (ALPM)—— 当前已启用 ALPM -
Runtime PM for PCI Device Intel Corporation Comet Lake PCIe Controller—— 可手动 toggle 开关
这些不是 cpufreq 策略,但直接影响整机功耗。很多笔记本厂商固件会默认关闭部分 PM 功能,powertop --auto-tune 可批量启用,但需注意:某些设备(如雷电控制器)开启后可能导致唤醒异常。
真正的功耗策略从来不止于频率调节——C-state 深度、PCIe ASPM、SATA ALPM、USB autosuspend 共同构成策略全貌,只盯 scaling_governor 容易漏掉关键环节。











