[转帖]Linux:CPU频率调节模式以及降频方法简介

linux,cpu,频率,调节,模式,以及,降频,方法,简介 · 浏览次数 : 0

小编点评

**CPUFreq核心功能概述** CPUFreq是动态调整CPU频率的模块,通过调整电压和频率来兼顾系统的性能和功耗。 **主要功能:** - 降低电压和频率以降低功耗。 - 提高电压和频率以提高性能。 - 设定CPU工作频率的最小和最大值。 - 支持多种CPU工作模式。 - 通过用户配置来动态调整频率。 **核心文件:** * **cpuinfo_cur_freq:**当前工作频率。 * **cpuinfo_max_freq:**最高工作频率。 * **cpuinfo_min_freq:**最低工作频率。 * **cpuinfo_transition_latency:**频率切换的延迟时间。 * **scaling_available_frequencies:**支持的主频率列表。 * **scaling_available_governors:**支持的cpufreq governor类型。 * **scaling_cur_freq:**当前CPU工作频率(内核决定)。 * **scaling_driver:**正在使用的CPUFreq驱动程序。 * **scaling_max_freq:**当前最高支持频率。 * **scaling_min_freq:**当前最低支持频率。 **工作模式:** * **performance:**只注重效率,将CPU频率固定在最高运行频率上。 * **powersave:**将CPU频率设置为最低的“省电”模式,固定在最低运行频率上。 * **userspace:**用户态提供灵活性,通过userspace governor动态调整频率。 * **ondemand:**按需快速动态调整CPU频率。 * **conservative:**平滑地调整CPU频率,频率的升降是渐变式的。

正文

概述

        cpufreq的核心功能,是通过调整CPU的电压和频率,来兼顾系统的性能和功耗。在不需要高性能时,降低电压和频率,以降低功耗;在需要高性能时,提高电压和频率,以提高性能。

 cpufreq 是一个动态调整cpu频率的模块,系统启动时会生成一个文件夹

/sys/devices/system/cpu/cpu0/cpufreq/,包含如下文件:

其中:

cpuinfo_cur_freq: 当前cpu正在运行的工作频率
cpuinfo_max_freq:该文件指定了处理器能够运行的最高工作频率 (单位: 千赫兹)
cpuinfo_min_freq :该文件指定了处理器能够运行的最低工作频率 (单位: 千赫兹)
cpuinfo_transition_latency:该文件定义了处理器在两个不同频率之间切换时所需要的时间  (单位: 纳秒)
scaling_available_frequencies:所有支持的主频率列表  (单位: 千赫兹)
scaling_available_governors:该文件显示当前内核中支持的所有cpufreq governor类型
scaling_cur_freq:被governor和cpufreq核决定的当前CPU工作频率。该频率是内核认为该CPU当前运行的主频率
scaling_driver:该文件显示该CPU正在使用何种cpufreq driver
scaling_governor:通过echo命令,能够改变当前处理器的governor类型
scaling_max_freq:显示当前policy的上下限  (单位: 千赫兹)需要注意的是,当改变cpu policy时,需要首先设置scaling_max_freq, 然后才是scaling_min_freq

scaling_setspeed:如果用户选择了“userspace” governor, 那么可以设置cpu工作主频率到某一个指定值。只需要这个值在scaling_min_freq 和 scaling_max_freq之间即可。

CPU工作模式

1. performance

只注重效率,将CPU频率固定工作在其支持的最高运行频率上,而不动态调节。

2. powersave

将CPU频率设置为最低的所谓“省电”模式,CPU会固定工作在其支持的最低运行频率上。因此这两种governors 都属于静态governor,即在使用它们时CPU 的运行频率不会根据系统运行时负载的变化动态作出调整。这两种governors 对应的是两种极端的应用场景,使用performance governor 是对系统高性能的最大追求,而使用powersave governor 则是对系统低功耗的最大追求。

3. Userspace

最早的cpufreq 子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置

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的区别 在于它会按需分配频率,而不是一味追求最高频率。

 查看当前系统cpu的工作模式

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

