在Linux中,内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的,它就是CPU Freq系统。如下为CPU的几种模式(governor参数):
- ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核默认的方式都是ondemand。
- interactive:交互模式,直接上最高频率,然后看CPU负荷慢慢降低,比较耗电。Interactive 是以 CPU 排程数量而调整频率,从而实现省电。InteractiveX 是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般。
- conservative:保守模式,类似于ondemand,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。
- smartass:聪明模式,是I和C模式的升级,该模式在比interactive 模式不差的响应的前提下会做到了更加省电。
- performance:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量。
- powersave 省电模式,通常以最低频率运行。
- userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置
- Hotplug:类似于ondemand, 但是cpu会在关屏下尝试关掉一个cpu,并且带有deep sleep,比较省电。
使用cpufrequtils或者linux-tools-common管理软件,
安装cpu频率管理软件
1
2
3
4
5# ubuntu
sudo apt install cpufrequtils
# 或
sudo apt install linux-tools-common查看cpu状态
1
2
3cpufreq-info
#或
cpupower -c all frequency-info调整cpu到性能模式
1
2
3cpufreq-set -g performance
# 或
cpupower -c all frequency-set -g performance以上方式,重启失效并回到默认方式。修改默认模式:
安装sysfsutils:
1
sudo apt install sysfsutils
查看当前的调节器:
1
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
编辑/etc/sysfs.conf ,增加如下语句:
1
sudo gedit /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- 其他問題
較新的linux版本對於Intel的處理器有優化,導致無法看到五種governors,只有powersave,和performance兩種,但實際效果並不好。這是由於使用intel_pstate驅動導致,可以通過在引導脚本增加intel_pstate=disable關閉。