labkompass

Guides · Proxmox

Proxmox-Stromverbrauch senken: C-States, powertop und ASPM

Warum Proxmox-Hosts im Idle oft mehr ziehen als nötig — und wie du mit BIOS-Einstellungen, CPU-Governor, powertop --auto-tune und ASPM den Verbrauch drückst.

Von Niclas Hennrich · Veröffentlicht: · 5 Min. Lesezeit


Kurz gesagt: Ein Proxmox-Host wird im Idle sparsam, wenn drei Dinge zusammenkommen: tiefe C-States und ASPM im BIOS aktiviert, der CPU-Governor auf powersave bzw. schedutil statt performance, und powertop --auto-tune als systemd-Service persistent eingerichtet. Wie viel das bringt, hängt stark von der Hardware ab — deshalb ist ein Zwischenstecker-Messgerät Pflicht, nicht Kür.

Ein Homeserver läuft 24/7 — und bei Proxmox VE entscheidet nicht die Rechenleistung über die Stromrechnung, sondern der Idle-Verbrauch. Denn die meiste Zeit tut ein Homelab: fast nichts. Dieser Guide zeigt, wo die unnötigen Watt herkommen und wie du sie loswirst — von den BIOS-Grundlagen bis zur persistenten powertop-Konfiguration.

Warum Proxmox-Hosts im Idle oft zu viel ziehen #

Der Hauptgrund ist simpel: Proxmox ist ab Werk auf Verfügbarkeit und Performance ausgelegt, nicht auf Sparsamkeit. Auf vielen Systemen steht der CPU-Governor nach der Installation auf performance und hält die Taktraten oben, obwohl nichts zu tun ist. Dazu kommen BIOS-Defaults, die tiefe C-States oder ASPM deaktiviert lassen, und Komponenten, die niemand hinterfragt: die dedizierte GPU aus dem alten Gaming-PC, HDDs, die nie schlafen dürfen, oder eine 10G-Netzwerkkarte für ein Netz, das eigentlich Gigabit ist.

Wichtig fürs Verständnis: Moderne CPUs sparen nicht primär über niedrigen Takt, sondern über C-States — Schlafzustände, in die Kerne und das ganze CPU-Package fallen, wenn nichts anliegt. Je tiefer das System schlafen darf (idealerweise Package C6 oder tiefer), desto sparsamer wird es. Und schon eine einzige Komponente ohne Energiesparmodus kann das ganze Package am Tiefschlaf hindern.

Schritt 1: BIOS-Grundlagen #

Die Basis legst du im BIOS/UEFI — ohne sie verpuffen alle Software-Tricks:

  • C-States aktivieren: Optionen wie „C-States", „Package C-State Limit" oder „C6/C7/C8/C10" auf Enabled bzw. Auto stellen. Ein Limit auf C2 oder C3 kostet spürbar Effizienz.
  • ASPM aktivieren: „PCIe ASPM" oder „Native ASPM" einschalten — sonst bleiben PCIe-Geräte dauerhaft im Vollbetrieb und blockieren tiefe Package-C-States.
  • Unnötiges abschalten: Ungenutzte SATA-Controller, Audio-Chips, serielle Ports oder ein zweiter LAN-Port kosten jeweils wenig, summieren sich aber. Was du nicht brauchst, kann aus.
  • Nebenbei prüfen: Lüftersteuerung auf leise/effizient — und wenn du gerade dabei bist, die Virtualisierung anlassen, die du für Proxmox ohnehin brauchst.

Schritt 2: CPU-Governor umstellen #

Der Governor entscheidet, wie aggressiv die CPU taktet. So prüfst du den aktuellen Zustand:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver

Steht dort performance, stellst du um — bei Intel-CPUs mit dem intel_pstate-Treiber auf powersave, bei AMD bzw. acpi-cpufreq ist schedutil die richtige Wahl:

echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Keine Sorge um die Leistung: powersave unter intel_pstate heißt nicht „lahm", sondern „taktet bedarfsgerecht" — unter Last steht weiterhin der volle Boost zur Verfügung. Details zu Governors und Treibern erklärt die Kernel-Dokumentation zum Power Management.

