Energie sparen

So kommen Sie Stromfressern in Linux auf die Spur

Detailkontrolle und Feintuning: Mit dem Tool Powertop fühlen Sie potenziellen Stromfressern ganz genau auf den Zahn.

Mit den bisher genannten Bordmitteln und den TLP-Tools sind deutliche Einsparungen zu erzielen. Die weiteren Schritte sind Fein-Tuning am System und am Benutzerverhalten. Dabei hilft das sehr detaillierte Powertop, das neben der Analyse auch selbst aktiv mitwirken kann. Zahlreiche weitere technische Hilfsmittel nach dem Motto „Viel hilft viel“ sind aber nicht zu empfehlen: So gibt es etwa mit den Laptop-Mode-Tools ein alternatives Stromsparpaket zu TLP, das nicht parallel neben den TLP-Tools laufen sollte.


Kontrolle mit Powertop und Powerstat

Das Tool Powerstat wurde bereits im Zusammenhang mit TLP im vorangehenden Beitrag genannt. Es ist besonders geeignet, über einen gewissen Zeitraum den Einfluss geänderter Einstellungen (etwa Bildschirmhelligkeit oder Programmaktivitäten) auf den Stromverbrauch zu beobachten. Wenn Powerstat ohne Wartezeit sofort mit der Messung beginnen soll, verwenden Sie den Parameter powerstat -d 0 (also ohne „Delay“).

Ein weiteres wichtiges Analyse-Tool ist Powertop. Es ist auf Debian/Ubuntu-basierten Systemen mit

sudo apt-get install powertop

aus den Standard-Repositories zu beziehen. Das Kommandozeilen-Tool benötigt immer root-Rechte. Nach

sudo powertop

startet das Tool auf der Registerkarte „Übersicht“, und Sie erhalten in der obersten Zeile die aktuelle „Entladerate“ und die „verbleibende Zeit“, sofern das Gerät über Akku läuft. Unter „Übersicht“ zeigt Powertop ferner die Anzahl der Aufwachsignale, die alle laufenden Prozesse an die CPU senden. Powertop macht somit Programme ausfindig, die einen besonders hohen Energiebedarf haben. Die Anzahl der Aufwachvorgänge ist niemals null, aber je niedriger sie ausfällt, desto mehr Zeit können die Prozessorkerne in Stromsparmodi verbringen. Im Betriebsalltag sind mehrere Hundert Aufwachereignisse pro Sekunde normal. Ist nur das Terminal geöffnet, sollten sich diese auf 100 reduzieren. Mit der Tabulatortaste wechseln Sie zwischen den insgesamt fünf Anzeige-Registern. Die „Gerätestatistik“ zeigt, wie ausgelastet eingebaute Geräte wie der SATA-Controller oder die Hintergrundbeleuchtung des Bildschirms gerade sind.

Empfehlungen zur Systemkonfiguration gibt Powertop auf der letzten Registerkarte „Einstellbarkeit“, die aktivierte („Gut“) und deaktivierte Stromsparfunktionen („Schlecht“) zeigt. Mit Eingabetaste bei einer markierten Option lässt sich die betreffende Einstellung umschalten. Diese gilt dann für die weitere Sitzung, übersteht aber keinen Neustart. Mit dem Terminal-Befehl

sudo powertop --auto-tune

können Sie es Powertop automatisch überlassen, alle erreichbaren Funktionen zu optimieren. Danach stehen in der Regel alle oder fast alle Einträge auf „Gut“. Diesen Befehl geben Sie einmal am Beginn der Sitzung ein, wobei Sie ihn am besten durch ein Alias in der „.bashrc“ noch verkürzen. Der noch bequemere Autostart über die Datei „/etc/rc.local“ funktioniert leider nicht.

Kompliziert wird es, wenn powertop -auto-tune zu radikal ist und danach eine Komponente nicht mehr funktioniert. In diesem Fall hilft es, sich genau anzusehen, mit welchen Kommandos Powertune arbeitet. Diese offenbart es im HTML-Bericht, den Sie mit

sudo powertop -html

anfordern können, wonach eine Datei „powertop.html“ im aktuellen Verzeichnis entsteht. Beachten Sie, dass der Bericht nur für „schlechte“ Zustände den Korrekturbefehl anzeigt. Sie erhalten also nur dann die gesuchte Info, wenn die Einstellung vor dem Bericht auf „schlecht“ gesetzt ist. Im Besitz der nötigen Information lässt sich nun ein Mini-Script basteln – etwa:

#!/bin/bash
powertop --auto-tune
echo on > /sys/bus/usb/de vices/4-5/power/control

In unserem konkreten Beispiel deaktiviert „--auto-tune“ eine Funkmaus, was mit einer Dateiänderung umgehend wieder korrigiert wird. Der passende Dateieingriff ist im HTML-Report von Powertop zu recherchieren. Das Tuning-Script lässt sich zu Beginn der Sitzung etwa mit sudo sh [scriptname].sh starten.