当前位置: 首页 > news >正文

Linux:CPUPower管理器 --- cpufreq解析

一、cpufreq是什么?

        cpufreq是Linux内核下的一种功率管理框架,它负责改变CPU的频率,以降低功耗并延长电池寿命。该框架的主要机制是动态调整CPU频率,该频率受限于CPU的负载和功耗。cpufreq能够动态地将频率降低到最低值或最高值,以适应各种不同的功率需求。

        有时,系统的CPU频率不可调整。在这种情况下,使用cpufreq扩展程序可以使CPU频率成倍增加。

二、cpufreq的功能和性能

        cpufreq的主要功能是实现动态时钟调整,根据CPU的工作负载来调整CPU的频率,以达到节能的效果。它们通常可以通过调整电压和频率来实现这一目标。

        除了节能,调整CPU频率也有助于提高性能。例如,在高负载情况下,提高CPU频率可以大大提高系统性能。在低负载情况下,降低CPU频率可以减少功耗并提高电池寿命。

        通过实现不同的频率策略,cpufreq能够平衡性能和功耗需求。在高性能模式下,CPU频率将达到最高水平,而在省电模式下,CPU频率将降低到最低要求。这使得CPUPower管理器成为一种非常有用的功率管理工具。

三、cpufreq配置和用法

1. 常用命令

        在Linux下,cpufreq工具需要使用cpufrequtils软件包。安装后就可以使用一些常用的 cpufreq 命令进行调整和配置:

$ cpufreq-info       // 显示CPU当前的状态信息
$ cpufreq-set        // 设置CPU的频率
$ cpufreq-aperf     // 显示CPU实际频率
$ cpufreq-set -g    // 设置CPU当前的电源政策
$ cpufreq-set -c     // 设置CPU中特定核心的频率

2. 性能规划模式(Performance Scaling Mode)

        在性能规划模式下,CPU的频率增加到最大。这个模式是为了获取最快的系统响应而设计的。您可以使用以下命令将此模式应用于系统:

echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

        要确定您是否成功应用了“性能规划模式”,可以使用cpufreqinfo命令来查看当前频率和电源模式。

3. 节能规划模式(Powersave Scaling Mode)

        在节能规划模式下,CPU的频率降至最低。 这个模式是为了降低系统的总体功耗,进而实现节能而设计的。您可以使用以下命令将此模式应用于系统:

echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

        同样的,使用cpufreqinfo命令来确定是否成功应用“节能规划模式”。

4. 智能降频模式(On-demand Scaling Mode)

        在智能降频模式下,如果CPU负载较高,则CPU将工作在最高频率下,当负载下降后,则将工作在较低的频率下。这个模式是平衡性能和功率消耗之间的权衡,避免 CPU 消耗过多的能源。您可以使用以下命令将此模式应用于系统:

echo ondemand | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

        模式切换时需要时间,可能需要花费几秒钟或几分钟的时间。系统会自动转换为适当的模式,以便在任何时候都能够提供最佳的表现。

5. 权衡模式(Conservative Scaling Mode)

        权衡模式类似于“智能降频模式”,但比之智能,权衡模式更加保守。在负载增加时,CPU将工作在较高的频率下,但是频率不会达到最高频率的极限,以避免过多的能源消耗。这个模式是性能和节能模式之间的折中方案。您可以使用以下命令将此模式应用于系统:

echo conservative | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

        同样的,模式切换时需要时间,需要等待一定时间才能调整为适当的模式。

6. 定制自己的模式(Userspace Scaling Mode)

        如果您需要完全控制频率和电源管理,可以使用“userspace scaling mode”模式并创建自定义脚本来管理它。使用此模式需要更深入的知识和技能,但也为您提供了更大的灵活性。

创建如下脚本来管理频率:

#!/bin/bash
echo $1 > /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed

使用以下命令将创建的脚本加载到系统中:

echo userspace | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

之后您就可以使用脚本调整CPU的频率:

./set_frequency.sh 2500000

四、总结

        本文详细讲述了CPUPower管理器—cpufreq的功能和性能,并介绍了常见的cpufreq工具命令以及常用配置模式的使用。cpufreq框架可以根据CPU的负载自动调整CPU频率,以平衡性能和节能之间的关系,减少电力耗损并提高电池寿命。这使得cpufreq管理器成为一种非常有用的功率管理工具。

http://www.lryc.cn/news/197207.html

相关文章:

  • 【嵌入式开发问答】不是普通的嵌入式八股
  • 面试题-springboot篇-SpringBoot的注解
  • BaiChuan2保姆级微调范例
  • postgresql参数优化
  • 【极速发表】2-4区SCI (含CCF),平均录用周期仅2个月,最快11天见刊!
  • Git 提交规范
  • [Python进阶] 操纵鼠标:PyAutoGUI
  • JavaScript querySelector
  • Selenium自动化测试
  • Lua调用C#类
  • “react“: “^16.14.0“,打开弹窗数据发生变化
  • MySQL数据库varchar字段求和出现精度丢失
  • C++入门 第二篇( 引用、内联函数、auto关键字、指针空值nullptr)
  • 2023年煤气证模拟考试题库及煤气理论考试试题
  • 嵌入式面试经典30问
  • C++ 八股文: 构造函数
  • 自动切割短视频的软件推荐,一键生成1000条短视频,支持六大主流平台矩阵分发,快来免费试用
  • 从零开始学习秒杀项目
  • 儿童珠宝首饰上亚马逊美国站合规标准是什么?如何办理?
  • ORACLE 19C PDB FOR MYSQL 5.7 部署ogg
  • 前端 html 中的 meta 标签有哪些用处?
  • 罗技鼠标接收器丢失或损坏后用另一个接收器配对的方法
  • Python语法
  • 电脑经营商城小程序的作用是什么
  • 森海塞尔EW-DP SKP直插式发射机:真正的无失真录制
  • 通过小程序实现会议Oa的会议展示以及个人中心
  • STM32驱动GY-39监测环境温度,湿度,大气压强,光强度
  • 在华为和比亚迪干了5年测试,月薪25K,熬夜总结出来的划水经验.....
  • Mac 使用 scp 上传或下载文件/文件夹
  • Restful 风格