Die Einstellung gilt nur bis zum Neustart. Persistent machst du sie gleich zusammen mit powertop im nächsten Schritt.

Schritt 3: powertop --auto-tune — und persistent machen #

powertop ist das Schweizer Taschenmesser fürs Stromsparen unter Linux:

apt install powertop
powertop --auto-tune

--auto-tune setzt alle bekannten Energiespar-Tunables auf „Good" — unter anderem SATA Link Power Management, USB-Autosuspend und Runtime-PM für PCI-Geräte. Ein Wermutstropfen: USB-Autosuspend kann angeschlossene Geräte wie Tastaturen, Zigbee-Sticks oder USB-NICs einschlafen lassen. Teste danach, ob alles noch reagiert; im interaktiven powertop (Tab „Tunables") kannst du einzelne Punkte gezielt zurückstellen.

Auch das überlebt keinen Neustart. Die sauberste Lösung ist ein kleiner systemd-Service, der Governor und auto-tune beim Booten setzt:

cat > /etc/systemd/system/powersave.service <<'EOF'
[Unit]
Description=CPU-Governor und powertop auto-tune
After=multi-user.target
 
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor'
ExecStart=/usr/sbin/powertop --auto-tune
 
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now powersave.service

Im interaktiven powertop siehst du außerdem unter „Idle Stats", ob dein System tatsächlich in tiefen Package-C-States ankommt — die ehrlichste Kontrolle, ob deine Maßnahmen greifen.

Schritt 4: ASPM kontrollieren #

Ob ASPM auf den PCIe-Links wirklich aktiv ist, verrät lspci:

lspci -vv | grep -i aspm
cat /sys/module/pcie_aspm/parameters/policy

Steht bei relevanten Geräten „ASPM Disabled", obwohl es im BIOS aktiviert ist, unterstützt entweder das Gerät kein ASPM oder der Kernel hat es aus Kompatibilitätsgründen abgeschaltet. Das ASPM per Kernel-Parameter zu erzwingen (pcie_aspm=force) ist möglich, aber riskant — manche NICs und NVMe-SSDs reagieren darauf mit Abstürzen oder Verbindungsabbrüchen. Im Zweifel gilt: lieber ein paar Watt mehr als ein instabiler Host.

Die typischen Verbrauchsfresser #

Wenn der Host trotz allem zu viel zieht, sind es fast immer dieselben Verdächtigen:

  • HDDs, die nie schlafen: Drehende 3,5"-Platten kosten dauerhaft Energie. Spindown per hdparm -S ist möglich — aber ZFS-Scrubs, Monitoring oder ein ständig zugreifender Dienst wecken sie sofort wieder. Häufiges Anlaufen ist zudem mechanischer Stress; entweder richtig schlafen lassen oder bewusst durchlaufen lassen.
  • Dedizierte GPU: Zieht auch ungenutzt dauerhaft Strom und verhindert oft tiefe C-States. Wenn du sie nicht für Passthrough brauchst: raus damit — die iGPU reicht fürs Homelab fast immer.
  • 10G-NICs: Gerade ältere 10GBase-T-Karten sind notorische Dauerverbraucher. Wer nur Gigabit nutzt, fährt mit dem Onboard-NIC deutlich sparsamer; SFP+ mit DAC ist die effizientere 10G-Variante.
  • VMs mit Polling: Eine einzelne VM, die im Sekundentakt pollt oder einen Timer-Interrupt-Sturm erzeugt, hält die CPU permanent wach. Ein Blick in htop auf dem Host zeigt, wer der Übeltäter ist.

Messen ist Pflicht, nicht Kür #

Ohne Messung ist jede Optimierung Blindflug — die Wirkung derselben Maßnahme reicht je nach Board, Netzteil und BIOS von „kaum messbar" bis „deutlich". Ein Zwischenstecker-Messgerät für ~10–15 € gehört deshalb zur Grundausstattung: Verbrauch vor der Optimierung notieren, jede Maßnahme einzeln durchführen, wieder messen. Was ein eingespartes Watt übers Jahr bringt, rechnest du im Stromkosten-Rechner durch — als Faustregel kostet jedes Dauer-Watt bei 0,35 €/kWh rund 3 € pro Jahr. Konkrete Messreihen zu einzelnen Geräten und Maßnahmen dokumentieren wir nach und nach im LAB.

