Ubuntu Server修改默认CPU调频调控器(governor)无效问题求助
Ubuntu Server修改默认CPU调频调控器(governor)无效问题求助
嘿,我懂你想用旧笔记本搭Ubuntu Server存文件、还想尽可能省电的需求——毕竟老机子续航本来就有限,能省一点是一点~你的问题其实挺常见的:临时修改CPU调频调控器后,很快又被系统自动改回schedutil,这大概率是因为有系统服务在后台自动维护CPU的调频策略,咱们一步步来解决:
先搞明白是谁在重置调控器
首先得确认是哪个服务在“偷偷改回去”,常见的嫌疑对象有两个:
cpufrequtils:专门管理CPU调频的服务thermald:负责温控的服务,有时候也会干预调频策略
你可以分别查它们的运行状态:
# 检查cpufrequtils状态 systemctl status cpufrequtils # 检查thermald状态 systemctl status thermald
针对性解决(分两种情况)
情况1:是cpufrequtils在搞鬼
这个服务会读取配置文件里的设置,自动应用CPU调频策略,咱们修改它的配置就行:
- 编辑配置文件:
sudo nano /etc/default/cpufrequtils - 找到
GOVERNOR="schedutil"这一行,把它改成:GOVERNOR="powersave" - 保存退出后,重启服务让设置生效:
sudo systemctl restart cpufrequtils - 别忘了设置开机自启,避免重启后失效:
sudo systemctl enable cpufrequtils
情况2:是thermald在干预
Thermald主要是为了防止CPU过热,它的默认策略可能会覆盖你的设置:
- 如果不需要温控(不推荐,除非你确定机子不会过热),可以直接禁用它:
sudo systemctl stop thermald && sudo systemctl disable thermald - 更稳妥的方式是修改它的配置文件,调整温控策略为powersave优先:
编辑/etc/thermald/thermal-conf.xml,找到对应的CPU温控节点,把调频策略改成powersave(不同机型配置可能略有差异,你可以找类似<Governor>...</Governor>的标签修改)。
先临时生效,再持久化
之前你用的临时修改命令其实有个小问题:双引号里的$x会被当前shell提前解析,导致命令没正确执行。正确的临时修改命令应该是:
sudo sh -c 'for x in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo powersave > "$x"; done'
执行完这个命令后,立刻检查一下:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
如果现在显示全是powersave,再配合上面的持久化配置,重启后就不会变回去啦。
额外小提示
有些旧笔记本的BIOS里也有节能相关的选项,比如“CPU Power Management”之类的,你可以进BIOS开启这些选项,能更好地配合系统的powersave模式。
备注:内容来源于stack exchange,提问作者Guerra
相关产品推荐
相关产品推荐

