CPU 频率调节
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_freq 与 scaling_min_freq 和 scaling_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 频率调节应该会自动启用。