linux内核支持调节CPU主频,降低功效,已达到节能的效果。对于移动设备和笔记本来说,在没有接通电源的时候,续航是很重要的。
通过选择系统空闲状态不同的电源管理策略,可以实现不同程序的降低服务器功效。但是,更低的功效策略意味着CPU唤醒更慢对性能影响更大。对于对时延和性能要求高的应用。
对于服务器,一般都是接着电源的,而且要求性比较高,因此,建议关闭CPU的动态调节功能,禁止CPU休眠,并把CPU频率固定到最高。
一般服务器BIOS中修改电源管理为Performance,如果发现CPU模式为conservative或者powersave,可以使用cpupower设置CPU Performance模式,效果也是相当显著的。
调节策略:
- performance:将CPU频率固定工作在其支持的最高运行频率上,不动态调节,可以获取到最大性能。
- powersave:将CPU频率设置为最低的所谓省电模式,CPU会固定工作在其支持的最低运行频率上。因此这两种governors都属于静态governors,即在使用它们时CPU的运行频率不会根据系统运行时负载的的变化动态作出调正。这两种governors对应的是两种极端的应用场景,使用performance governor是对系统高性能的最大最求,而使用powersave governor则是对系统低功耗最大最求。
- Userspace:最早的cpufreq子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给用户态应用,并提供了相应的接口供用户应用程序调节CPU运行频率使用。
- ondemand:按需快速动态调整CPU频率,一有CPU计算量的任务,就会立即达到最大频率玉兴,等执行完毕就立即回到最低频率;ondemand: userspace是内核态的检测,用户态调整,效率低。
- conservative:与ondemand不同,平滑地调整CPU频率,频率的升降是渐变式的,会自动在频率上下调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;
可用的策略:
在不同的系统上。并不是所有的策略都是可用了,可以通过 /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors查看
查看当前生效的策略:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance powersave
查看cpu频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1000207
cpupower
cpupower是一组为辅助CPU调频设计的用户空间工具。
- 查看当前cpu的信息
cpupower -c all frequecy-info
- 设置所有cpu为性能模式
cpupower frequency-set -g performance
3.设置所有CPU为节能模式
cpupower frequency-set - powersave