Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.2. CPUfreq

在系统上减少功耗和 heat 输出的最有效方法是 CPUfreq。CPUfreq - 也称为 CPU 速度扩展 - 是 Linux 内核中的基础架构,允许扩展 CPU 频率以省电。可以根据系统负载、响应 ACPI 事件或用户空间程序手动进行 CPU 调用,并允许即时调整处理器的时钟速度。这可让系统以较低的时钟速度运行来省电。CPUfreq 调控器定义切换频率(无论是快速还是较慢的时钟速度)的规则。

3.2.1. CPUfreq 驱动程序

可以使用两个用于 CPUfreq 的驱动程序: ACPI CPUfreq 驱动程序和 Intel P-state 驱动程序。

ACPI CPUfreq

ACPI CPUfreq 驱动程序是一个内核驱动程序,它通过 ACPI 控制特定 CPU 的频率,这样可确保内核和硬件之间的通信。

Intel P-state

在 Red Hat Enterprise Linux 7 中,支持 Intel P-state 驱动程序。驱动程序提供了一个界面,用于根据 Intel Xeon E 系列架构或更新的架构控制处理器上的 P-state 选择。Intel P-state 实现 setpolicy ()回调。驱动程序根据 cpufreq 内核请求的策略决定使用的 P-state。如果处理器可以在内部选择其下一个 P-state,则驱动程序会将这一责任卸载到处理器。如果没有,则驱动程序实施算法来选择下一个 P-state。
Intel P-state 提供自己的 sysfs 文件来控制 P-state 选择。这些文件位于 /sys/devices/system/cpu/intel_pstate/ 目录中。对文件所做的任何更改都适用于所有 CPU。此目录包含用于设置 P-state 参数的五个文件:
  • max_perf_pct: 限制驱动程序请求的最大 P-state,以可用性能百分比表示。可以通过 no_turbo 设置减少可用的 P-state 性能(请参阅以下)。
  • min_perf_pct: min_perf_pct :限制驱动程序请求的最小 P-state,以最大(no-turbo)性能级别表示的百分比。
  • no_turbo: 将驱动程序限制为在 turbo frequency 频率范围下选择 P-state。
  • turbo_pct :显示 turbo 范围内的硬件支持的总性能百分比。这个号码与 turbo 是否已被禁用无关。
  • num_pstates :显示硬件支持的 P-states 数。这个号码与 turbo 是否已被禁用无关。
目前,在支持的 CPU 中默认使用 Intel P-state。通过在内核命令行中添加以下内容,用户可以使用 ACPI CPUfreq :
intel_pstate=disable

3.2.2. CPUfreq Governors

CPUfreq governor 定义系统 CPU 的电源特征,后者又会影响 CPU 性能。每个 governor 在工作负载方面都有自己的独特行为、目的和适用性。本节论述了如何选择和配置 CPUfreq governor、每个调控器的特性以及每个调控器适合哪些工作负载。
警告
Red Hat Enterprise Linux 7 包含多个 core CPUfreq governor。默认情况下,Intel P-state 驱动程序在活动模式下运行,其中只有两个 CPUfreq governors 可用: performancepowersave。请注意,与相同名称的核心 CPUfreq governor 相比,performancepowersave Intel P-state CPUfreq governor 的功能是不同的。

3.2.2.1. Core CPUfreq Governors

Red Hat Enterprise Linux 7 中提供了不同类型的 CPUfreq governor:

cpufreq_performance

Performance governor 强制 CPU 使用最高可能时钟频率。这个频率会被静态设置,且不会更改。因此,这个特定监管器 不提供节能功能。它只适用于数小时的工作负载,甚至仅在 CPU 中很少(或永不)闲置期间。

cpufreq_powersave

相反,Powersave governor 会强制 CPU 使用最低可能的时钟频率。

这对于可能会有过度负载问题的系统和环境中最有用。

cpufreq_ondemand

cpufreq_userspace

cpufreq_conservative

备注
这可让您在一天的指定时间自动设置特定的 governor。

3.2.2.2. 

  • 被动模式
带有硬件管理的 P-states 的活跃模式
当使用 HWP 的活跃模式时,Intel P-state 驱动程序指示 CPU 执行 P-state 选择。驱动程序可以提供频率提示。但是最终选择取决于 CPU 内部逻辑。
在带有 HWP 的活跃模式中,Intel P-state 驱动程序提供了两个 P-state 选择算法:
  • 性能
允许的 P-states 范围限制为驱动程序允许使用的范围的上限。
没有硬件管理的 P-states 活跃的模式
在使用没有 HWP 的活跃模式中,Intel P-state 驱动程序提供了两个 P-state 选择算法:
  • 性能
被动模式
所有可用的通用 CPUFreq 内核控制器都可使用。

3.2.3. 

~]# cpupower frequency-info --governors
~]# cpupower frequency-set --governor [governor]
~]# cpupower -c 1-3,5 frequency-set --governor cpufreq_userspace

3.2.4. 

  • 重要的
注意
可以通过写入这些可调项来更改设置和值。
echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq