CPU 频率调节

来自 Alpine Linux

CPU 频率调节是许多现代处理器的一项功能,它允许在运行时更改 CPU 频率。通过这种方式,系统可以针对节能(最低频率)、性能(最高频率)或两者兼顾(自动切换)进行优化。例如,后者对于大多数正常运行时间处于空闲状态,但在接收请求时必须维持高 CPU 吞吐量的服务器来说是最佳的。

选择调速器

CPU 频率调节由所谓的 CPU 调速器处理,它决定使用哪些频率以及何时在它们之间切换。最常见的调速器如下:

调速器 频率 切换
performance 最大
powersave 最小
ondemand 自动 立即
conservative 自动 逐渐
userspace 自定义 自定义

为了检查您的处理器有哪些可用的调速器

cat /sys/devices/system/cpu/cpufreq/policy*/scaling_available_governors

例如,要将处理器 0 的调速器更改为 ondemand

echo ondemand > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

要查看您选择的调速器是否按预期工作,您可以比较不同系统负载下的 scaling_cur_freqscaling_min_freqscaling_max_freq。所有这些文件都位于与上述调速器设置相同的文件夹 /sys/devices/system/cpu/cpufreq/policy0 中。

操作调速器

某些调速器可以进一步配置;这些设置可以在文件夹 /sys/devices/system/cpu/cpufreq/* 中找到。例如,ondemand 调速器默认在 CPU 使用率超过 95% 时切换到更高的频率。如果我们希望将此阈值降低到例如 80%,我们可以运行

echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

自动配置

一旦我们找到了满意的调速器,我们可能希望在系统重启时保留它。这可以通过在 /etc/local.d 中创建本地服务来完成。首先,使用上面讨论的相关 CPU 频率调节命令创建一个新的本地服务 /etc/local.d/cpufreq.start

#!/bin/sh

# Set the governor to ondemand for all processors
for cpu in /sys/devices/system/cpu/cpufreq/policy*; do
  echo ondemand > ${cpu}/scaling_governor              
done

# Reduce the boost threshold to 80%
echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

使启动脚本可执行,确保在启动时启动本地服务,并同步您的更改

chmod +x /etc/local.d/cpufreq.start
rc-update add local default
lbu commit

重启您的计算机,CPU 频率调节应该会自动启用。