staging.inyokaproject.org

PowerTOP

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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:

Wiki/Icons/terminal.png 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

./powertop2_overview.png
Ü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

powertop2_idlestats.png
Leerlauf-Statistik
powertop2_freqstats.png
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

./powertop2_devstats.png
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

./powertop2_tunables.png
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.

Intern

Extern

Diese Revision wurde am 25. März 2023 08:54 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, System