Messung der Leistungsaufnahme unter Linux

Aus ThinkPad-Wiki

Einleitung

Zur Messung der Leistungsaufnahme bei Laptops werden die Informationen der Elektronik im Akkupack ausgewertet. Zur Bestimmung des aktuellen Ladezustands führt die Akkuelektronik über jeden Lade- und Entladevorgang Buch und mißt zu diesem Zweck laufend Akkustrom und -spannung.

Die ermittelten Daten werden regelmäßig an den Laptop übermittelt und lassen sich über das ACPI-BIOS abfragen. Das ACPI-BIOS führt allerdings bei der Ausgabe eine gleitende Mittelwertbildung durch, sodaß der echte Momentanwert nicht zugänglich ist. Nahezu alle für Linux und die verschiedenen Desktopumgebungen verfügbaren Programme zeigen diese ACPI-Werte an.

Bei ThinkPads besteht darüber hinaus die Möglichkeit, über das Kernelmodul tp_smapi direkt auf die Rohdaten des "Embedded Controller" zuzugreifen.

"Meßinstrumente"

Wichtig: aus der Einleitung folgt, daß eine Messung nur im Akkubetrieb möglich ist.

Powertop

Das beim Chiphersteller Intel entwickelte Programm Powertop steht in allen Distributionen über die Paketquellen zur Verfügung (Paketname powertop).

Hinweis: powertop ist mit Root-Rechten aufzurufen.

Neben dem aktuellem Verbrauch [W] und der Restlaufzeit [h] (Werte auf Basis des ACPI-BIOS) werden weitere prozessorbezogene Kenndaten angezeigt:

  • Verweildauer in den Schlafzuständen (C-States) [%]
  • Verweildauer in den Taktstufen (P-States) [%]
  • Wakeups [1/s]
  • Verursacher von Wakeups, d.h. Programme die den Prozessor aufwecken

tp_smapi

Der Weg über das Kernelmodul tp_smapi eignet sich besonders zur exakten Ermittlung des momentanen Verbrauchs (s.o.). Für den Hauptakku kann man den Wert über die Datei /sys/devices/platform/smapi/BAT0/power_now abfragen (für den Ultrabayakku ist BAT0 durch BAT1 zu ersetzen). Der Wert aus power_now ist in mW angegeben und hat ein negatives Vorzeichen, da Strom entnommen wird.

Für eine kontinuierliche Anzeige im Sekundentakt kann man folgendes Shell-Kommando verwenden (Abbruch mit Str+C):

while true; do cat /sys/devices/platform/smapi/BAT0/power_now; sleep 1; done

thinkwatt

thinkwatt zeichnet den zeitlichen Verlauf des Stromverbrauchs in einer Datei auf. Aus der Datei kann der Durchschnittsverbrauch errechnet und/oder eine Grafik mit gnuplot erstellt werden.

Voraussetzungen

  • tp_smapi - Kernel-Modul für ThinkPads
  • gnuplot - optional, wird benötigt um den aufgezeichneten Stromverbrauch in einer 2D-Grafik zu visualisieren

Kurzanleitung

thinkwatt auf der Festplatte speichern:

wget https://github.com/mikar/thinkwatt/raw/master/thinkwatt

Ausführbar machen:

chmod a+x twat

Ausführen:

./thinkwatt -r 300

Durch letzteren Befehl wird 5 Minuten lang der Stromverbrauch aufgezeichnet. Anschließend wird man gefragt, ob auch gleich eine Grafik erstellt werden soll: Beispielgrafik.

Randbedingungen für Vergleichbarkeit

Wenn eine Vergleichbarkeit der Messwerte - z.B. für einen Forumsthread - gewünscht wird, ist es wichtig reproduzierbare (d.h. wiederholbare) Randbedingungen einzuhalten. Folgendes Vorgehen hat sich bewährt:

  • Akkubetrieb
  • Leerer Desktop, d.h. keine Anwendungen gestartet
  • WLAN an und verbunden
  • Bluetooth und WWAN(UMTS) aus
  • Keine externen USB-Geräte angeschlossen
  • Keine Prozess- und Plattenaktivität im Hintergrund
  • Minimale LCD-Helligkeit
  • Notebook > 5 min nicht anfassen

Hinweis: die so gewonnenen Meßwerte stellen nicht den typischen Verbrauch des Notebooks im Betrieb dar!

Links

  • Powertop - Anleitung bei ubuntuusers.de
  • Powertop - Projektseite (englisch) - Vorsicht: die Hinweise auf der Seite "Tips & Tricks" sind hoffnungslos veraltet.
  • LessWatts.org - Webseite von Intel zum Thema "Stromsparen mit Linux" (englisch) - auch hier teilweise veraltete Hinweise.