Linux gilt vielen Brachengrößen als umweltfreundlichstes Betriebssystem überhaupt. Dass die Akkulaufzeit eines IBM R60e-Notebooks mehr als eine halbe Stunde hinter der Laufzeit unter Windows herhinkte, stimmte dabei nachdenklich. Der Artikel geht dem Stromverbrauch auf die Spur und nennt die richtigen Stellschrauben, die Linux bis zu 20 Prozent sparsamer machen
Der Mehrverbrauch lässt sich nämlich nicht Linux allgemein in die Schuhe schieben, auf die richtige Paketzusammenstellung kommt es an. Den Stromhunger des Notebooks bedingt primär die verwendete Distribution Ubuntu 7.04. Die brachte – wie auch die Ubuntu-Vorgänger – eine veraltete Version der Laptop-Mode-Tools mit, die, zumindest mit dem genannten Centrino-Notebook, nicht funktionierte. Nach Einspielen und Konfiguration des Debian-Paketes unterschied sich der Stromverbrauch von Windows und Linux nur noch wenig, die Akkulaufzeit stieg auf ähnliche Werte, wie unter Windows. Wer sich einen schnellen Überblick zum Verbrauch des eigenen Laptops verschaffen will: Der Aufruf von “watch -n1 ‘cat /proc/acpi/battery/BAT0/*'” zeigt den Stromverbrauch eines Notebooks im Akkubetrieb kontinuierlich an.

Der Aufruf von watch -n1 ‘cat /proc/acpi/battery/BAT0/*” zeigt den Stromverbrauch eines Notebooks im Akkubetrieb kontinuierlich an
Vom Notebook bis zum Server
Lässt man Displays erst einmal außen vor, dann ist der größte Stromfresser eines Rechners meist die CPU. Jahrzehntelang lief die zentrale Recheneinheit stets auf vollen Touren. Unabhängig davon, ob die Maschine unter Vollast oder im Leerlauf arbeitete, nahm sie etwa die gleiche Leistung auf. Die zur Kühlung der CPU verwendeten Lüfter taten ein übriges zum unnötigen Stromfressen. Abhilfe schaffen seit einigen Jahren die von den Prozessorherstellern eingeführten Energiespartechniken Powernow oder Cool’n’Quiet (AMD) sowie Speedstep (Intel). Sowohl bei AMD- als auch Intel-CPUs sorgen eine abgesenkte Taktfrequenz und Spannung dafür, dass die CPU im Leerlauf weniger Strom aufnimmt.
Laut Kernel-Dokumentation unterstützt Linux die zugrunde liegende Anpassung der Taktfrequenz (Frequency-Scaling) bei folgenden CPUs: Den Notebook-Prozessoren AMD mobile K6, mobile Duron, mobile Athlon, manchen Intel mobile PIII und mobile PIII-M auf manchen Chipsets sowie Pentium M (Centrino). Unter den Desktop- oder Server-CPUs bieten AMD Opteron, Athlon 64, Intel Pentium 4 Intel Xeon sowie einige Cyrix-CPUs Sparpotential.
Mit den in den Kernel-Dokumenten noch nicht erwähnten Intel-Core-Duo-Prozessoren sowie manchen AMD-Sempron-Prozessoren funktioniert die Stromsparfunktion jedoch auch. Mit dem Blick auf die Daten der CPU ist es aber nicht getan: Außer der CPU muss auch das BIOS die Stromsparfunktionen unterstützen, was bei neueren Boards aber meist der Fall ist. Gerade aktuelle, schnelle CPUs nehmen im Stromsparmodus spürbar weniger Leistung auf, Frequency Governing sollte also immer wo es möglich ist, zum Einsatz kommen.
Theorie und Praxis
Aktuelle Linux-Distributionen laden die entsprechenden Kernelmodule, ohne dass sich der Administrator darum kümmern muss. “/sys/devices/system/cpu/cpu0/cpufrequ/scaling_governor” gibt Auskunft darüber, welcher Steueralgorithmus aktiv ist. Beim Performance-Governor läuft die CPU stets in der höchsten, bei “powersave” stets in der niedrigsten Leistungsstufe. “ondemand” und “conservative” sorgen dagegen für eine bedarfsgerechte Skalierung, “conservative” priorisiert Stromsparen gegenüber der Systemleistung. Soweit die Theorie.
Leider ist es noch nicht damit getan, sicherzustellen, dass das Betriebssystem die CPU-Frequenz regelt: Voraussetzung für eine nennenswerte Einsparung ist zudem, dass die CPU möglichst oft energiesparende Zustände erreicht. Dass dies selbst im Systemleerlauf nicht oft genug der Fall war, dafür sorgte in der Vergangenheit schon der 100-Hz-Takt des Timer-Interrupts im Kernel selbst.
Seit Kernel 2.6.21 beziehungsweise 2.6.23 bei der 64-Bit Architektur kommt der Kernel ohne konstanten Timer-Interrupt aus, der die CPU regelmäßig weckt, egal ob es auf dem System etwas zu tun gibt oder nicht. Leider ist der Kernel bei weitem nicht der einzige Störenfried des CPU-Schlafes: Viele Userspace-Programm oder Kernelmodule setzen teilweise recht hochfrequente Timer ein, etwa um regelmäßig Tastatureingaben abzufragen. Beim Aufspüren dieser potenziellen Ressourcenverschwender hilft die von Intel zur Verfügung gestellte Anwendung Powertop. Wie die Software funktioniert, und wie im Einzelfall ein Patchen und Neukompilieren von Anwendungen Abhilfe schafft, erklärt [1].
Wesentlich einfacher ist es, nicht benötigte Treiber zu entladen: “imb-acpi” aber auch viele Alsa-Soundkarten-Treiber sorgen für erhöhten Stromverbrauch.
In Rotation
Ein weiterer Großverbraucher neben der CPU sind die Festplatten: Unabhängig von Zugriffen verbraucht der Spindelmotor konstant Strom, solange die Platte sich nicht schlafen legt. “hdparm -S n /dev/hda” sorgt für ein Abschalten nach “n” Sekunden. Der Parameter
“-B” setzt den Stromsparmodus der Platte, bei der die Plattenfirmware die Spindow-Zeit regelt. “1” sorgt für maximales Sparen, “255” schaltet das Powermanagement ab.
Häufiges Abschalten der Festplatten ist nur auf Notebook sinnvoll: Das Wiederanlaufen der Platte dauert relativ lange, außerdem halten nur Notebook-Platten ständiges Ein- und Ausschalten aus: Laut Autor der Laptop-Mode-Tools überleben Desktop-Platten etwa 40.000 bis 50.000 Neustarts. Einmaliges Wiederanlaufen innerhalb von 10 Minuten würde daher die Lebensdauer im Dauerbetrieb auf weniger als ein Jahr reduzieren, während typische Notebook-Platten unter den gleichen Bedingungen sechs Jahre Dauerbetrieb überstehen [2]. Serverplatten sind auf Dauerbetrieb ausgelegt und überleben noch deutlich weniger Wiederanläufe.
Wie beim Leerlauf der CPU steckt auch beim Abschalten der Festplatten der Teufel im Detail: Auch nach Festlegen eines Spindown-Wertes schlafen die Platten auf einem nicht angepassten Linux-System so gut wie nie ein, da der Kernel das Zurückschreiben des Caches für optimale Performance auf viele kleine Schreibzugriffe verteilt. Der speziell für mobile Geräte entworfene Laptop-Mode verschiebt die Priorität in Richtung Stromsparen_ Ist er aktiv, fasst der Kernel kleine Schreibzugriffe zusammen, so dass die Chance eines Spindowns der Platten wächst. Steht in der von Root beschreibbaren Datei “/proc/sys/vm/laptop_mode” ein von Null verschiedener Wert, dann ist der Laptop-Mode aktiv.
Wichtig in diesem Zusammenhang ist die “dirty writeback time”, also die Zeit, die der Kernel höchstens wartet, bis er den Festplatten-Cache leert: Um die Gefahr eines Datenverlusts zu minimieren, steht unter “/proc/sys/vm/dirty_writeback_centisecs” normalerweise der Wert “500” (5 Sekunden), die Festplatte kommt also in der Praxis selten zur Ruhe. Je nach Sicherheitsbedürfnis bei Crashs kann der Administrator diesen Wert auf Notebooks stark erhöhen, beispielsweise auf 10 Minuten. Zu Bedenken ist, dass bei einem Systemstillstand sich die Platten noch auf dem Stand von vor 10 Minuten befinden. Dafür führt sogar das Speichern eines Dokuments, dessen Größe die des Plattencaches nicht übersteigt, nun nicht mehr zum Anlaufen der Platte.
Auch der Syslog-Daemon verhindert oft das Einschlafen der Platte, da er regelmäßig Logdaten schreibt und aus Sicherheitgründen dabei standardmäßig den Plattencache umgeht. Ein “-” zu Beginn eines Konfigurationseintrags in “/etc/syslog.conf” verbietet das Umgehen des Caches. Im Falle eines Absturzes gehen allerdings meist Daten verloren, die Aufschluss über die Ursache geben könnten. Zu den Programmen, die die Festplatte beschäftigen gehören auch noch Beagle oder der Update-Daemon für die Locate-Datenbank. HAL überwacht die in kurzen Intervallen, ob der Benutzer eine neue CD einlegt. “hal-disable-polling –device /dev/scd0” gewöhnt ihm diese Energieverschwendung ab. Für weniger Bewegung des Plattenkopfes und damit ebenfalls geringeren Energieverbrauch sorgt das Mounten der Dateisysteme mit der Option “noatime”.
Automatisiert
Für Ubuntu und Debian auf Laptops ist es ratsam, die Laptop-Mode-Tools für des Einschalten des Laptop-Modes und das Anpassen des Laufwerkscaches zu benutzen. Das Tools schaltet den Laptop-Mode in der Standardeinstellung lediglich im Batteriebetrieb ein und vergrößert zusätzlich die Wartezeit beim Zurückschreiben des Plattencaches. Auf Wunsch startet es auch den Syslog-Daemon mit veränderter Konfiguration neu. Auch die Stromsparfunktionen von Centrino-WLAN-Chips verwaltet die Software auf Wunsch.
Die Laptop-Mode-Tools beherrschen außerdem noch eine Menge weiterer Optimierungen, die unter der grafischen Oberfläche jedoch ein Gnome- oder KDE-Applet übernehmen, wie das Anpassen der Displayhelligkeit oder Autosuspend bei Inaktivität.
Ab Ubuntu 6.10 sind die Laptop-Mode-Tools auf Notebooks standardmäßig installiert, ab 7.10 auch in einer aktuellen Version. Sie sind jedoch in “/etc/default/acpi-support” aufgrund von bis heute nicht geklärten Systemstillständen deaktiviert. Unter Suse übernimmt der Powersave-Deamon die Aufgabe der Laptop-Mode-Tools. Allerdings achtet der Daemon dabei nicht auf die Writeback-Zeit des Plattencaches und ignoriert das WLAN-Gerät.
Funksignale
Beim Notebook IBM R60e spart derjenige zirka 1 Watt Leistung, also fast 10 Prozent,sder den WLAN-Chip “iwpriv eth1 set_power 7″ in den Energiesparmodus versetzt. Das WLAN funktioniert danach, von geringen Geschwindigkeitseinbußen abgesehen, unverändert. Manche Notebooks besitzen einen so genannten Killswitch, der den WLAN-Chip komplett abschaltet, wenn der Benutzer keine Funkverbindung braucht.
Bei einem Ipw3945-Chip führte die Benutzung des Kill-Schalters jedoch gelegentlich dazu, dass das WLAN gar nicht mehr funktionierte. Um diese Eventualität zu vermeiden ist es besser, stattdessen das (Ubuntu) WLAN-Kernelmodul zu entladen, beispielsweise mit dem Befehl “modprobe -r ipw3945” für einen entsprechenden Centrino-Chip. Weitere Hardwarekomponenten, die beim Stromverbrauch spürbar zu Buche schlagen sind Bluetooth und der USB-Chip, auch hier spart das Entladen der Treiber Energie.

Die Stromspar-Applets von Gnome oder KDE so einzustellen, dass sie die Displayhelligkeit im Akkubetrieb reduzieren und im Leerlauf ausschalten, spart Strom.
Alle Einsparungen bei den Hardwarekomponenten bergen allerdings auf Notebooks zusammengenommen meist weniger Sparpotential als ein einfaches Dimmen oder Ausschalten der Displaybeleuchtung. Die Stromspar-Applets von Gnome oder KDE so einzustellen, dass sie die Displayhelligkeit im Akkubetrieb reduzieren und im Leerlauf ausschalten, sorgt daher gerade bei großen Displays in der Praxis für eine stärkere Verlängerung der Akkulaufzeit als aufwendige Tuningmaßnamen.
Tiefschlaf
Alle beschriebenen Aktionen zusammengenommen können auf Notebooks mit für Einsparungen im zweistelligen Prozentbereich sorgen. Auf Notebook-Hardware funktionieren auch Suspend to RAM und Suspend to Disk inzwischen meist reibungslos. Viel mehr bringt es, Server, deren Dienste nur zu bestimmten Zeit benötigt werden, beispielsweise während der normalen Arbeitszeit unter der Woche, automatisiert herunter- und wieder hochzufahren. Dies bereitet unter Linux jedoch nach wie vor Kopfzerbrechen. Einerseits sind nicht standardkonforme BIOS-Implementierung schuld. Warum es Linux in den Jahren, die der ACPI-Standard schon existiert, nicht gelungen ist, mit dem Status Quo zurechtzukommen, ist dennoch eine legitime Frage: Unter Windows XP oder Windows Server 2003 funktioniert das ACPI-Wakeup meist reibungslos.
Der Linux-Magazin-Artikel aus dem Jahr 2004 [3] beschreibt den Status Quo noch immer zutreffend: Bei Linux-ACPI funktioniert nach wie vor das Eintragen des Datums in den Bioswecker nicht. Der Rechner lässt sich also nur jeden Tag zur gleichen Zeit wecken, jedoch nicht über das gesamte Wochenende stillegen.
Einen Workaround bietet das Programm Nvram-wakeup: Es setzt nicht auf ACPI, sondern nutzt den BIOS-eigenen Wecker, den so gut wie alle neueren Motherboards zur Verfügung stellen. Die Software schreibt über das Nvram-Device in den nichtflüchtigen BIOS-Speicher und manipuliert so den normalerweise über das BIOS-Setup zu bedienenden Wecker. Das Verfahren, den CMOS-Speicher des Bios zu überschreiben verdient sicher die Bezeichnung “Hack”. Trotzdem läuft es auf dem debianbasierten Video-Disk-Rekorder des Autors seit über einem Jahr ohne Aussetzer. Die etwas umständliche Konfiguration, die vier Reboots voraussetzt, beschreibt der bereits genannte Artikel [3].
Während es also nach wie vor nicht zuverlässig gelingt, Systeme aus eigener Kraft auf dem Schlaf zu wecken, ist ein Szenario, in dem ein permanent laufender Rechner andere Maschinen über Wakeup on LAN einschaltet, leicht zu realisieren: Der Aufruf “ethtool -s eth0 wol g” bereitet eth0 auf dem über Wakeup on LAN zu startenden Rechner nach jedem Reboot vor. Auslösen lässt sich das langesteuerte Aufwecken mit den Tools Wol oder Etherwake.
Fazit
Wer unter Linux an den Stellschrauben dreht, die den Energieverbrauch regeln, sollte keine Wunder erwarten: Meist werden sich die Einsparungen im einstelligen oder, auf Notebooks, mit Glück im niedrigen zweistelligen Prozentbereich bewegen. Sinnlos ist es dennoch nicht, sich über Stromsparen nur mit Hilfe einer angepassten Systemkonfiguration Gedanken zu machen: Linux war in der Vergangenheit kompromisslos auf Systemleistung optimiert, was sich darin zeigte, dass es der Hardware viel Leistung abverlangte und damit typischerweise einen vergleichsweise hohen Stromverbraucht erzeugte. Aktuelle Systeme mit Kernel 2.6.22 verbrauchen im Leerlauf unter Umständen ohne weitere Anpassung ein paar Prozent weniger. Wer auf dem Notebook den seit langem im Kernel vorhandenen Laptop-Mode nutzt, das Cache-Verhalten anpasst und die Stromsparfunktionen des WLAN-Chip einsetzt, kann mit einer verlängerten Akkulaufzeit von einer halben Stunde aufwärts rechen.
|
Infos |
|---|
|
[1] Charly Kühnast, Powertop: [https://www.linux-magazin.de/heft_abo/ausgaben/2008/01/strom_abwaerts] |




