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管理器成为一种非常有用的功率管理工具。
相关文章:
Linux:CPUPower管理器 --- cpufreq解析
一、cpufreq是什么? cpufreq是Linux内核下的一种功率管理框架,它负责改变CPU的频率,以降低功耗并延长电池寿命。该框架的主要机制是动态调整CPU频率,该频率受限于CPU的负载和功耗。cpufreq能够动态地将频率降低到最低值或最高值&a…...
【嵌入式开发问答】不是普通的嵌入式八股
1. 进程、线程、堆栈、溢出 【问:】 进程的堆栈的物理内存是什么时候分配的? 堆栈的大小限制是多大?这个限制可以调整吗? 当堆栈发生溢出后应用程序会发生什么? 【答:】...
面试题-springboot篇-SpringBoot的注解
SpringBootApplication是SpringBoot的最核心的注解。 SpringBootApplication注解在SpringBoot的主类上,标识是SpringBoot应用,用来开启SpringBoot的各项能力。由SpringBootConfiguration、EnableAutoConfiguration、ComponentScan三个注解组成。这三个注…...
BaiChuan2保姆级微调范例
前方干货预警:这可能是你能够找到的,最容易理解,最容易跑通的,适用于各种开源LLM模型的,同时支持多轮和单轮对话数据集的大模型高效微调范例。 我们构造了一个修改大模型自我认知的3轮对话的玩具数据集,使用…...
postgresql参数优化
一 相关参数介绍 1.1 内存参数-shared_buffers shared_buffers:共享缓存区的大小,相当于oracle数据库中的SGA. 一般推荐为内存的四分之一,不超过总内存的二分之一。 该值默认是128M。 1.2 cpu并行参数-max_parallel_workers max_parall…...
【极速发表】2-4区SCI (含CCF),平均录用周期仅2个月,最快11天见刊!
一、计算机科学类SCI (11.30截稿) 【期刊概况】IF:4.0-5.0, JCR2区,中科院3区; 【检索情况】SCI在检,正刊; 【国人占比】10.58%; 【自引率】7.50%; 【年发文量】100篇以下; 【预警情况】无…...
Git 提交规范
遇到的问题 在项目中采用 git 管理代码版本时,突然不能进行提交(git commit)。 报错信息如下: ERROR invalid commit message format. Proper commit message format is required for automated changelog generation. Git 规范…...
[Python进阶] 操纵鼠标:PyAutoGUI
6.4 操纵鼠标:PyAutoGUI 6.4.1 说明 PyAutoGUI是一个Python的GUI自动化工具,它可以让程序自动控制鼠标和键盘的一系列操作。它能够模拟鼠标的移动、点击、拖拽等操作,以及键盘的按键按下和释放等操作。PyAutoGUI还提供了其他功能࿰…...
JavaScript querySelector
querySelector方法的语法: var element document.getElementById("id"); element.querySelector(selector)element是要执行选择操作的父元素,selector是CSS选择器,用于指定要选择的元素。 querySelector方法返回匹配选择器的第一…...
Selenium自动化测试
一、Selenium自动化测试(基于python) 1、Selenium简介: 1.1 Selenium是一款主要用于Web应用程序自动化测试的工具集合。Selenium测试直接运行在浏览器中,本质是通过驱动浏览器,模拟浏览器的操作,比如跳转…...
Lua调用C#类
先创建一个Main脚本作为主入口,挂载到摄像机上 public class Main : MonoBehaviour {// Start is called before the first frame updatevoid Start(){LuaMgr.GetInstance().Init();LuaMgr.GetInstance().DoLuaFile("Main");}// Update is called once p…...
“react“: “^16.14.0“,打开弹窗数据发生变化
“react”: “^16.14.0”, 弹窗 打开弹窗数据发生变化 // 这里对比changeHistoryVisible是否发生改变调用后端方法改变数据componentDidUpdate(prevProps) {if (prevProps.changeHistoryVisible ! this.props.changeHistoryVisible && this.props.changeHistoryVisi…...
MySQL数据库varchar字段求和出现精度丢失
问题描述 在MySQL数据库中,将varchar字段用于数值运算时,会将其转换为数值类型进行计算。然而,由于varchar字段的可变长度特性,可能存在数值精度丢失的问题。 我用varchar类型存储学生的分数,分数有两位小数ÿ…...
C++入门 第二篇( 引用、内联函数、auto关键字、指针空值nullptr)
目录 6. 引用 6.1 引用概念 6.2 引用特性 6.3 常引用 正确用法:权限 缩小/平移 6.4 使用场景 1. 做参数 2. 做返回值 3.传值、传引用效率比较 6.5引用问题举例 6.6 反汇编中的& 6.7 引用和指针的不同点: 7.内联函数 7.1 内联函数与宏对…...
2023年煤气证模拟考试题库及煤气理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2023年煤气证模拟考试题库及煤气理论考试试题是由安全生产模拟考试一点通提供,煤气证模拟考试题库是根据煤气最新版教材,煤气大纲整理而成(含2023年煤气证模拟考试题库及煤气理论考…...
嵌入式面试经典30问
嵌入式面试经典30问 很多同学说很害怕面试,看见面试官会露怯,怕自己的知识体系不完整,怕面试官考的问题回答不上了,所以今天为大家准备了嵌入式工程师面试经常遇到的30个经典问题,希望可以帮助大家提前准备࿰…...
C++ 八股文: 构造函数
什么是构造函数 构造函数(Constructor)是一种特殊的成员函数,用于在创建对象时进行初始化。它的作用是确保对象在创建后处于一个合法和可用的状态。构造函数在类定义中声明,其名称与类名相同,但不带返回类型。 写一个…...
自动切割短视频的软件推荐,一键生成1000条短视频,支持六大主流平台矩阵分发,快来免费试用
经过小编的多方测评,今天给大家推荐一款性价比、好评率、专业性全都超高的软件——超级编导批量剪辑软件,更重要的是这款软件支持免费试用,一起来看看超级编导如何帮助大家自动分割视频的吧。 复制视频链接,一键上传视频素材后&am…...
从零开始学习秒杀项目
构思了很多种讲述这个简易版的秒杀项目的思路,比如按照功能分类,按照项目亮点串起来讲述,总觉得不适合基础薄弱的同学来学习,所以本项目按照从搭建开始,过程中需要什么来学习什么。 技术栈 SpringBootmybatisPlus&am…...
儿童珠宝首饰上亚马逊美国站合规标准是什么?如何办理?
儿童珠宝首饰 儿童珠宝首饰指原则上由 12 岁及以下儿童作为装饰品移除或穿戴的商品。本政策涵盖的儿童珠宝首饰,包括但不限于脚链、手链、耳环、项链、戒指、珠宝首饰制作或维修套装以及钟表。 亚马逊儿童珠宝首饰政策 亚马逊要求所有儿童珠宝首饰均经过检测并符合…...
MiniCPM-o-4.5-nvidia-FlagOS企业案例:HR简历图像扫描+关键信息结构化提取
MiniCPM-o-4.5-nvidia-FlagOS企业案例:HR简历图像扫描关键信息结构化提取 1. 引言:当HR遇上堆积如山的纸质简历 想象一下这个场景:公司招聘季,HR的办公桌上堆满了上百份纸质简历。每一份都需要手动录入系统——姓名、电话、邮箱…...
自动驾驶RL微调实战:如何用MotionLM提升模型可靠性(附Waymo数据集配置)
自动驾驶RL微调实战:如何用MotionLM提升模型可靠性(附Waymo数据集配置) 在自动驾驶技术快速迭代的今天,强化学习(RL)微调已成为提升模型可靠性的关键手段。不同于传统模仿学习(IL)的…...
PP-DocLayoutV3参数详解:text/title/table/figure等11类版面区域置信度解析
PP-DocLayoutV3参数详解:text/title/table/figure等11类版面区域置信度解析 1. 引言:为什么版面分析需要“置信度”? 想象一下,你拿到一份扫描的合同,想用OCR(文字识别)把它变成可编辑的电子版…...
Win11Debloat系统优化工具:全面提升Windows性能的技术指南
Win11Debloat系统优化工具:全面提升Windows性能的技术指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...
P1095 守望者的逃离【洛谷算法习题】
P1095 守望者的逃离 网页链接 P1095 守望者的逃离 题目背景 NOIP2007 普及组 T3 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。…...
【JDK21虚拟线程生产就绪 checklist】:8类典型场景配置模板(WebFlux/Quarkus/Vert.x/RSocket全覆盖)
第一章:JDK21虚拟线程核心机制与生产就绪定义虚拟线程(Virtual Threads)是 JDK 21 中正式引入的里程碑特性(JEP 444),其本质是轻量级、用户态调度的 Java 线程抽象,由 JVM 在平台线程࿰…...
windows版vasp-6.5.1非Cygwin版
推荐使用oneapi版本,这个版本性能要好一点。 1.解压压缩包。 Gromacs&Vasp软.件.交.流:962946828 2.用VASP安装器添加系统环境变量(选择bin目录所在目录的父级目录)。 3.测试命令(在cmd或者powershell执行&#…...
MongoDB高级面试:进阶面试题50题及答案详解
更多内容请见: 《深入掌握MongoDB数据库》 - 专栏介绍和目录 文章目录 一、高级查询优化与执行计划 (8题) 二、高级索引策略 (8题) 三、高级分片策略与优化 (8题) 四、性能调优与瓶颈分析 (7题) 五、高级复制集配置与故障处理 (6题) 六、高级事务与一致性模型 (5题) 七、安全高…...
媒体查询、事件绑定、对象拷贝等知识点总结
一、媒体查询(CSS3 响应式设计)1. 基本语法cssmedia 媒体类型 and (媒体特性) {/* CSS 规则 */ }2. 常用媒体类型值说明screen电脑屏幕、平板、手机等print打印机all所有设备(默认)3. 常用媒体特性特性说明max-width最大宽度&…...
Beyond Compare 5终极激活指南:免费获取永久授权密钥的完整教程
Beyond Compare 5终极激活指南:免费获取永久授权密钥的完整教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5作为业界领先的文件对比工具,其强大的功…...
