CPU调频对策

CPU调频策略
1. CPU调频策略

操作系统会根据当前CPU负载调整CPU的频率,以达到满足当前使用的前提下降低电量消耗。主要的调配模式有以下几种:




Ondemand:按需模式

按需调节CPU频率,不操作手机时控制在最低频率,滑屏或进入应用时会迅速提升至最高频率,当空闲时又会迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般水平。是一种电池和性能之间趋向平衡的默认模式,但是对于智能手机来说,ondemand在性能表现方面略有欠缺。




Interactive:交互模式

和ondemand模式相似,规则是“快升慢降”,注重响应速度、性能,当有高需求时迅速跳到高频率,当低需求时逐渐降低频率,相比ondemand费电,性能略好。




Conservative:保守模式

和ondemand模式相似,规则是“慢升快降”,注重省电,当有高需求时逐渐提高频率,当低需求时迅速跳至低频率。




Hotplug:热插拔模式:

和ondemand模式差不多,当有高需求时直接跳至最高频率,当需求减小时逐渐降低频率,但关屏时就单核低频运行,省电。




Performance:高性能模式

按照设定范围的最高频率运行,即使系统负载非常低,CPU也运行在最高频率。性能很好,功耗高。




Powersave:省电模式

按设定范围的最低频率运行,日常没有使用价值,除非配合setcpu情景模式,关屏睡眠时使用此模式,省电但系统响应速度慢。




Userspace:用户模式:

任何情况下都会控制CPU运行在配置的频率范围内,配置中的用户自己添加的省电设置,在此情景模式下,降低CPU最大运行频率可以延迟待机时间,但同时会降低机器的唤醒速度,不建议使用该选项。




2. CPU相关属性查看

CPU相关信息可以在/sys/devices/system/cpu/目录下的节点查看,例如最高频率、最低频率、当前频率、可用频率、支持的调频策略及当前调频策略等。

多核的情况下,目录下会有cpu0,cpu1,cpu2......,以cpu0为例介绍如何查看相关信息:

cd /sys/devices/system/cpu/cpu0/cpufreq

cat affected_cpus                                              改变配置影响的CPU list

cat cpuinfo_cur_freq                                         当前频率

cat cpuinfo_max_freq                                       最大频率

cat cpuinfo_min_freq                                        最小频率

cat scaling_available_frequencies                可用频点,CPU会在这些频点之间进行升降频

cat scaling_available_governors                   可用调频策略, 当前设置的调频策略需是其中之一

cat scaling_governor                                        当前调频策略




3. CPU调频策略调整

a.获取CPU支持的调频策略

cat scaling_available_governors    #如 interactive conservative ondemand powersave performance




b.设置策略

echo scaling_governor performance