PowerTOP
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
PowerTOP 🇬🇧 ist ein Werkzeug für die Kommandozeile, welches den Energieverbrauch des Systems analysiert und darauf basierend bei mobilen Computern (Laptops, Netbooks) Vorhersagen zu Akkulaufzeit macht.
Man kann mit diesem Programm auch für bestimmte Geräte das automatische Energiemanagement des Linux-Kernels aus- oder einschalten.
Das Programm in der Version 2.x macht selber keine Vorschläge zur Optimierung des Energiehaushalts eines Rechners. (Die frühere Version 1.x hatte einen anderen Anspruch, ist aber veraltet und obsolet.)
Installation¶
Folgendes Paket muss installiert werden[1]:
powertop
Befehl zum Installieren der Pakete:
sudo apt-get install powertop
Oder mit apturl installieren, Link: apt://powertop
Benutzung¶
PowerTOP benötigt Root-Rechte[3] und wird im Terminal mit folgendem Befehl gestartet[2]:
sudo powertop OPTIONEN
Mögliche OPTIONEN beim Programmstart erklärt folgende Tabelle.
Startparameter von PowerTOP 2.9 oder neuer | ||
Option | Beschreibung | |
--debug | Debug-Modus (nur zur Fehlersuche) aktivieren. | |
-V | --version | Versionsinformationen ausgeben und Programm beenden. |
-c | --calibrate | Powertop im Kalibriermodus ausführen. Der Rechner sollte während der Kalibrierung nicht genutzt werden. Dauert bis zu einer Stunde! |
--extech[=devnode] | Einen externen Leistungsanalysator der Fa. Extech ("Extech Power Analyzer") für die Messungen verwenden. | |
-r | --html[=DATEINAME] | Einen HTML-Bericht erstellen. Dateiname wird powertop.html, sofern nicht explizit angegeben. |
-C | --csv[=DATEINAME] | Einen CVS-Bericht erstellen. Dateiname wird powertop.csv, sofern nicht explizit angegeben. |
-t | --time[=DAUER] | Die Messungen für die angegebene DAUER in Sekunden durchführen. Vorgabe 20. |
-i | --iteration[=ANZAHL] | Angabe, wie oft die Tests durchgeführt werden sollen. Vorgabe 1. |
-w | --workload[=DATEINAME] | Datei zur Lasterzeugung |
--auto-tune | Konfiguriert alle Verbraucher auf automatische Energieverwaltung oder schaltet sie ganz aus. | |
-q | --quiet | Ausgabe auf stderr unterdrücken |
--help | Hilfemenü anzeigen und Programm beenden. | |
-s | --sample[=ABSTAND] | Intervall in Sekunden zwischen zwei Messpunkten |
Das Programm läuft entweder im automatischen oder interaktiven Modus.
Im automatischen Modus gibt man beim Start über die Optionen vor, wie oft die Testreihe ausgeführt wird, wie lange sie jeweils dauert und wie oft währenddessen die Leistung gemessen werden soll. Optional kann auch noch ein Programm zur Belastung des Systems vorgegeben werden. Dieser Modus macht nur Sinn, wenn man sich auch einen Bericht ausgeben lässt und/oder einen Leistungsanalysator an das System anschließt.
Den interaktiven Modus erreicht man ohne die Angabe von Optionen. In diesem kann man die Anzeige des Programms mit Tastendrucken gemäß folgender Tabelle beeinflussen.
Steuerung in interaktiven Modus | |
Tatze | Wirkung |
← , ↑ , Bild ↑ , Bild ↓ , ↓ , → | Scrollen |
Tab ⇆ , ⇧ + Tab ⇆ | Reiter wechseln. |
R | Anzeige aktualisieren. |
S | Intervall für automatische Aktualisierung einstellen. |
, ⏎ | Ausgewählte Aktion aktivieren. |
Q , Esc , Strg + C | Programm beenden. |
Übersicht¶
Übersicht |
Nach dem Start kann es etwas dauern, bis alle Daten geladen sind und die Übersicht angezeigt wird.
In der ersten Zeile werden die PowerTOP Version und sechs Reiter angezeigt:
Übersicht ("Overview")
Untätigkeits-Statistik ("Idle Stats")
Frequenz-Statistik ("Frequency Stats")
Geräte-Statistik ("Device Stats")
Einstellungen ("Tuneables")
Aufwachvorgänge ("WakeUp")
Das Programm verhält sich leicht unterschiedlich, je nachdem der Rechner vom Netz mit Energie versorgt oder mit dem Akku betrieben wird. Bei Anwahl des Reiters Übersicht steht in der ersten Zeile:
Bei Akku-Betrieb wird die vom Akku gelieferte Leistung angezeigt.
Bei Netzbetrieb wird die einzeilige Zusammenfassung von Aufwach-/GPU-/VFS-Vorgängen pro Sekunde und CPU-Auslastung angezeigt.
Darunter befindet sich die Darstellung der einzelnen Prozesse mit Auslastung der CPU, Anzahl der Aufwachvorgänge pro Sekunde, Art und Beschreibung.
Hinweis:
Die in der ersten Spalte "Power est." bzw. „Energie ca.“ angezeigten geschätzten Leistungsaufnahmen sind reine Umrechnungen aus Starthäufigkeit und Laufzeit der Prozesse. Die Werte haben in der Regel nichts zu tun mit einem realen Leistungsbedarf des jeweiligen Prozesses.
Leerlauf- und Frequenzstatistik¶
Leerlauf-Statistik |
Frequenz-Statistik |
Auf diesen beiden Reitern wird die Verweildauer des Prozessors in verschiedenen Energiesparmodi (C-States 🇩🇪) und der Verlauf der Prozessortaktung angezeigt.
Hinweis:
Die Verweildauer zu den Frequenzstatistiken wird ggf. nicht korrekt angezeigt. Die Verweildauer zu den C-States scheint jedoch zu funktionieren. (Beleg?)
Geräte-Statistik¶
Geräte-Statistik |
Diese Ansicht zeigt, wie stark ein Gerät ausgelastet ist. Dies kann leicht mit der Bildschirm-Helligkeit getestet werden.
Hinweis:
Die Anzeige der CPU-Auslastung deckt sich nicht mit der anderer Werkzeuge wie dem System Monitor.
Automatische Anpassungen¶
PowerTOP kann mit der Option "--auto-tune
" alle möglichen Optimierungen automatisch aktivieren. Diese Option ist nützlich zur Abschätzung des überhaupt mit den durch PowerTOP ermöglichten Maßnahmen realisierbaren Einsparpotentials.
sudo powertop --auto-tune
Man sollte sich bewusst sein, dass die Einstellungen für „minimalen Energieverbrauch“ nicht mit den Einstellungen für „bequeme und optimale Bedienbarkeit“ übereinstimmen müssen und es in aller Regel auch nicht sind. Beispielsweise werden mit "--auto-tune
" auch USB-Geräte wie Maus und Tastatur auf minimalen Energieverbrauch optimiert, was zu Nutzungsverzögerungen führen kann. Erst nach einem Tippen oder Klicken reagieren diese wieder. Die betroffenen Geräte können manuell wieder zurückgesetzt werden.
Temporäre Anpassungen¶
Einstellungen |
In PowerTOP können verschiedene Anpassungen unter Einstellungen und Aufwachvorgänge getestet werden. Mit der Taste ⏎ kann für die jeweilige Einheit das automatische Energiemanagement einfach aktiviert („gut“) oder auch wieder deaktiviert („schlecht“) werden. Bei Hardware ohne eingebautes Energiemanagement funktioniert das natürlich nicht, dagegen hilft nur der Austausch gegen modernere Hardware.
Hinweis:
Die von PowerTOP hier verwendete Sprechweise „gut/schlecht“ bzw. "good/bad" darf nicht wertend verstanden werden!
Die Bezeichnung „schlecht“ bedeutet lediglich, dass die betreffende Einheit nicht dem automatischen Energiemanagement des Linux-Kernels unterliegt während die Bezeichnung „gut“ besagt, dass die betreffende Einheit eben automatisch vom Kernel situationsabhängig aus- und eingeschaltet wird.
Mit einer Beschreibung als „schlecht“ ist keine Empfehlung verbunden, für diese Einheit das Energiemanagement des Linux-Kernels einzuschalten. Man kann es aber versuchen und die eigenen Erfahrungen dann als Entscheidungsgrundlage verwenden.
Die über PowerTOP vorgenommenen Änderungen werden nicht gespeichert. Aus einem HTML-Report erfährt man aber auch die zur jeweiligen Maßnahme gehörenden Befehle:
sudo powertop --html=powertop.html
Achtung!
Die Berichte von PowerTOP können vertrauliche Informationen des Systems enthalten und müssen deshalb vor einer Weitergabe darauf überprüft und ggf. bereinigt werden!
Dem erzeugten HTML-Report entnimmt man die von PowerTOP benutzten Befehle für die einzelnen Einstellungen und integriert diese in ein eigenes Skript wie im folgenden Anschauungsbeispiel, welches nicht zur Ausführung vorgesehen ist:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #!/bin/bash echo Dies ist nur ein Anschauungsbeispiel und nicht zur Ausführung vorgesehen! echo Skript ist vor der Anwendung unbedingt an die eigene Hardware anzupassen! exit 1 ## radeon powersave ## echo profile > /sys/class/drm/card0/device/power_method echo auto > /sys/class/drm/card0/device/power_profile ## Kernel ### echo 0 > /proc/sys/kernel/nmi_watchdog echo 0 > /proc/sys/kernel/watchdog ## VM ## echo 5 > /proc/sys/vm/laptop_mode echo 1500 > /proc/sys/vm/dirty_writeback_centisecs ## CPU ## 0 performance 1 powersave echo 1 > /sys/devices/system/cpu/sched_mc_power_savings echo 1 > /sys/devices/system/cpu/sched_smt_power_savings ## SATA Link Power Management ## for i in /sys/class/scsi_host/host[01234]/link_power_management_policy; do echo min_power >$i; done ## Intel Sound ## 30 = 30 s bis zum Standby des Chips. echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller echo 30 > /sys/module/snd_hda_intel/parameters/power_save ## Runtime PM for PCI Device find /sys/bus/pci/devices/*/power -name control -exec echo auto >{} \; for i in $(find /sys/devices/pci0000\:00/0* -maxdepth 3 -name control); do echo auto > $i; done ## USB ## Nicht generell zu empfehlen! Ruckeln bei Mäusen. #for i in /sys/bus/usb/devices/*/power/control; do echo auto >$i; done # Wake on LAN abschalten ethtool -s eth0 wol d exit 0 |
Welche konkrete Maßnahmen allerdings das Verhalten des eigenen Systems tatsächlich verbessern, muss individuell erprobt werden.
Sachgerechte Anwendung¶
Das Programm kann einfach gestartet werden, liefert dann aber nur grobe Hinweise. Laien sollten die Ausgaben nicht als absolute Wahrheiten ansehen und Fachleute sollten sie mit ihrem Fachwissen beurteilen.
Wer Wert auf zuverlässige Daten legt, muss das Programm wie im Handbuch "PowerTOP Users's Guide" beschrieben mehrfach unter kontrollierten Bedingungen starten und vorher auch eine Kalibrierung durchführen.
Dauerhafte Anpassungen¶
PowerTOP ist konzipiert als reines Analysewerkzeug und selbst nicht vorgesehen für dauerhafte Änderungen der Leistungseinstellungen. Wer selber Einstellungen vornehmen möchte, sollte sich ein Skript wie beispielsweise unter Temporäre Anpassungen beschrieben erstellen oder auch das hier folgende Skript verwenden.
Das Skript startet PowerTOP mit der Option --autotune
(siehe Automatische Anpassungen) und deaktiviert danach für alle USB-Geräte der Klasse "Human Interface Devices" ("HID") jeweils das Power-Management.
1 2 3 4 5 6 7 8 | #!/bin/bash powertop --auto-tune HIDDEVICES=$(ls /sys/bus/usb/drivers/usbhid | grep -oE '^[0-9]+-[0-9\.]+' | sort -u) for i in $HIDDEVICES; do echo -n "Enabling " | cat - /sys/bus/usb/devices/$i/product echo 'on' > /sys/bus/usb/devices/$i/power/control done exit 0 |
Das Skript muss mit Root-Rechten[3] ausgeführt werden. Man kann es kann auch mit einer Systemd-Unit oder per Cron beim Systemstart automatisch starten.
Die Systemd-Unit kann man aus diesem Gerüst entwickeln:
### Dieses Gerüst bedarf der individuellen Anpassung !!! [Unit] After = … Wants = … [Service] Type = oneshot RemainAfterExit = yes ExecStart = STARTBEFEHL [Install] WantedBy = multi-user.target
Bei Cron verwendet man als Zeitangabe
@reboot
in der Datei /etc/crontab.
Links¶
Intern¶
Extern¶
Projektseite 🇬🇧
PowerTOP Users's Guide 🇬🇧 – Dokumentation (PDF)
Quellcode 🇬🇧
PowerTOP 2.0 – Strom sparen unter Linux 🇩🇪 – heise Open Source, 06/2011
Energiesparen mit Powertop 2.0 🇩🇪 – Linuxuser 10/2012