更改工作模式

echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

 

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux31201 人正在系统学习中

与[转帖]Linux:CPU频率调节模式以及降频方法简介相似的内容:

[转帖]Linux:CPU频率调节模式以及降频方法简介

概述 cpufreq的核心功能,是通过调整CPU的电压和频率,来兼顾系统的性能和功耗。在不需要高性能时,降低电压和频率,以降低功耗;在需要高性能时,提高电压和频率,以提高性能。 cpufreq 是一个动态调整cpu频率的模块,系统启动时会生成一个文件夹 /sys/devices/system/cpu

【转帖】linux 调优篇 :硬件调优(BIOS配置)* 壹

一. 设置内存刷新频率为Auto二. 开启NUMA三. 设置Stream Write Mode四. 开启CPU预取配置五. 开启SRIOV六. 开启SMMU 通过在BIOS中设置一些高级选项,可以有效提升虚拟化平台性能。表1列出了TaiShan服务器和性能相关的BIOS推荐配置项。 表1 BIOS性

[转帖]linux 调优篇 :硬件调优(BIOS配置)* 壹

https://blog.csdn.net/tony_vip?type=blog 一. 设置内存刷新频率为Auto二. 开启NUMA三. 设置Stream Write Mode四. 开启CPU预取配置五. 开启SRIOV六. 开启SMMU 通过在BIOS中设置一些高级选项,可以有效提升虚拟化平台性能

[转帖]Linux CPU频率控制

1. 概述 Linux 内部共有五种对频率的管理策略 userspace , conservative , ondemand , powersave 和 performance。 l performance : CPU 会固定工作在其支持的最高运行频率上; l powersave : CPU 会固定

[转帖]谁动了我的 CPU 频率 —— CPU 性能之迷 Part 2

https://www.modb.pro/db/555819 目录: 为何有本文 什么是动态 CPU 频率 什么是 p-state Linux CPU 性能伸缩(CPU performance scaling) 非 Intel CPU 的 boost 的 sysfs 文件接口 performance

[转帖]推荐一款Linux下监控CPU温度、频率、功耗的工具:s-tui

https://aijishu.com/a/1060000000216862 这两天我手头正好有一台配置较高的工作站,2颗Xeon Gold 6258R 28核CPU、1TB(1024GB)内存,跑了下功耗压测。 在Windows下我习惯用AIDA64、Hwinfo这些监控软件。Linux下能看CP

[转帖]s-tui:在 Linux 中监控 CPU 温度、频率、功率和使用率的终端工具

https://linux.cn/article-10467-1.html | 2019-01-22 23:44 一般每个 Linux 管理员都会使用 lm_sensors 监控 CPU 温度。lm_sensors (Linux 监控传感器)是一个自由开源程序,它提供了监控温度、电压和风扇的驱动和工

[转帖]Linux—CPU核数、上下文切换介绍及pidstat等命令详解

https://www.jianshu.com/p/0ae0c1153c34 关注:CodingTechWork,一起学习进步。 引言 并发编程 并发编程的目的是为了改善串行程序执行慢问题,但是,并不是启动更多线程就能够让程序执行更快。因为在并发时,容易受到软硬件资源等限制,从而导致上下文切换慢,频

[转帖]linux sysbench (一): CPU性能测试详解

http://t.zoukankan.com/fzxiaomange-p-sysbench-cpu.html 网上sysbench教材众多,但没有一篇中文教材对cpu测试参数和结果进行详解。本文旨在能够让读者对sysbench的cpu有一定了解。 小慢哥的原创文章,欢迎转载 1.sysbench基础

[转帖]linux 查看CPU 内存的信息

https://bbs.huaweicloud.com/blogs/302929 【摘要】 ECS信息规格:2vCPUs | 4GiB | kc1.large.2镜像:openEuler 20.03 64bit with ARM | 公共镜像 linux 查看CPU 内存 硬盘的信息 查看CPU的信