前言
在Linux中,有CPU频率动态调整模块,就是CPU Freq模块。以下为CPUI的几种工作模式:
-
ondemand:按需调节模式,实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。
-
interactive:交互模式,是以 CPU 负载而调整频率,从而实现省电。
-
InteractiveX:交互模式,是以 CPU 负载来调整频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般
-
conservative:保守模式,类似于ondemand,但调整相对较缓,省电效果很棒。
-
smartass:聪明模式,是I和C模式的升级,该模式在比i模式不差的响应的前提下会做到了更加省电。
-
performance:性能模式,只有最高频率,性能高,耗电量大。
-
powersave 省电模式,通常以最低频率运行,性能低,耗电量小。
-
userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。可以通过手动编辑配置文件进行配置
-
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