在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管理软件,

  1. 安装cpu频率管理软件

    1
    2
    3
    4
    5
    # ubuntu
    sudo apt install cpufrequtils
    # 或
    sudo apt install linux-tools-common

  2. 查看cpu状态

    1
    2
    3
    cpufreq-info
    #或
    cpupower -c all frequency-info
  3. 调整cpu到性能模式

    1
    2
    3
    cpufreq-set -g performance
    # 或
    cpupower -c all frequency-set -g performance
  4. 以上方式,重启失效并回到默认方式。修改默认模式:

  • 安装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
  1. 其他問題
    較新的linux版本對於Intel的處理器有優化,導致無法看到五種governors,只有powersave,和performance兩種,但實際效果並不好。這是由於使用intel_pstate驅動導致,可以通過在引導脚本增加intel_pstate=disable關閉。