Zur Einordnung, klar als Richtwerte gekennzeichnet: Sparsame Mini- und SFF-PCs landen gut konfiguriert typischerweise im niedrigen zweistelligen Watt-Bereich, während unoptimierte Desktop-Hardware je nach Ausstattung deutlich darüber liegt — mehr dazu im Guide zum alten PC als Homeserver.

Was NICHT viel bringt #

Genauso ehrlich: Ein paar beliebte Stellschrauben sind im Idle fast wirkungslos.

  • VMs löschen: Untätige VMs kosten kaum etwas — entscheidend ist, ob sie die CPU wachhalten, nicht wie viele es sind.
  • RAM ausbauen: Belegter oder verbauter RAM zieht nur wenige Watt. Der Ausbau lohnt sich energetisch praktisch nie.
  • Kleineres Netzteil um jeden Preis: Ein passendes, effizientes Netzteil hilft — aber es rettet keinen Host, dessen Komponenten nicht schlafen dürfen.

Fazit #

Sparsam wird ein Proxmox-Host nicht durch einen einzelnen Trick, sondern durch die Kette: C-States und ASPM im BIOS, Governor auf powersave/schedutil, powertop --auto-tune per systemd persistent — und dann konsequent die Komponenten jagen, die den Tiefschlaf blockieren. Miss jede Maßnahme einzeln nach, dann weißt du am Ende nicht nur, dass es weniger wurde, sondern auch warum.

Häufige Fragen

Warum verbraucht mein Proxmox-Host im Idle so viel Strom?
Meist aus drei Gründen: Der CPU-Governor steht auf performance und hält die Taktraten unnötig hoch, im BIOS sind tiefe C-States oder ASPM deaktiviert, und einzelne Komponenten wie dedizierte GPUs, 10G-NICs oder nie schlafende HDDs ziehen dauerhaft. Proxmox ist ab Werk auf Verfügbarkeit optimiert, nicht auf Sparsamkeit.
Wie stelle ich den CPU-Governor unter Proxmox um?
Den aktuellen Governor zeigt ein Blick in /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor. Umstellen geht mit echo powersave beziehungsweise echo schedutil per tee auf die scaling_governor-Dateien aller Kerne. Bei Intel-CPUs mit intel_pstate heißt der sparsame Governor powersave, bei AMD oder acpi-cpufreq ist schedutil die richtige Wahl. Damit die Einstellung einen Neustart überlebt, brauchst du einen kleinen systemd-Service.
Ist powertop --auto-tune sicher?
Überwiegend ja, aber nicht blind: Der Befehl aktiviert alle bekannten Energiespar-Optionen auf einmal, darunter auch USB-Autosuspend. Das kann angeschlossene USB-Geräte wie Tastaturen, Zigbee-Sticks oder USB-NICs einschlafen lassen. Teste nach dem Aktivieren, ob alles noch funktioniert, und nimm einzelne Tunables bei Problemen gezielt wieder heraus.
Was bringt ASPM beim Stromsparen?
ASPM (Active State Power Management) lässt PCIe-Verbindungen in Energiesparzustände wechseln, wenn sie nichts zu tun haben. Ohne ASPM erreichen viele Systeme keine tiefen Package-C-States, egal wie sparsam der Rest konfiguriert ist. ASPM muss im BIOS aktiviert sein und vom Gerät unterstützt werden; den Status prüfst du mit lspci -vv.
Senkt es den Verbrauch, wenn ich VMs lösche oder RAM ausbaue?
Kaum. Idle-VMs und belegter RAM kosten nur wenige Watt — entscheidend ist, ob die Hardware in tiefe Schlafzustände kommt. Eine einzelne VM, die per Polling dauerhaft CPU-Last erzeugt, kostet dagegen deutlich mehr als zehn wirklich untätige VMs. Miss den Verbrauch mit einem Zwischenstecker, statt an der VM-Anzahl zu schrauben.

Weiterlesen