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 岁及以下儿童作为装饰品移除或穿戴的商品。本政策涵盖的儿童珠宝首饰,包括但不限于脚链、手链、耳环、项链、戒指、珠宝首饰制作或维修套装以及钟表。 亚马逊儿童珠宝首饰政策 亚马逊要求所有儿童珠宝首饰均经过检测并符合…...

【Linux】进程的基本概念
目录 概念描述进程-PCB如何查看进程通过系统目录进行查看通过ps指令进行查看 通过系统调用获取进程的PID和PPID(进程标⽰符)通过系统调用创建子进程通过一段代码来介绍fork为什么要有子进程?fork为什么给子进程返回0,给父进程返回子进程的PIDfork函数到底…...

【websocket】安装与使用
websocket安装与使用 1. 介绍2. 安装3. websocketpp常用接口4. Websocketpp使用4.1 服务端4.2 客户端 1. 介绍 WebSocket 是从 HTML5 开始支持的一种网页端和服务端保持长连接的 消息推送机制。 传统的 web 程序都是属于 “一问一答” 的形式,即客户端给服务器发送…...
JavaWeb预习(jdbc)
基础 1.驱动程序接口Driver 每种数据库都提供了数据库驱动程序,并且都提供了一个实现java.sql.Driver接口的类,称为Driver 对于MySql,其Driver类为com.mysql.jdbc.Driver,加载该类的语句为: Class.forName("c…...
F(x,y)= 0 隐函数 微分法
🟦 一、隐函数微分法简介 ▶ 什么是隐函数? 显函数:形如 y f ( x ) y f(x) yf(x),变量之间是显式关系。 隐函数:形如 F ( x , y ) 0 F(x, y) 0 F(x,y)0,变量间不是直接表达的,需要通过…...

爬虫学习记录day1
什么是逆向? 数据加密 参数加密 表单加密扣js改写Python举例子 4.1 元素:被渲染的数据资源 动态数据 静态数据 如果数据是加密的情况则无法直接得到数据 4.2 控制台:输出界面 4.3 源代码页面 4.4 网络:抓包功能,获取浏…...

算法题(165):汉诺塔问题
审题: 本题需要我们找到最优的汉诺塔搬法然后将移动路径输出 思路: 方法一:递归 我们先分析题目 n为2的情况,我们先将第一个盘子移动到三号柱子上,然后再将二号盘子移动到二号柱子上 n为3的情况,我们先将前…...

玄机——某次行业攻防应急响应(带镜像)
今天给大家带来一次攻防实战演练复现的过程。 文章目录 简介靶机简介1.根据流量包分析首个进行扫描攻击的IP是2.根据流量包分析第二个扫描攻击的IP和漏扫工具,以flag{x.x.x.x&工具名}3.提交频繁爆破密钥的IP及爆破次数,以flag{ip&次数}提交4. 提…...
【术语扫盲】评估指标Precision、Recall、F1-score、Support是什么含义?
一、背景 Precision、Recall、F1-score、Support 是分类问题中最常用的评估指标,它们是机器学习、深度学习、数据挖掘中非常基础也非常重要的术语。 二、 详细解释 指标含义公式Precision(精准率)预测为某类的样本中,有多少是真…...

嵌入式学习--江协stm32day4
只能说拖延没有什么好结果,欠下的债总是要还的。 ADC 模拟信号转化为数字信号,例如温度传感器将外部温度的变化(模拟信号),转换为内部电压的变化(数字信号) IN是八路输入,下方是选择…...

【无人机】无人机UAV、穿越机FPV的概念介绍,机型与工具,证书与规定
【无人机】无人机UAV、穿越机FPV的概念介绍,机型与工具,证书与规定 文章目录 1、无人机的定义、概念、技术栈1.1 无人机的概念1.2 无人机技术(飞控,动力,通信) 2、无人机机型2.1 DJI无人机 (航拍…...