Energieverbrauch von Software und Betriebssystemen

Energieverbrauch von Software und Betriebssystemen

Motivation

Wie das Umweltbundesamt(UBA) auf dem 36c3 mitteilte, wurde mit Beschluss vom Dezember 2019 die Umweltauszeichnung "Blauer Engel" auch für Software eingeführt.

Dabei hat das UBA Kriterien und Methodik entwickelt, um die Umwelt- und Klimafreundlichkeit von Software zu beurteilen. Diese wird im Abschlussbericht des UBA beschrieben. Dabei spielt der Energieverbrauch von Software eine wesentliche Rolle (wobei streng genommen nicht die Software Energie verbraucht, sie weist aber die Hardware an Tätigkeiten auszuführen und damit Energie zu verbrauchen.)

Das UBA hat zunächst nur einzelne Anwendungsprogramme getestet, das darunter liegende Betriebssystem aber nicht beachtet. Dabei kann das Betriebssystem und die vorhandenen Standardbibliotheken einen wesentlichen Einfluss auf den Energieverbrauch haben. In der vorliegenden Arbeit wurden daher Messungen des gesamten Betriebssystems inklusive einer Anwendung vorgenommen.

Methodik

Hardware

Um vergleichbare Ergebnisse zu bekommen muss die Hardware so identisch wie möglich sein. Die Virtualisierung bietet die Möglichkeit, identische virtuelle Maschinen (VM) - also simulierte Hardware - zu  erstellen und diese bei Bedarf zu klonen.

Das physikalische Hostsystem war für alle Systeme dasselbe: ein Intel Core i3-2120 mit 10 GB RAM. Das Betriebssystem war ein GNU/Linux System auf Basis von Arch Linux. Es wurde sichergestellt, dass keine dynamischen Prozesse liefen, die plötzlich Ressourcen anfordern konnten und somit das Ergebnis verfälschen können.

Als Virtualisierungssoftware wurde qemu-kvm mit libvirtd als Middleware gewählt. Die Erstellung und Ausführung der VM wurde mit dem Programm virt-manager vorgenommen.

Für die VM wurde identische, virtuelle Hardware gewählt: 2 Prozessor-Kerne mit 4 GB RAM und eine SATA-Festplatte. Die Auflösung des grafischen Oberfläche wurde zwecks Vergleichbarkeit für alle Systeme auf 1024x768 eingestellt.

Messsoftware

Unter Linux steht folgende Software zur Erfassung von Energieverbrauch zur Verfügung: powertop,  cpu-energy-meter, powergadget und s-tui. Letztere 3 sind dabei fähig, den Running Average Power Limit (RAPL) von Intel CPUs auszulesen. RAPL steht leider nur für Intel CPUs zur Verfügung.

Am geeignetsten hat sich dabei das Tool powergadget erwiesen, welches von Intel selbst stammt.

Die Messungen wurden dabei nicht in der VM selbst, sondern auf dem physikalischen Host ausgeführt.

Getestete Software / Betriebssysteme

Für alle Systeme gilt: Es wurde immer die Standardinstallation verwendet und es wurden keine Optimierungen vorgenommen, die über Abfragen bei der Installation hinaus gingen.

Windows 10

Es wurde eine Standardinstallation von Windows 10 1903 Home durchgeführt. Alle Fragen zur Datenerfassung wurden negativ beantwortet, darüber hinaus wurden jedoch keine Optimierungen vorgenommen, um Telemetrie oder andere Hintergrund-Tätigkeit zu verhindern. Es wurde ein so genanntes Offline-Konto verwendet, kein Microsoft-Konto

Linux/Unix

Es wurden folgende unixoide Betriebssysteme getestet:

  • Debian 10 (mit MATE Desktop)
  • GhostBSD (mit MATE Desktop)
  • OpenBSD (mit MATE Desktop)
  • Antix (runit Variante, mit IceWM)

Der MATE Desktop wurde gewählt, weil er relativ ressourceneffizient ist, eine weite Verbreitung hat und auf allen unixoden Systemen verfügbar ist. Mit Antix wurde eine Linux-Distribution für ressourcenschwache Computer mit dem schlanken Window-Manger IceWM gewählt um zu sehen, ob die Verwendung eines solchen schlanken Systems auch Vorteile im Energieverbrauch hat.

Browser

Hier wurde der Firefox Webbrowser ausgewählt, weil er für alle Systeme verfügbar ist.

Mess-Szenarien

Es wurden für jedes System mindestens 3 Messungen für folgende Szenarien durchgeführt:

  • System in Inaktivität: Das System ist gestartet,jedoch werden keinerlei Anwendungsprogramme ausgeführt und keine Eingaben vorgenommen. Die Messdauer betrug jeweils 10 Minuten
  • Webbrowser spielt ein Youtube-Video ab: Im Webbrowser wurde ein HD-Video  von Youtube mit 720p abgespielt (der freie Animationsfilm "Big Buck Bunny"). Währenddessen wurde ein 10-minütige Messung vorgenommen. Nach jeder Messung wurde der Browser-Cache geleert.

Insgesamt wurden 38 Messungen über je 10 Minuten durchgeführt.

Ergebnisse

Hostsystem

Zunächst wurden Messungen am physikalischen Hostsystem ohne laufende VM vorgenommen, um festzustellen, wie viel Energie das System selbst verbraucht. Der gemittelte Wert betrug hier 576 mWh für 10 Minuten.

Windows 10 Home 1903

Anmerkung: Bedingt durch zahlreiche Hintergrundaktivitäten (AV-Scanner, Telemetrie) lieferte Windows die ungleichmäßigsten Ergebnisse von allen Betriebssystemen. Daher wurden für dieses System die meisten Messungen durchgeführt, um einen möglichst nahe an der Realität liegenden mittleren Wert zu erhalten

