[Sammelthread] Die sparsamsten Systeme (<30W Idle)

Hallo Zusammen,

ich hab hier die letzten Wochen viel gelesen und gelernt, erstmal danke dafür.
Am Ende ist es eine Konfiguration geworden, die ich hier nicht gesehen (oder übersehen) habe.
Daher wollte ich meine Erfahrungen mit euch teilen:

Unraid 7.14 Server/NAS Build:
Intel i3-14100
ASUS PRIME B760M-A D4-CSM
2x 8GB DDR4 3600 @ 2133 MHZ (Corsair Vengeance)
Be Quiet! Pure Power 13 M 550w
Keine VMs/Docker

Festplatten:
3.5" = 1x 8TB WD Red Plus, 2x 4TB WD Red Plus, 1x 2TB WD Green
M.2 Nvme = SAMSUNG NVMe SSD 970 EVO, 1 TB

Idle Verbrauch:

12W-13W, gemessen mit HMIP PSM im 2 Minuten Interval.


NAS_verbrauch.png


Einstellungen:

- Die üblichen ASPM Settings im Bios, unnötige Onboard Devices + CPU Turbo deaktiviert
- Powertop Auto
- ASPM Helper -> Realtek 2.5G NIC (RTL8125) ASPM Mode 2 erzwungen (mit Stock Treiber)

Beobachtungen:

Ohne ASPM Helper bin ich nicht über C3 hinausgekommen, da ASPM für die RTL8125 auf disabled verharrte.
Mit erzwungenem ASPM arbeitet das System nahezu vollständig in C8 State.
Alle anderen Geräte haben keine Probleme gemacht. In beiden M.2 Slots war C8 möglich.

Woher die punktuellen Spikes auf 18W kommen, muss ich noch rausfinden..
Ich habe mein Unraid vom alten System "mitgenommen", sprich einfach USB Stick ins neue System.
Vermutlich ist da irgendeine Konfig noch unsauber.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
CPU: Intel Core i5-13600k
Mainboard: ASUS TUF GAMING B760M-PLUS D4 (UEFI 1820)
Netzwerk: Intel X710 angeschlossen (Mainboard 2.5G Adapter deaktiviert)

Mein eigentliches Problem ist, dass sobald irgendwas im PCIE Slot 1 steckt, ich bei 25W und C3 lande. Hat jemand eine Idee das zu umgehen?
Ich gehe aktuell davon aus, dass man auf Sockel 1700 keine niedrigen Package C-States erreichen kann, sobald CPU angebundene PCIe Geräte gesteckt sind.
Siehe auch The Curse of 12th Gen C-States
 
Hallo, ich spreche kein Deutsch. Aus Respekt vor Ihnen allen habe ich mit Google Translate aus dem Englischen übersetzt (das Original ist unten). Ich hoffe, es sind nicht so viele Fehler.

Zuerst möchte ich mich bei euch allen für die Inspiration bedanken. Ich glaube, ich habe fast den gesamten Thread gelesen. Ich bin über Wolfgangs YouTube-Kanal hierher gekommen und habe die Tabelle und das Forum studiert. Das Ergebnis ist die folgende Konfiguration. Ich weiß, es ist nicht die energieeffizienteste Konfiguration, aber unter Berücksichtigung der Spezifikationen ist es für mich in Ordnung.

CPU: Intel Core i5-12400
Motherboard: B760M GAMING X DDR4
GPU: iGPU
RAM: Corsair Vengeance LPX 2x 16GB, DDR4-3200 | CMK32GX4M2E3200C16
Festplatten: 2x Lexar NM790, 2x HGST WD Ultrastar DC HC520 HDD | HUH721212ALE601 | 12 TB
Netzteil: SILVERSTONE SST-ST45SF v3.0 450 W 80+ Bronze
Betriebssystem: Unraid 7.0.1
Peripheriegeräte: Keine
Max. C-Status: C10

Test 1 (nur Betriebssystem läuft, keine Pools, keine Plugins, keine Docker)
- Leerlaufverbrauch (Festplatten heruntergefahren): 12,5 W
- Leerlaufverbrauch (Festplatten hochgefahren): 22 W
- Lastverbrauch (Array-Paritätssynchronisierung): 40 W

Test 2:
Dies ist mein tägliches Szenario.
1 Array (Daten + Parität) + 1 ZFS-Pool (die beiden NVMe im Mirror) + Ich habe ein weiteres HGST 12-TB-Laufwerk und eine NanoKVM hinzugefügt.
Wegen der NanoKVM kann ich nur auf C8 wechseln.

Laufende Dienste (3 W):
- NextCloud AIO (7/10 Docker laufen)
- Immich + PostgreSQL
- Jellyfin
- Cloudflare Tunnel
- Kubuntu Webtop

