CPU相关节点路径 /sys/devices/system/cpu/cpu0/cpufreq
cpuinfo_cur_freq 当前cpu正在运行的工作频率
cpuinfo_max_freq 该文件指定了处理器能够运行的最高工作频率
cpuinfo_min_freq 该文件指定了处理器能够运行的最低工作频率
cpuinfo_transition_latency 该文件定义了处理器在两个不同频率之间切换时所需要的时间(单位:ns)
scaling_available_frequencies 所有支持的主频率列表
scaling_available_governors 该文件显示当前内核中支持的所有cpufreq governor类型
scaling_cur_freq CPU当前运行的主频率,governor和cpufreq核决定的
scaling_driver 该文件显示该CPU正在使用何种cpufreq driver
scaling_governor 通过echo命令,能够改变当前处理器的governor类型
scaling_max_freq 显示policy的上限.当改变cpu policy时,需要首先设scaling_max_freq
scaling_min_freq 显示policy的下限
scaling_setspeed governor为“userspace”,可设置cpu主频率值。值在scaling_min_freq和scaling_max_freq之间。
1、查看当前CPU支持的频率档位
#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1800000 1767000 1734000 1700000 1667000 1633000 1533000 1466000 1400000 1308000 1216000 1125000 1056000 987000 918000 850000
2、查看当前支持的governor
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
schedplus ondemand userspace powersave interactive performance
//1.performance 注重效率,将CPU频率固定工作在其支持的最高运行频率上,而不动态调节。
//2.powersave 注重节能,将CPU会固定工作在其支持的最低运行频率上,而不动态调节。
//3.Userspace 最早的cpufreq 子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给了用户,提供了相应的接口。长期以来都在用的模式,可以通过手动编辑配置文件进行配置。
//4.ondemand 定期检查负载,当CPU负荷超越了阈值,会立即达到最大频率运行。执行完毕立即回到最低频率;userspace是内核态的检测,用户态调整,效率低。而ondemand是完全在内核态下工作并且能够以更加细粒度的时间间隔对系统负载情况进行采样分析的governor。在ondemand governor监测到系统负载超过 up_threshold 所设定的百分比时,说明用户当前需要 CPU 提供更强大的处理能力,因此 ondemand governor 会将CPU设置在最高频率上运行。当 ondemand governor 监测到系统负载下降,可以降低 CPU 的运行频率时。ondemand governor 的最初实现是在可选的频率范围内调低至下一个可用频率,例如 CPU 支持三个可选频率,分别为 1.67GHz、 1.33GHz 和 1GHz ,如果 CPU 运行在 1.67GHz 时 ondemand governor 发现可以降低运行频率,那么 1.33GHz 将被选作降频的目标频率。
//5.interactive 动态调节,检测时间是20ms,延迟20ms,一次调整周期40ms。
//6.schedplus 动态调节,调频时间是1ms
//7.conservative 该模式与ondemand的最大区别在于,conservative模式不会立刻在负载增加的情况下将cpu频率调整到最大,他会调整到比目前频率稍微大的频段去工作,某些情况下,该模式的延迟会大于ondemand。
3、查看当前选择的governor
#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
schedplus
4、查看系统支持多少核数
# cat sys/devices/system/cpu/present
0-3
5、全开所有cpu
// 逐个echo 1 > cpu 0-3
#echo 1 > /sys/devices/system/cpu/cpu1/online
6、设置cpu频率
#echo 850000 > sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
参考文章:
听说schedutil很牛,顺畅省电兼得,把interactive调教成schedutil