Proxmox: Stromverbrauch senken mit 4 praxisbewährten Tipps
In Zeiten steigender Energiekosten und wachsender Umweltbewusstheit suchen viele von uns nach Wegen, um den Stromverbrauch in der IT-Infrastruktur zu senken. Gerade in Heimnetzwerken und bei kleinen Servern, die rund um die Uhr laufen, kann der Energiebedarf schnell zu einer nicht unerheblichen Kostenquelle werden. Wenn du, wie ich, Proxmox nutzt, ein Open-Source-Tool zur Virtualisierung, gibt es glücklicherweise einige effektive Möglichkeiten, den Stromverbrauch deines Setups zu optimieren, ohne dabei auf Leistung zu verzichten.
In diesem Blogbeitrag teile ich vier erprobte Tipps, mit denen du deine Proxmox-Installation energieeffizienter gestalten kannst. Dabei geht es nicht nur um Hardware-Anpassungen, sondern auch um clevere Software-Optimierungen, die deine VMs und Container energieeffizienter machen. Egal, ob du ein erfahrener Proxmox-Nutzer bist oder gerade erst mit der Plattform beginnst, diese Tipps helfen dir, deine Stromrechnung zu senken und gleichzeitig einen kleinen Beitrag zum Umweltschutz zu leisten. Lass uns direkt loslegen und schauen, wie du aus deinem Proxmox-Server mehr Effizienz herausholen kannst!
Vorab: Stromverbrauch messen
Um überhaupt zu wissen wieviel Strom die Geräte verwenden sollte man diesen auch messen. Es kommt hierbei nicht auf gute Genauigkeit an, sondern um einfach mal ein Gefühl zu bekommen wieviel Strom die einzelnen Geräte so verbrauchen. Hierzu kann man sich ein günstiges Strommessgerät anschaffen. Beachte bitte, das bei günstigen Geräten die Genauigkeit natürlich nicht unbedingt vorhanden ist. Wer ein Smart Home sein eigen nennt, kann direkt eine Steckdose mit Strommessfunktion vor das Homelab anschließen. So hast du mittels Software immer den aktuellen Stromverbrauch.
Auf die richtige Hardware achten
Natürlich steht und fällt schlussendlich alles mit der richtigen Hardware. Alte Enterprise Hardware verbraucht natürlich viel Strom. Entsprechen sind so genannte ThinClients eine sehr gute Lösung einen energieeffizienten Server zu bauen. Ich habe diese mal in einem Video vorgestellt.
Zudem kann man auch mit den richtigen Komponenten im Selbstbau einen guten Server zusammen stellen. Im Hardwareluxx Forum gibt es eine verlinkte Google Sheets Datei die Systeme unter 30 Watt idle Verbrauch auflistet.
Wichtig ist auch, dass bei einem selbst zusammen gestelltem PC bzw. Server es auf alle Komponenten ankommt. Es fängt bei einem effizienten Netzteil an, geht über ein gutes Mainboard bishin zur richtigen Auswahl der CPU. Gerade bei letzterem ist es so, dass Intel noch ein wenig die Nase vorne hat was einen günstigeren Stromverbrauch im idle Status angeht. Wichtig ist auch, dass Intel-CPUs mit einem “T” in der Bezeichnung nur eine geringere TDP haben. Der TDP nat erst mal nichts mit dem Stromverbrauch zu tun sondern ist die maximale Wärmeabgabe. Eine T-CPU ist also für Systeme geeignet die vollständig passiv laufen sollen. Koponenten die eher für einen hohen Stromverbrauch sprechen wären
- Grafikkarten
- RAID Controller / HBAs
- Netzwerkkarten mit mehr als 10 GBit Geschwindigkeit
Weiter unten den dem Beitrag gehe ich auf den ASPM Status ein. ASPM (Active State Power Management) bedeutet dass eine Komponente bestimmte Stromsparfunktionen erreichen kann oder nicht. Ganz grob lässt sich hier sagen, dass Enterprise-Hardware meistens nicht mit diesen Funktionen ausgestattet sind.
BIOS Einstellungen richtig setzen
Unnötige Hardware deaktivieren
Die meisten BIOS können verschiedene Geräte abschalten. Bei einem Virtualisierungshost wird zum Beispiel Audio häufig nicht gebraucht. Es wäre also dann ratsam die Soundkarte im BIOS zu deaktivieren. Ähnliches gilt für COM oder serielle Ports. Solltest du keine Grafikkarte oder andere Steckkarte die einen hohen PCI-Express Standard benötigt eingebaut haben, könntest du auch die PCIe Steckplätze z. B. von Version 4 auf 3 reduzieren. Auch dies spart gern mal das eine oder andere Watt.
ASPM aktivieren
ASPM steht für Active State Power Management und ist eine Technologie, die in Computern verwendet wird, um die Energieeffizienz von PCIe-Verbindungen zu verbessern. PCIe ist ein Hochgeschwindigkeits-Interface, das in Computern genutzt wird, um verschiedene Hardwarekomponenten wie Grafikkarten, Netzwerkkarten oder SSDs anzuschließen. ASPM zielt darauf ab, den Stromverbrauch von PCIe-Geräten zu reduzieren, indem es den Energieverbrauch in den Verbindungsleitungen zwischen der CPU (oder dem Chipsatz) und den angeschlossenen PCIe-Geräten dynamisch anpasst. Dies geschieht durch das automatische Umschalten zwischen verschiedenen Leistungszuständen, abhängig von der Auslastung und den aktuellen Anforderungen.
CPU Stromsparfunktionen aktivieren
Aktiviere im BIOS immer die C-States. Je nach Hersteller und Version solltest du bis zu C10 aktivieren können. Sei aber beruhigt wenn dein BIOS nur bis z. B. C6 konfigurierbar ist, viel Potential lässt du damit nicht liegen.
C-States
Was sind C-States
C-States, oder CPU-Schlafzustände, sind Zustände, in die eine CPU (Central Processing Unit, oder Zentraleinheit) eintreten kann, wenn sie nicht aktiv genutzt wird. Sie sind ein Teil der Leistungssteuerungsfunktionen moderner CPUs und dienen dazu, den Stromverbrauch zu reduzieren, wenn die volle Leistung der CPU nicht benötigt wird.
Es gibt verschiedene C-States, von C0 bis Cn (wobei n je nach Prozessor variiert). Hier sind einige der häufigsten:
- C0: Dies ist der Zustand, in dem die CPU aktiv ist und Aufgaben ausführt.
- C1: Dies ist ein leichter Schlafzustand, in dem die CPU schnell in den aktiven Zustand zurückkehren kann. In diesem Zustand ist die CPU nicht aktiv, aber sie kann schnell wieder in den Betrieb versetzt werden.
- C3: Dies ist ein tieferer Schlafzustand, in dem die CPU mehr Zeit benötigt, um in den aktiven Zustand zurückzukehren. In diesem Zustand werden mehr Teile der CPU abgeschaltet, was zu größerer Energieeinsparung führt.
- C6: Dies ist ein noch tieferer Schlafzustand, in dem die CPU fast vollständig abgeschaltet wird. Die CPU benötigt die längste Zeit, um aus diesem Zustand wieder in den aktiven Zustand zurückzukehren, aber es wird auch die meiste Energie gespart.
Der Wechsel zwischen diesen Zuständen wird automatisch vom Betriebssystem und der Hardware gesteuert, basierend auf der aktuellen CPU-Last und den Energieeinstellungen des Systems.
Anstreben sollte man immer den C10 Status. Bei einem Proxmox Server wirst du das aber wahrscheinlich nicht schaffen. Das System ist ja meistens dafür ausgelegt die ganze Zeit zu arbeiten. Vor allem wenn man viele virtuelle Maschinen oder LXC laufen lässt.
Mit powertop die C-States überprüfen
„powertop“ ist ein großartiges Linux Kommando mit dem du die C-States deines Servers überprüfen kannst. Gehen diese wie in diesem Beispiel nur bis zu C3, wird weiterhin viel Energie „unnötig“ verbraucht.
Häufig sind es PCI-Express Gerät die weitere C-States nicht erlauben. Mit dem Befehl
lspci -vv | awk '/ASPM/{print $0}' RS= | grep --color -P '(^[a-z0-9:.]+|ASPM )'
kannst du überprüfen ob für ein PCIe Gerät ein Active-State Power Management (ASPM) verfügbar ist. Sollte hier ein disabled dabei stehen, ist entweder die Funktion im BIOS deaktiviert oder das Gerät unterstützt diesen Modus nicht. Gerade ältere Geräte oder Enterprise Hardware wie 10G-Karten können hier ein Problem darstellen.
CPU runter Takten lassen um Proxmox Strom sparen zu lassen
Proxmox hat per default sämtliche Stromsparfunktionen deaktiviert. Diese zu aktivieren ist offiziell nicht supportet, aber natürlich funktionieren diese Systeme weiterhin. Bitte beachte, dass diese Funktion auch dazu führen kann, dass das System träger reagiert, weil Komponenten erst aufgeweckt werden müssen.
Um zu überprüfen auf welchen Modus die CPU steht, kannst du folgenden Befehl nutzen:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Hier bekommst du für jeden CPU-Kern eine Zeile zurück geliefert. Im Standard steht hier überall „performance“. Wenn du jetzt
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
verwendet, siehst du auf welcher Frequenz deine CPU Kerne derzeit arbeiten. Um diese runter takten zu lassen sollte der „scaling_govenor“ auf „powersafe“ gestellt werden. Das kannst du einmalig mit
echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
durchführen. Allerdings wird berichtet, dass bei Neustart oder Updates das wieder zurück gesetzt wird. Entsprechend habe ich mir den Befehl in die crontab eingetragen, dass dieser Befehl bei jedem reboot durchgeführt wird.
Dazu gehst du mit
crontab -e
in die Crontab Datei. Ggf. wirst du gefragt mit welchem Editor du diese öffnen möchtest. Ich empfehle dir hier „nano“.
Anschließend trägst du ganz unten folgendes ein
@reboot echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Die Datei kannst du dann mit STRG+X beenden. Bei Nachfrage ob du speichern möchtest, solltest du das natürlich bestätigen.
Anschließend kannst du mit den oben genannten Befehlen deine Eingaben überprüfen. Bei mir sieht das zur Zeit so aus:
Meine derzeitigen Einstellungen des CPU govenor und scaling
{:.figcaption}
Zusatztipp
Versuche immer BIOS und alle Treiber auf den aktuellen Stand zu bringen. Auch neue Kernel-Versionen bringen häufig Verbesserungen im Bereich des Stromverbrauches. Es ist also auch hierfür ratsam seine Systeme in einem anständigem Zeitrahmen zu patchen.
Fazit
Ich habe diese Dinge selbst beachtet und konnte mit meinem Proxmox Strom sparen. Bei mir konnte ich den Verbrauch meine Servers von 36 Watt auf 24 Watt verringern. Das hört sich zwar erst einmal nicht viel an, sind aber bei uns derzeit auch knapp 52,56 Euro im Jahr. Kleinvieh macht schließlich auch Mist.
Die geeignet Hardware zu finden ist nicht immer einfach. Du kannst dich oben an der Liste aus dem Hardwareluxx-Forum orientieren. Andernfalls sind die Mitglieder im Unraid Forum (vor allem in deutschen Bereich) auch immer sehr daran interessiert ein paar Watt zu sparen. Hier kannst du auf die Suche nach guten Kombinationen für Hardware ausschau halten. Auch wenn Unraid nicht die typische Software für Virtualisierung ist.