Leistungsaufnahme:
- Leerlaufverbrauch (Festplatten heruntergefahren): 23 W
- Leerlaufverbrauch (Festplatten hochgefahren): 39 W
- Lastverbrauch (Array-Paritätssynchronisierung, Jellyfin + Transkodierung): 58 W

Getestet wurde auch ein Cooler Master MWE 550 V2 Bronze = +7–8 W

Messgerät:
Nous A8T WiFi Smart Socket mit Tasmota

Optimierung der Energieeffizienz:
- Skalierungsregler auf Energiesparen eingestellt (über die Weboberfläche) oder über das Terminal:

/etc/rc.d/rc.cpufreq powersave


- Realtek 2,5-Gbit-LAN ASPM Force:

echo 1 | tee /sys/bus/pci/drivers/r8169/0000\:04\:00.0/link/l1_aspm
echo 1 | tee /sys/bus/pci/drivers/r8169/0000\:04\:00.0/link/l1_1_aspm
echo 1 | tee /sys/bus/pci/drivers/r8169/0000\:04\:00.0/link/l1_2_aspm

- Powertop:
powertop --auto-tune &>/dev/null

Alle diese Befehle werden in /boot/config/go gesetzt, sodass sie beim Booten geladen werden.
Ich hoffe, das hilft weiter, da mir ähnliche Beispiele aus anderen Builds in diesem Forum sehr geholfen haben. Nochmals vielen Dank!!!


---------------- English ----------------

First of all, I wanted to thank you all for the inspiration, I think I read almost all of this thread, I got here through Wolfgang's Channel on Youtube, and I studied the spreadsheet and also the forum and the result is in the below configuration. I know it's not the best power efficient build, however it's fine for me taking under consideration the specifications.


CPU: Intel Core i5-12400
Motherboard: B760M GAMING X DDR4
GPU: iGPU
RAM: Corsair Vengeance LPX 2x 16GB, DDR4-3200 | CMK32GX4M2E3200C16
HDD: 2x Lexar NM790, 2x HGST WD Ultrastar DC HC520 HDD | HUH721212ALE601 | 12TB
Power supply: SILVERSTONE SST-ST45SF v3.0 450W 80+ Bronze
Operating system: Unraid 7.0.1
Peripherals: None
Max C-State: C10

Test 1 (only OS running, no pools, no plugins, no dockers)
- Idle consumption (disks spun down): 12.5W
- Idle consumption (disks spun up): 22W
- Load consumption (array parity sync): 40W

Test 2:
This is my daily scenario.
1 array (data + parity) + 1 zfs pool (the 2 NVMe in mirror) + I added one more HGST 12TB drive and also a NanoKVM.
Because of the NanoKVM, I can only go to C8.

Running services (3W):
- NextCloud AIO (7/10 dockers running)
- Immich + PostgreSQL
- Jellyfin
- Cloudflare Tunnel
- Kubuntu Webtop

Power draw:
- Idle consumption (disks spun down): 23W
- Idle consumption (disks spun up): 39W
- Load consumption (array parity sync, jellyfin + transcoding): 58W

Tested also a Cooler Master MWE 550 V2 Bronze = +7~8W


Measuring instrument:
Nous A8T WiFi Smart Socket with Tasmota

Tuning for power efficiency:
- Scaling governor set to powersave (from the web interface), or via terminal:
/etc/rc.d/rc.cpufreq powersave

- Realtek 2.5Gb LAN ASPM Force:

echo 1 | tee /sys/bus/pci/drivers/r8169/0000\:04\:00.0/link/l1_aspm
echo 1 | tee /sys/bus/pci/drivers/r8169/0000\:04\:00.0/link/l1_1_aspm
echo 1 | tee /sys/bus/pci/drivers/r8169/0000\:04\:00.0/link/l1_2_aspm

- Powertop:
powertop --auto-tune &>/dev/null


All these commands are set in /boot/config/go , so that it loads at boot.
I hope this helps out, as similar examples from other builds in this forum helped me so much, thank you again!!! :)
 
Zuletzt bearbeitet:
Measuring instrument:
Nous A8T WiFi Smart Socket with Tasmota
Those are only rough indicators and dosn't measure very precisly. Have you calibrated it with an old school light bulb for something in the 20-60W range?

I prefer the ESP32 based ones from athom as they also come calibrated.

At least if you want to compare to other users.
 
Zuletzt bearbeitet:
Yes, i totally overlooked the calibration part.. I did the calibration, and for Test 2, i have +3W, i updated the original post, thank you.
Test 1 was done with a device similar to a Kill-A-Watt.
 
