cpupower命令

Linux 内部共有五种对频率的管理策略 userspace , conservative , ondemand , powersave(省电模式) 和 performance(性能模式)。

  1. performance: 顾名思义只注重效率,将CPU频率固定工作在其支持的最高运行频率上,而不动态调节。
  2. Userspace:最早的cpufreq子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置
  3. powersave: 将CPU频率设置为最低的所谓"省电"模式,CPU会固定工作在其支持的最低运行频率上。因此这两种governors 都属于静态governor,即在使用它们时CPU 的运行频率不会根据系统运行时负载的变化动态作出调整。这两种governors 对应的是两种极端的应用场景,使用performance governor 是对系统高性能的最大追求,而使用powersave governor 则是对系统低功耗的最大追求。
  4. ondemand: 按需快速动态调整CPU频率, 一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;ondemand: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. conservative: 与ondemand不同,平滑地调整CPU频率,频率的升降是渐变式的,会自动在频率上下限调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;

cpupower 是一组为辅助 CPU 调频而设计的用户空间工具。linux内核支持调节CPU主频,降低功耗,已到达节能的效果。对于移动设备和笔记本来说,在没有接通电源的时候,续航是很重要的。

通过选择系统空闲状态不同的电源管理策略,可以实现不同程度降低服务器功耗。但是,更低的功耗策略意味着 CPU 唤醒更慢对性能影响更大。对于对时延和性能要求高的应用。

对于服务器,一般都是接着电源的,而且要求性能比较高,因此,建议关闭 CPU 的动态调节功能,禁止 CPU 休眠,并把 CPU 频率固定到最高。

一般在服务器 BIOS 中修改电源管理为 Performance,如果发现 CPU 模式为 conservative 或者 powersave,可以使用 cpupower 设置 CPU Performance 模式,效果也是相当显著的。

语法格式:cpupower [参数]

Usage: cpupower [-d|--debug] [-c|--cpu cpulist ] <command> [<args>]

Supported commands are:

frequency-info

frequency-set

idle-info

idle-set

set

info

monitor

help

Not all commands can make use of the -c cpulist option.

Use 'cpupower help <command>' for getting help for above commands.

查看当前生效的策略:

复制代码
[[email protected] ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave   #省电模式

[root@idc1-node2 ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance   #高性能模式

查看当前CPU频率:

复制代码
[[email protected] ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
900022

查看当前所有CPU的信息:

复制代码
[[email protected] ~]# cpupower -c all frequency-info

设置所有CPU为性能模式:

复制代码
[[email protected] ~]# cpupower -c all frequency-set -g performance

设置所有CPU为节能模式:

复制代码
[[email protected] ~]# cpupower -c all frequency-set -g powersave

查看频率信息:

复制代码
[[email protected] ~]# cpupower frequency-info

cpupower设置performance:

复制代码
[[email protected] ~]# cpupower frequency-set -g performance

cpu耗时明显下降

相关推荐
GalaxyPokemon23 分钟前
LeetCode - 148. 排序链表
linux·算法·leetcode
Guheyunyi33 分钟前
监测预警系统重塑隧道安全新范式
大数据·运维·人工智能·科技·安全
懒羊羊大王呀40 分钟前
Ubuntu20.04中 Redis 的安装和配置
linux·redis
鳄鱼杆43 分钟前
服务器 | Centos 9 系统中,如何部署SpringBoot后端项目?
服务器·spring boot·centos
杰哥技术分享1 小时前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
知更鸟呆呆1 小时前
【Linux操作系统】基础开发工具(yum、vim、gcc/g++)
linux·运维·vim
xiangyong581 小时前
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
linux·ubuntu·gnu
Gold Steps.2 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
weixin_461259412 小时前
[C]C语言日志系统宏技巧解析
java·服务器·c语言
m0_637146932 小时前
C语言基础面试问答
运维·服务器