Ich achte bekanntlich stark darauf, den Stromverbrauch meines Homelabs im Idle-Zustand möglichst gering zu halten. Ich möchte hier einmal sammeln, worauf ich dabei achte und wie ich meine Hardware auswähle. Alles sind Tipps und nicht unbedingt allgemeingültig.
Monitoring
Der Stromverbrauch sollte mit z.B. einem Smart Plug überwacht werden, das ermöglicht auch das Erkennen von unerwarteten Erhöhungen Bisher messe ich den Stromverbrauch für das gesamte Lab, schöner wäre hier der Verbrauch pro Gerät. Dann könnte man z.B. anhand der CPU-Last sogar grob den Stromverbrauch pro Dienst berechnen. Ob ich das umsetze, weiß ich allerdings noch nicht, da jede weitere WLAN-Steckdose den Gesamtverbrauch wieder um ~1 Watt erhöht.
Hardware
Bevor zum Energie einsparen zusätzliche Hardware angeschafft werden soll, sollte man immer prüfen, ob sich die Stromersparnis im Vergleich zu den Anschaffungskosten überhaupt rechnet. Es kann sich auch lohnen, nicht ganz topaktuelle Hardware für deutlich weniger Geld zu kaufen. Bei einer Nutzungsdauer von x Jahren kann neuere Hardware durch den höheren Preis schnell mal die Stromersparnisse komplett aufheben bzw. auch übertreffen.
Weniger ist mehr
Jedes zusätzliche Gerät - also sowohl größere Geräte wie Router/Switch/Mini-PC als auch kleinere Geräte wie SSDs/HDDs - verbraucht Strom. Bei einem einzelnen RAM-Riegel oder einer NVMe-SSD ist der Unterschied marginal, bei einer HDD können das aber schnell mehrere Watt werden. Sofern hier z.B. mehrere HDDs zwecks Redundanz oder Kapazität benötigt werden, könnte man entweder möglichst große HDDs verwenden (um die Anzahl zu reduzieren), auf SSDs umsteigen oder z.B. ein externes NAS, das meistens im Standby ist, benutzen.
Auch ist es häufig besser, einen stärkeren Mini-PC als mehrere schwächere zu nutzen, das reduziert den “Overhead-Verbrauch” durch z.B. Mainboards, Netzteile, NICs und die weitere zusätzliche Hardware. Zwecks Redundanz können allerdings trotzdem mehrere Geräte sehr sinnvoll sein.
Generell sollte so wenig Hardware wie möglich verbaut werden, ich deaktiviere z.B. bei den Thin Clients auch den Audiochip. Das macht nicht viel aus, aber ist simpel zu machen.
Auf Severhardware eher verzichten
Serverhardware bringt meistens Management-Features wie eine integrierte KVM-Lösung (IPMI, ILO, IDRAC, …) mit. Das ist letztendlich ein kompletter weiterer Rechner, der im Server läuft, was natürlich wieder mehrere Watt an Strom zusätzlich verbraucht.
Passend dimensionieren
Beispielsweise benötigt ein Switch mit 48 Ports deutlich mehr Strom als ein Switch mit 8 Ports Das selbe gilt auch für Router und Server - alles sollte angemessen sein (im Zweifelsfall zum Ausbauen allerdings lieber etwas größer/leistungsstärker als eigentlich notwendig).
Neuer ist meistens besser (oder zumindest effizienter)
Vor allem bei Computern (und damit auch Servern bzw. Mini-PCs/Thin-Clients) sind modernere Geräte meistens energieeffizienter. Der Fujitsu Futro S740 braucht z.B. grob die Hälfte an Strom wie der Futro S720, obwohl der S740 deutlich mehr Rechenleistung besitzt. Bei Desktop-Hardware sollte man allerdings beachten, dass Mainboards und Netzteile alleine schon mehrere Watt verbrauchen, weshalb Mini-PCs häufig die bessere Wahl sind, wenn man auf den IO verzichten kann.
Effiziente Netzteile nutzen
Selbsterklärend.
10G Ethernet via RJ45 vermeiden
Für Netzwerkverbindungen mit 10G sollten bevorzugt entweder DACs verwendet werden, alternativ ist auch Glasfaser deutlich effizienter als 10G über RJ45.
Switches mit integriertem POE nutzen
“Sofern mehrere PoE-Geräte genutzt werden, ist es meistens besser, einen Switch mit PoE zu nutzen, statt jedes Gerät mit einem eigenen Injektor zu versehen.
Geräte nicht dauerhaft betreiben
Wenn ein NAS z.B. nur sporadisch genutzt wird, muss es auch nicht dauerhaft laufen. Automatischer Standby plus Wake on LAN hat sich bei mir als Betriebsmodus bewährt. Ein Rechner im Standby verbraucht natürlich auch einige wenige Watt, aber dafür ist das Gerät nach dem Aufwecken auch innerhalb von Sekunden verfügbar.
Auch kann man überlegen, ob man im Homelab permanent die komplette Power braucht oder einzelne Hosts nur bei Bedarf einschaltet.
Displays abstecken
Sofern ein Display am Server angeschlossen ist (selbst wenn es hinter einem KVM-Switch o.ä. ist), ist die integrierte GPU aktiv. Das kostet Strom.
Software
CPU-Governor
Der Govenor gibt an, anhand welcher Parameter und wie schnell der CPU-Takt angepasst wird. Die gängigsten sind:
powersave
: Nutzt dauerhaft niedrigsten Takt, nicht empfohlenperformance
: Nutzt dauerhaft höchsten Takt, nicht empfohlenondemand
: Passt den Takt laufend an die aktuelle CPU-Auslastung anconservative
: Ähnlich zuondemand
, allerdings etwas “ruhiger” im Scaling-Verhalten
C-States
Moderne CPUs können die Leistung und damit auch die Stromaufnahme senken, das sind sogenannte C-States. Höhere States sind dabei effizientere Betriebsmodi. Mit Tools wie powertop
lässt sich prüfen, ob die CPU C-States außerhalb von 0 erreicht. Wenn nicht, sollte einerseits im BIOS geprüft werden, ob C-States (teilweise versteckt sich das hinter Einstellungen bzgl. Energieverwaltung) aktiv sind, andererseits müssen auch die angeschlossenen Geräte auf die Unterstützung geprüft werden. Bei PCIe ist das beispielsweise ASPM
.
Container statt VMs
Container (Docker oder auch LXC in Proxmox) sind leichtgewichtiger als VMs, sorgen dadurch für eine geringere CPU-Auslastung, was wiederum den Stromverbrauch geringer hält.
Proxmox-VMs
Bei VMs in Proxmox ist es sinnvoll, use tablet as pointer
in den Optionen zu deaktivieren. Das erschwert die Bedienung über die Webkonsole deutlich, lässt sich aber auch jederzeit ohne Neustart wieder aktivieren. Das Deaktivieren der Option spart CPU-Last ein.
Generelle CPU-Last
Höhere CPU-Last bedeutet mehr Stromverbrauch. Ganz einfach. Je geringer die durchschnittliche Auslastung ist, desto besser. Mehr laufende Dienste bedeuten also eigentlich immer einen höheren Stromverbrauch.
Effiziente Software auswählen
Ich habe dazu gerade kein konkretes Beispiel. Ich achte aber auch auf den Ressourcenbedarf, wenn ich Software zum Selbsthosten auswähle.
ZRAM nutzen
ZRAM ist im Grunde komprimierter SWAP im RAM, was einerseits performanter ist und andererseits Lese-/Schreiboperationen auf dem Datenträger einspart.
Inkrementelle Backups statt Vollbackups
Viele Backuplösungen (z.B. Proxmox Backup Server, restic, …) können inkrementelle Sicherungen erstellen, also nur die seit dem letzten Snapshot geänderten Daten sichern. Das spart Zeit und Rechenleistung ein.
Dienste im Rechenzentrum betreiben
Manche Dienste lassen sich auf einem günstigen vServer effizienter betreiben als zuhause dafür Hardware und Strom zu bezahlen. Das ist allerdings immer eine Abwägungssache.