Es gibt ja von Wolfgang (notthebee) ein AutoASPM-Scipt auf Github. Habe das Script vorhin entdeckt, aber selbst noch gar nicht ausprobiert. Bin mir nicht sicher, ob es auf meine System überhaupt eine Verbesserung bringt, oder ob die ASPM-Einstellungen so ohnehin schon ausreichen.

Kann mir vielleicht jemand erklären, wie ich eigentlich den lspci Log lesen muss?

Code:
sudo lspci -vv | awk '/ASPM/{print $0}' RS= | grep --color -P '(^[a-z0-9:. ]+|ASPM )'
00:1c.0 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port (prog-if 00 [Normal decode])
        LnkCap:    Port #3, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
        LnkCtl:    ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
00:1c.3 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port #4 (prog-if 00 [Normal decode])
        LnkCap:    Port #4, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
        LnkCtl:    ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
00:1c.6 PCI bridge: Intel Corporation Alder Lake-N PCI Express Root Port (prog-if 00 [Normal decode])
        LnkCap:    Port #7, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
        LnkCtl:    ASPM L0s L1 Enabled; RCB 64 bytes, Disabled- CommClk+
01:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
        LnkCap:    Port #0, Speed 5GT/s, Width x1, ASPM L1, Exit Latency L1 <4us
        LnkCtl:    ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
02:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
        LnkCap:    Port #0, Speed 5GT/s, Width x1, ASPM L1, Exit Latency L1 <4us
        LnkCtl:    ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
03:00.0 SATA controller: ASMedia Technology Inc. ASM1064 Serial ATA Controller (rev 02) (prog-if 01 [AHCI 1.0])
        LnkCap:    Port #0, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
        LnkCtl:    ASPM L0s L1 Enabled; RCB 64 bytes, Disabled- CommClk+

Wenn ich es richtig verstehe, wir unter LnkCap für jeden PCI-Device aufgeführt, welchen ASPM-Modus das jeweilige Gerät unterstützt. Die drei PCI Bridges und der SATA Controller L0s L1 und die beiden Ethernet controller L1. LnkCtl zeigt dann an, welcher Modus aktuell aktiv ist, richtig? In dem Fall wären in meinem System für alle Geräte alle unterstützten ASPM-Modi auch aktiviert.

Wäre das AutoASPM-Script dann bei mir also überflüssig?



Bei den ASPM-Modi gibt es generell folgende Möglichkeiten:

L0 – All PCI Express transactions and other operations are enabled.
L0s – A low resume latency, energy saving “standby” state.
L1 – Higher latency, lower power “standby” state (optional).
L0sL1 - Activate both L0s and L1 support.

Welcher Modus würde davon denn die höchste Energieersparnis bringen? Ist L1 besser als L0s?
Wäre L1 im Verbrauch dann auch besser als L0sL1, weil dabei auch der L0s-Modus aktiviert ist?
 
Wäre das AutoASPM-Script dann bei mir also überflüssig?
In dem Fall ist das AUTO ASPM script überflüssig ja.

Je nachdem welche Befehle das script nutzt ist der Einsatz mitunter nicht ganz ungefährlich. Man erzwingt ASPM. Werden SETPCI Befehle im script benutzt schreibt man direkt auf HW Register via ihren direkten HW Adressen. Dumm nur wenn man eine neue PCIe Karte steckt und sich die Adressen ändern. Dann schreibt man im schlimmsten Fall auf irgendein Register des neuen PCIe devices das gar nix mit ASPM zu tun hat und macht irgendwas böse/irreversibel kaputt. Man sollte also innerhalb gewisser Grenzen wissen was man tut.


Welcher Modus würde davon denn die höchste Energieersparnis bringen? Ist L1 besser als L0s?
Da kann man leider nur sagen: "Am besten, testen."


Du brauchst noch eine Anzeige die Dir sagt welche C-Pkg States dein System erreicht. Ich empfehle Dir da powertop bei Linuxsystemen.
Das ASPM erstmal überall enabled ist ist schonmal die Grundlage um in tiefere C-Pkg states als C3 zu kommen, aber jetzt das grosse "aber".
- Manche Boards gehen gar nicht tiefer als C3, egal was man macht und selbst wenn alle ASPM devices enabled sind
- Manche Boards gehen nur mit L1, andere nur mit L0s, andere nur mit L1 und L0s in tiefe C-Pkg states.

Anbei mal ein Screenshot aus powertop:
Bildschirmfoto 2025-07-20 um 12.08.06.png


Der Screenshot ist aus meinem Asrock N100-DC-ITX System mit 1xNVME und 5xSSD. Der N100 hat einen Realtek Netzwerkchip und der ist standardmässig ASPM disabled und muss auch in ASPM gezwungen werden. Ich mache das allerdings mit SETPCI Befehlen und keinen fremden script. Man sieht das ich zu 48,3% der Zeit im C-Pkg State C8 bin. Das ist ein recht guter Wert.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh