Ubuntu 24.04.1下Interactive CPU governor可用性、性能影响及部署方法咨询
嘿,针对你在Ubuntu 24.04.1桌面版使用Interactive CPU governor的几个问题,我来逐一给你解答:
1. 能否在Ubuntu 24.04.1上使用Interactive governor?
可以用,但默认的Ubuntu 24.04.1桌面内核通常没有预编译这个governor——它最初是为移动设备(比如手机、平板)设计的,桌面版内核默认更偏向schedutil、powersave、performance这类适配桌面场景的调控策略。不过你可以通过自定义编译内核或者第三方适配的内核包来获取它。
2. 会感知到交互性能的差异吗?
这得分场景来看:
- 如果你用的是台式机,日常操作比如打开软件、多任务切换,默认的
schedutil已经优化得相当不错了,Interactive带来的感知差异非常小,甚至可能因为它频繁调整CPU频率,你几乎察觉不到区别,反而可能带来微小的功耗波动。 - 如果你用的是低功耗轻薄本(比如U系列CPU),在一些突发的轻负载任务(比如快速打开浏览器标签、小文件编辑)上,可能会觉得响应速度略有提升——毕竟Interactive的设计逻辑是快速响应负载变化,让CPU频率迅速跟上需求,但这种提升也不会特别明显,属于“锦上添花”而非“质的飞跃”。
3. 获取、编译、安装、激活及开机自启的完整步骤
第一步:准备编译环境与内核源码
先安装编译内核需要的依赖工具:
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev git
然后获取当前Ubuntu 24.04.1的内核源码,你可以用以下命令获取适配当前系统的源码包:
apt source linux-image-unsigned-$(uname -r)
或者克隆Ubuntu官方的内核仓库:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-noble.git
第二步:配置内核以启用Interactive governor
进入下载好的内核源码目录,先复制当前系统的内核配置作为基础:
cp /boot/config-$(uname -r) .config
然后启动图形化配置界面:
make menuconfig
在界面中依次找到:CPU Power Management -> CPU Frequency Scaling -> CPU Frequency Governors
找到Interactive governor选项,将其设置为[*](编译进内核)或者[M](编译为可加载模块),然后保存配置并退出界面。
第三步:编译并安装内核
用多线程加速编译($(nproc)会自动调用你CPU的所有核心):
make -j$(nproc)
编译完成后,安装内核模块:
sudo make modules_install
最后安装新内核:
sudo make install
第四步:激活Interactive governor
重启系统后,在GRUB菜单中选择你刚编译的新内核。进入系统后,临时激活Interactive governor可以用:
echo interactive | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
验证是否生效:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
如果输出是interactive,就说明激活成功了。
第五步:设置开机自动激活
我们可以创建一个systemd服务来实现开机自动启用:
- 新建服务文件:
sudo nano /etc/systemd/system/cpufreq-interactive.service
- 粘贴以下内容到文件中:
[Unit] Description=Set Interactive CPU Governor After=multi-user.target [Service] Type=oneshot ExecStart=/bin/bash -c 'echo interactive | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor' RemainAfterExit=yes [Install] WantedBy=multi-user.target
- 保存并退出编辑器(按
Ctrl+O,回车,再按Ctrl+X)。 - 重新加载systemd配置并启用服务:
sudo systemctl daemon-reload sudo systemctl enable --now cpufreq-interactive.service
备注:内容来源于stack exchange,提问作者dakra137