Inaktivität (ohne aktive Anwendungsprogramme und Eingaben)

Die Messergebnisse lieferten hier einen mittleren Wert von  1053 mWh für 10 Minuten. Dies ist der mit Abstand höchste Wert für alle OS für den inaktiven Zustand. Die Bandbreite betrug hier 1029 - 1078 mWh.

10 Minuten Youtube HD Video in Firefox

Die Messergebnisse lieferten hier einen mittleren Wert von  3223 mWh. Die Bandbreite war hier stark schwankend, zwischen 2870 und 3838 mWh.

Debian 10 mit MATE Desktop

Inaktivität (ohne aktive Anwendungsprogramme und Eingaben)

Die Messergebnisse lieferten hier einen mittleren Wert von  601 mWh für 10 Minuten. Dies ist der niedrigste Wert für alle OS für den inaktiven Zustand. Die Bandbreite betrug hier 599 - 601 mWh.

10 Minuten Youtube HD Video in Firefox

Die Messergebnisse lieferten hier einen mittleren Wert von 2759 mWh. Die Bandbreite lag zwischen 2741 und 2796 mWh.

Antix-runit mit IceWM

Inaktivität (ohne aktive Anwendungsprogramme und Eingaben)

Die Messergebnisse lieferten hier einen mittleren Wert von  612 mWh für 10 Minuten. Die Bandbreite lag zwischen 598 und 621 mWh.

10 Minuten Youtube HD Video in Firefox

Die Messergebnisse lieferten hier einen mittleren Wert von 2625 mWh. Dies ist der niedrigste Wert für 10 Minuten Youtube. Die Bandbreite lag zwischen 2586 und 2654 mWh.

OpenBSD 6.6 mit MATE Desktop

Inaktivität (ohne aktive Anwendungsprogramme und Eingaben)

Die Messergebnisse lieferten hier einen mittleren Wert von 632 mWh für 10 Minuten. Die Bandbreite lag zwischen 630 und 634 mWh.

10 Minuten Youtube HD Video in Firefox

Die Messergebnisse lieferten hier einen mittleren Wert von 3880 mWh.  Dies ist der höchste Wert für 10 Minuten Youtube. Die Bandbreite lag zwischen 3793 und 3971 mWh.

GhostBSD 19.10 mit MATE Desktop

Inaktivität (ohne aktive Anwendungsprogramme und Eingaben)

Die Messergebnisse lieferten hier einen mittleren Wert von 645 mWh für 10 Minuten. Die Bandbreite lag zwischen 635 und 660 mWh.

10 Minuten Youtube HD Video in Firefox

Die Messergebnisse lieferten hier einen mittleren Wert von 2965 mWh. Die Bandbreite lag zwischen 2957 und 2978 mWh.

Zusammenfassung und Fazit

Ergebnis

Szenario Win 10 Debian 10 Antix OpenBSD GhostBSD
Inaktiv 1053 601 612 632 645 mWh/10m
Youtube 3223 2759 2654 3880 2965 mWh/10m

Schlussfolgerung

Da ich die Messreihe als Privatperson durchführte und mir kein Labor zur Verfügung steht, ist die Datenbasis nicht sehr umfangreich. Dennoch erlaubt das Ergebnis eine erste Einschätzung.

  • Windows 10 braucht im Ruhezustand mit Abstand am meisten Energie. Dies war zu erwarten, da Windows zahlreiche Hintergrundaktivitäten ausführt. Microsoft als beherrschender Marktführer arbeitet eng mit Hardware-Herstellern zusammen (und tritt teilweise selbst als solcher auf), daher ist davon auszugehen, dass Windows intern alle energiesparenden Möglichkeiten ausnutzt. Die schiere Menge an Hintergrundaktivitäten konterkarieren jedoch diese technischen Möglichkeiten. Aus ökologischer Sicht ist Windows daher nicht zu empfehlen.
  • Linux mit dem MATE Desktop hat sich am Energie- und daher auch als am Umwelt- und Klimaschonendsten heraus gestellt. Die Ergebnisse deuten darauf hin, dass der Energiespar-Effekt unter Aktivität noch gesteigert werden, wenn ein schlankes System mit wenig Hintergrund-Prozessen und ein schlanker Window Manager genutzt wird. Dies wäre aber durch weitere Messungen mit anderen schlanken Linux-Systemen noch zu verifizieren. Anders herum ist zu erwarten, dass der Energiebedarf steigt, wenn eine ausgewachsene 3D Desktop Umgebung genutzt wird, dies wurde jedoch nicht getestet.
  • GhostBSD (und damit FreeBSD) folgt dicht hinter Linux, was die Energie-Sparsamkeit angeht, kommt aber nicht ganz ran. Möglicherweise könnte es mit Optimierungen gelingen, mit Linux gleich zu ziehen.
  • OpenBSD ist im inaktiven Zustand etwa gleichauf mit Linux. Bei CPU-lastiger Aktivität steigt der Energieverbrauch aber rasant an und übetrifft sogar den von Windows 10. Dies ist vermutlich darauf zurück zu führen, dass OpenBSD Sicherheit als primäres und nahezu einziges Ziel hat und Performance eine niedrigere Priorität einräumt. Dies gilt dann auch für die Energie-Performance. Aus Sicht der IT-Sicherheit ist dies verständlich. Aus ökologischer Sicht aber ist OpenBSD als Desktop-System nicht zu empfehlen.

Aus ökologischer und klimapolitischer Sicht ist GNU/Linux das geeignetste Betriebssystem. Auch FreeBSD ist noch vertretbar. Aber auch bei diesen Systemen ist darauf zu achten, nicht zu viele (Hintergrund-)Prozesse auszuführen.