前言

在Linux中,有CPU频率动态调整模块,就是CPU Freq模块。以下为CPUI的几种工作模式:

  1. ondemand:按需调节模式,实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。

  2. interactive:交互模式,是以 CPU 负载而调整频率,从而实现省电。

  3. InteractiveX:交互模式,是以 CPU 负载来调整频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般

  4. conservative:保守模式,类似于ondemand,但调整相对较缓,省电效果很棒。

  5. smartass:聪明模式,是I和C模式的升级,该模式在比i模式不差的响应的前提下会做到了更加省电。

  6. performance:性能模式,只有最高频率,性能高,耗电量大。

  7. powersave 省电模式,通常以最低频率运行,性能低,耗电量小。

  8. userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。可以通过手动编辑配置文件进行配置

  9. Hotplug:类似于ondemand, 但是cpu会在关屏下尝试关掉一个cpu,并且带有deep sleep,比较省电。

一.查看当前CPU信息

cat /sys/devices/system/cpu/cpu0/cpufreq/

1.当前CPU0处于的工作频率(单位: KHz)

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

2.当前CPU0能够运行的最高工作频率(单位: KHz)

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

3.当前CPU0能够运行的最低工作频率(单位: KHz)

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 

4.当前CPU0处理器切换频率所需要的时间(单位:ns)

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency

5.当前CPU0所有支持的主频率列表(单位: KHz)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

6.当前CPU0所有支持的governor模式列表

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

7.当前CPU0正在运行的频率(单位: KHz)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

8.当前CPU0所使用的governor(调频)驱动

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver

9.当前CPU0正处于的governor(调频)模式

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

10.当前CPU0的governor(调频)可以调节的最高频率

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

11.当前CPU0的governor(调频)可以调节的最低频率

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

二.修改CPU0的频率

首先将CPU0调整到用户自定义模式

echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

设置CPU0的频率(该频率需要是主频率列表的频率)

echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed