Messung der Leistungsaufnahme unter Linux: Unterschied zwischen den Versionen

Aus ThinkPad-Wiki
(Links)
 
(26 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:
Bei ThinkPads besteht darüber hinaus die Möglichkeit, über das Kernelmodul '''tp_smapi''' direkt auf die Rohdaten des "Embedded Controller" zuzugreifen.
Bei ThinkPads besteht darüber hinaus die Möglichkeit, über das Kernelmodul '''tp_smapi''' direkt auf die Rohdaten des "Embedded Controller" zuzugreifen.


'''<u>Wichtig:</u> aus dem oben gesagten folgt, daß eine Verbrauchsermittlung nur im Akkubetrieb möglich ist.'''
== "Meßinstrumente" ==
<u>Wichtig:</u> aus der Einleitung folgt, daß eine Messung nur im '''Akkubetrieb''' möglich ist.


== "Meßinstrumente" ==
=== Powertop ===
=== Powertop ===
Das beim Chiphersteller Intel entwickelte Programm [http://www.linuxpowertop.org/ Powertop] steht in allen Distributionen über die Paketquellen zur Verfügung (Paketname '''powertop''').  
Das beim Chiphersteller Intel entwickelte Programm [http://www.linuxpowertop.org/ Powertop] steht in allen Distributionen über die Paketquellen zur Verfügung (Paketname '''powertop''').  
Zeile 19: Zeile 19:
* Wakeups [1/s]
* Wakeups [1/s]
* Verursacher von Wakeups, d.h. Programme die den Prozessor aufwecken
* Verursacher von Wakeups, d.h. Programme die den Prozessor aufwecken
'''<u>Warnhinweis:</u> die Spalte "Power est." in den Rubriken "Overview" und "Device stats" stellt keinesfalls eine zutreffende Schätzung des Verbrauchs einzelner Prozesse oder Geräte dar, stattdessen wird hier grober Unfug angezeigt. Powertop ist nicht in der Lage den Verbrauch einzelner Komponenten zu schätzen oder gar direkt zu messen. Lediglich der Gesamtverbrauch kann über die Akkuelektronik ermittelt werden.'''


=== tp_smapi ===
=== 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 der 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.
Der Weg über das Kernelmodul '''tp_smapi''' eignet sich besonders zur exakten Ermittlung des Verbrauchs (s.o.). Für den Hauptakku kann man den Wert über die Datei '''/sys/devices/platform/smapi/BAT0/power_now''' (monentan) bzw. '''power_avg''' (gleitender Durchschnitt) 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 15-Sekunden-Takt kann man folgendes Shell-Kommando verwenden (Abbruch mit Str+C):
while true; do cat /sys/devices/platform/smapi/BAT0/power_avg; sleep 15; done
 
=== thinkwatt ===
[https://github.com/serialoverflow/thinkwatt/ thinkwatt] zeichnet den zeitlichen Verlauf des Stromverbrauchs in einer Datei auf. Aus der Datei kann der Durchschnittsverbrauch errechnet und/oder eine Grafik mit [http://www.gnuplot.info/ gnuplot] erstellt werden.
 
==== Voraussetzungen ====
* [http://www.thinkwiki.org/wiki/Tp_smapi tp_smapi] - optional, Kernel-Modul für ThinkPads
* [http://www.gnuplot.info/ 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/serialoverflow/thinkwatt/raw/master/thinkwatt
Ausführbar machen:
chmod a+x thinkwatt
Ausführen:
./thinkwatt -r 300


Für eine kontinuierliche Anzeige im Sekundentakt kann man folgendes Shell-Kommando verwenden (Abbruch mit Str+C):
Durch letzteren Befehl wird 5 Minuten lang der Stromverbrauch aufgezeichnet. Anschließend wird man  gefragt, ob auch gleich eine Grafik erstellt werden soll: [https://github.com/mikar/thinkwatt/blob/master/example_datafile.png Beispielgrafik].
while true; do cat /sys/devices/platform/smapi/BAT0/power_now; sleep 1; done


== Randbedingungen ==
== Randbedingungen für Vergleichbarkeit ==
Um eine Vergleichbarkeit der Messwerte zu erreichen, ist es wichtig ''reproduzierbare'' Randbedingungen einzuhalten. Folgendes Vorgehen ist dabei hilfreich:
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
* Akkubetrieb
* Leerer Desktop, d.h. keine Anwendungen gestartet
* Leerer Desktop, d.h. keine Anwendungen gestartet
* WLAN an und verbunden
* WLAN an und verbunden
* Bluetooth und WWAN(UMTS) aus
* Bluetooth und WWAN(UMTS) aus
* Keine USB Geräte angeschlossen
* Keine externen USB-Geräte angeschlossen
* Keine Plattenaktivität im Hintergrund
* Keine Prozess- und Plattenaktivität im Hintergrund
* Minimale LCD-Helligkeit
* Minimale LCD-Helligkeit
* Notebook > 5 min nicht anfassen
* Notebook > 5 min nicht anfassen


<u>Hinweis:</u> die so gewonnenen Meßwerte stellen nicht den typischen Verbrauch des Notebooks im Betrieb dar!
<u>Hinweis:</u> die so gewonnenen Meßwerte stellen ''nicht'' den typischen Verbrauch des Notebooks im Betrieb dar, sondern eine Art "Normverbrauch"!


== Links ==
== Links ==
* [http://wiki.ubuntuusers.de/PowerTOP Powertop] - Anleitung bei ubuntuusers.de
* [http://wiki.ubuntuusers.de/PowerTOP2 Powertop] - Anleitung bei ubuntuusers.de
* [http://www.linuxpowertop.org/ Powertop] - Projektseite (englisch) - Vorsicht: die Hinweise auf der Seite "Tips & Tricks" sind hoffnungslos veraltet.
* [http://www.linuxpowertop.org/ Powertop] - Projektseite (englisch) - Vorsicht: die Hinweise auf der Seite "Tips & Tricks" sind hoffnungslos veraltet.
* [http://www.lesswatts.org/ LessWatts.org] - Webseite von Intel zum Thema "Stromsparen mit Linux" (englisch) - auch hier teilweise veraltete Hinweise.
* [http://www.lesswatts.org/ LessWatts.org] - Webseite von Intel zum Thema "Stromsparen mit Linux" (englisch) - auch hier teilweise veraltete Hinweise.

Aktuelle Version vom 2. Oktober 2017, 15:17 Uhr

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

Warnhinweis: die Spalte "Power est." in den Rubriken "Overview" und "Device stats" stellt keinesfalls eine zutreffende Schätzung des Verbrauchs einzelner Prozesse oder Geräte dar, stattdessen wird hier grober Unfug angezeigt. Powertop ist nicht in der Lage den Verbrauch einzelner Komponenten zu schätzen oder gar direkt zu messen. Lediglich der Gesamtverbrauch kann über die Akkuelektronik ermittelt werden.

tp_smapi

Der Weg über das Kernelmodul tp_smapi eignet sich besonders zur exakten Ermittlung des Verbrauchs (s.o.). Für den Hauptakku kann man den Wert über die Datei /sys/devices/platform/smapi/BAT0/power_now (monentan) bzw. power_avg (gleitender Durchschnitt) 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 15-Sekunden-Takt kann man folgendes Shell-Kommando verwenden (Abbruch mit Str+C):

while true; do cat /sys/devices/platform/smapi/BAT0/power_avg; sleep 15; 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 - optional, 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/serialoverflow/thinkwatt/raw/master/thinkwatt

Ausführbar machen:

chmod a+x thinkwatt

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, sondern eine Art "Normverbrauch"!

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.