Linux-Kernel

將 CPU 調控器設置為按需或保守

  • February 3, 2022

cpupower在 ArchLinux 上苦苦掙扎。我想將調速器設置為ondemand甚至設置為conservative.

首先,如果我這樣做$ sudo cpupower frequency-info --governors,我只會得到performance powersave

所以我尋找這樣的可用模組

ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/

…我得到

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

因此,首先似乎沒有“按需”模組可用。我想念什麼?

然後我嘗試啟用至少保守的:

$ sudo modprobe cpufreq_conservative

然後我檢查模組是否實際載入

$ lsmod | grep cpufreq

並檢查它現在是否可用

$ sudo cpupower frequency-info --governors

但不幸的是,我仍然得到相同的結果:performance powersave只有,如果我嘗試啟用保守

$ sudo cpupower frequency-set -g conservative

它說該模組不可用。

所以基本上我有兩個問題:

  1. 我需要安裝什麼才能擁有按需模組
  2. 我該如何啟用它?

假設您的調控器是 intel_pstate(從核心 3.9 開始,Intel Sandy Bridge 和 Ivy Bridge CPU 的預設設置)。這個問題不是 Arch 特有的,而是所有使用新的 Intel pstate 驅動程序來管理 CPU 頻率/電源管理的發行版。Arch linux CPU 頻率縮放


Theodore Ts’o 將他的解釋寫在

$$ Google+ $$,(死連結)2

  • intel_pstate 可以在啟動時使用核心 arg 禁用intel_pstate=disable
  • ondemand 調控器的問題在於它不知道 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"

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

按照Arch 核心模組載入的說明 添加acpi-cpufreq模組。

引用自:https://unix.stackexchange.com/questions/121410