Ubuntu 17.10为何不动态调整CPU频率?新笔记本安装后的疑问
嘿,这个问题我之前帮不少人排查过,先给你明确说:Ubuntu 17.10安装后并不是默认就把CPU锁死在2000MHz的,大概率是你对lscpu的输出有误解,或者CPU频率调速器被设置成了固定模式。咱们一步步来解决:
首先,lscpu显示的CPU MHz有时候只是CPU的基准频率,或者单次采样的瞬时值,没法直观反映动态变化。你可以用下面的命令实时监控频率:
- 实时刷新所有核心的当前频率:
watch -n 0.5 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
这个命令每0.5秒更新一次,你可以打开浏览器刷个视频,或者装个stress工具跑个负载测试(sudo apt install stress && stress -c 4),看看频率会不会跟着负载变化。
另外,先检查当前CPU用的是什么调速模式:cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
如果输出全是performance,那CPU会维持在最高频率(如果你的CPU基准就是2000MHz,那看起来就是恒定值);如果是powersave,可能会锁在最低频率。而试用模式下默认是ondemand这类动态调速模式,会根据负载自动升降频。
如果确认调速器是固定模式,咱们把它改成动态的:
先安装
cpufrequtils工具(Ubuntu 17.10默认可能没预装):sudo apt update && sudo apt install cpufrequtils查看你的CPU支持哪些调速模式:
cpufreq-info
你应该能看到ondemand、conservative这些动态模式选项(前者响应更快,后者更平缓)。设置默认调速器为
ondemand(最常用的动态模式):echo "GOVERNOR=\"ondemand\"" | sudo tee /etc/default/cpufrequtils重启服务让设置生效:
sudo systemctl restart cpufrequtils再次验证调速器状态:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
现在应该全显示ondemand了,再用之前的watch命令监控频率,跑个负载测试就能看到频率动态变化了。
如果上面操作后还是没效果,那大概率是BIOS里的CPU节能选项被禁用了:
- 重启电脑进入BIOS界面(不同品牌按键不同,一般是F2、Del或Esc)
- 找到类似
Intel SpeedStep Technology(Intel CPU)或者AMD Cool'n'Quiet(AMD CPU)的选项,确保它处于Enabled状态 - 保存BIOS设置后重启,再重复上面的步骤检查。
Ubuntu Live试用系统默认启用了所有节能和动态调速选项,而安装版可能因为硬件驱动或默认配置的差异,自动设置了固定调速模式——尤其是一些新笔记本,需要手动调整才能激活动态变频功能。
内容的提问来源于stack exchange,提问作者Antonio Perez

