我正在运行一台最近升级到的机器英特尔第十代至强 W-1290P Comet Lake CPU。 CPU与普通台式机i9-10900k非常相似。
在这台机器上,我运行 Proxmox。我正在使用内核 5.11。
root@server:~# uname -a
Linux server 5.11.21-1-pve #1 SMP PVE 5.11.21-1~bpo10 (Wed, 02 Jun 2021 11:34:45 +0200) x86_64 GNU/Linux
升级后(从 E3-1245 v6),我的系统即使在空闲时也会消耗更多的能量。我试图调查发生了什么,发现我的系统从未进入任何比 C3 更深的 C 状态。
尝试验证支持哪些 C 状态会得到不同的结果。
root@server:~# cat /sys/module/intel_idle/parameters/max_cstate
9
在这里,我的系统似乎认为它最多支持C9。
root@server:~# cpupower idle-info
CPUidle driver: intel_idle
CPUidle governor: menu
analysiere CPU 0:
Number of idle states: 4
Available idle states: POLL C1_ACPI C2_ACPI C3_ACPI
POLL:
Flags/Description: CPUIDLE CORE POLL IDLE
Latency: 0
Usage: 1012041
Duration: 3293515
C1_ACPI:
Flags/Description: ACPI FFH MWAIT 0x0
Latency: 1
Usage: 1340146
Duration: 215843217
C2_ACPI:
Flags/Description: ACPI FFH MWAIT 0x33
Latency: 151
Usage: 949495
Duration: 949112994
C3_ACPI:
Flags/Description: ACPI FFH MWAIT 0x60
Latency: 1034
Usage: 315636
Duration: 1552349782
运行cpupower idle-info
显示仅支持 4 个状态,并且不是我期望的状态C1
、等状态,而是被命名为C2
等等。C3
C1_ACPI
我验证了我的系统用作intel_idle
CPUidle 驱动程序和intel_pstate
缩放驱动程序。
root@server:~# cpupower frequency-info
analysiere CPU 0:
driver: intel_pstate
Folgende CPUs laufen mit der gleichen Hardware-Taktfrequenz: 0
Die Taktfrequenz folgender CPUs werden per Software koordiniert: 0
Maximale Dauer eines Taktfrequenzwechsels: Cannot determine or is not supported.
Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 5.30 GHz
mögliche Regler: performance powersave
momentane Taktik: die Frequenz soll innerhalb 800 MHz und 5.30 GHz.
liegen. Der Regler "powersave" kann frei entscheiden,
welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
current CPU frequency: Unable to call hardware
current CPU frequency: 4.90 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
为什么我的系统不支持更深层次的 C 状态,例如 C6?我能做些什么来改变这一点吗?