将 CPU 调控器设置为按需或保守

lvi*_*ani 34 power-management linux-kernel cpu-frequency

cpupower在 ArchLinux 上挣扎。我想将州长设置为ondemand,甚至设置为conservative

首先,如果我这样做$ sudo cpupower frequency-info --governors,我只会得到performance powersave.

所以我寻找这样的可用模块

ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/
Run Code Online (Sandbox Code Playgroud)

......我明白了

acpi-cpufreq.ko.gz
amd_freq_sensitivity.ko.gz
cpufreq_conservative.ko.gz
cpufreq_powersave.ko.gz
cpufreq_stats.ko.gz
cpufreq_userspace.ko.gz
p4-clockmod.ko.gz
pcc-cpufreq.ko.gz
powernow-k8.ko.gz
speedstep-lib.ko.gz
Run Code Online (Sandbox Code Playgroud)

因此,首先似乎没有“按需”模块可用。我想念什么?

然后我尝试启用至少保守:

$ sudo modprobe cpufreq_conservative
Run Code Online (Sandbox Code Playgroud)

然后我检查模块是否实际加载

$ lsmod | grep cpufreq
Run Code Online (Sandbox Code Playgroud)

并检查它现在是否可用

$ sudo cpupower frequency-info --governors
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我仍然得到相同的结果:performance powersave只有,并且如果我尝试启用保守的

$ sudo cpupower frequency-set -g conservative
Run Code Online (Sandbox Code Playgroud)

它说该模块不可用。

所以基本上我有两个问题:

  1. 我需要安装什么才能拥有按需模块
  2. 我怎样才能启用它?

bsd*_*bsd 42

假设您的调控器是 intel_pstate(从内核 3.9 开始,Intel Sandy Bridge 和 Ivy Bridge CPU 的默认设置)。这个问题不是 Arch 特有的,而是所有使用新的 Intel pstate 驱动程序来管理 CPU 频率/电源管理的发行版。Arch linux CPU 频率缩放


Theodore Ts'o 在 Google+ 上写下了他的解释

  • intel_pstate 可以在启动时使用内核参数禁用 intel_pstate=disable
  • 按需调节器的问题在于它不知道 CPU 的具体功能
  • 以较高频率执行某些任务会比使用较低频率花费更多时间(例如算术)消耗的功率更少,但并非对所有任务都如此,例如从内存中加载某些内容
  • intel_pstate 驱动程序知道 CPU 如何工作的细节,它比通用 ACPI 解决方案做得更好
  • intel_pstate 仅提供两个调控器,powersave并且performance. 英特尔声称 intel_pstate“powersave”比具有“性能”的通用 acpi 调控器更快

要改回 ACPI 驱动程序,请重新启动并设置内核 argintel_pstate=disable
然后执行modprobe acpi-cpufreq,您应该可以使用按需调节器。

您可以通过编辑/etc/default/grub和添加 使更改永久化

GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"
Run Code Online (Sandbox Code Playgroud)

然后更新grub.cfgalagrub-mkconfig -o /boot/grub/grub.cfg

按照Arch 内核模块加载说明进行操作 并添加acpi-cpufreq模块。

  • 通用 acpi 调控器“性能”和 intel_pstate“性能”之间存在差异,对吗?后者比前者和 intel_pstate `powersave` 都快? (2认同)