Pomiar zużycia energii w Linuksie

Z ThinkPad-Wiki

Przejdź do: nawigacja, szukaj

Spis treści

Wprowadzenie

Do pomiaru zużycia energii w laptopach wykorzystuje się informacje z elektroniki w pakiecie akumulatora. Aby określić aktualny stan naładowania, elektronika akumulatora rejestruje każdy proces ładowania i rozładowania i w tym celu na bieżąco mierzy prąd i napięcie akumulatora.

Ustalone dane są regularnie przekazywane do laptopa i można je odczytać przez ACPI-BIOS. ACPI-BIOS stosuje jednak przy wyświetlaniu ruchomą średnią, więc rzeczywista wartość chwilowa jest niedostępna. Niemal wszystkie programy dostępne dla Linuksa i różnych środowisk graficznych wyświetlają te wartości ACPI.

W przypadku ThinkPadów istnieje ponadto możliwość bezpośredniego dostępu do surowych danych „Embedded Controller” za pośrednictwem modułu jądra tp_smapi.

„Przyrządy pomiarowe”

Ważne: ze wstępu wynika, że pomiar jest możliwy tylko podczas pracy na akumulatorze.

Powertop

Program Powertop, opracowany przez producenta układów Intel, jest dostępny we wszystkich dystrybucjach w repozytoriach pakietów (nazwa pakietu: powertop).

Wskazówka: powertop należy uruchamiać z uprawnieniami roota.

Oprócz aktualnego zużycia energii [W] i szacowanego czasu pracy [h] (wartości na podstawie ACPI-BIOS) wyświetlane są dodatkowe dane dotyczące procesora:

  • Czas przebywania w stanach uśpienia (C-States) [%]
  • Czas przebywania w poszczególnych stopniach taktowania (P-States) [%]
  • Wybudzenia [1/s]
  • Przyczyny wybudzeń, tzn. programy budzące procesor

tp_smapi

Droga przez moduł jądra tp_smapi jest szczególnie odpowiednia do dokładnego określenia chwilowego zużycia energii (patrz wyżej). Dla głównego akumulatora wartość można odczytać z pliku /sys/devices/platform/smapi/BAT0/power_now (dla akumulatora Ultrabay należy zamienić BAT0 na BAT1). Wartość z power_now jest podana w mW i ma znak ujemny, ponieważ prąd jest pobierany.

Do ciągłego wyświetlania co sekundę można użyć następującego polecenia powłoki (przerwanie za pomocą Ctrl+C):

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

thinkwatt

thinkwatt zapisuje do pliku przebieg zużycia energii w czasie. Z pliku można obliczyć średnie zużycie i/lub utworzyć wykres za pomocą gnuplot.

Wymagania

  • tp_smapi - moduł jądra dla ThinkPadów
  • gnuplot - opcjonalnie, potrzebny do wizualizacji zapisanego zużycia energii na wykresie 2D

Krótka instrukcja

Zapisz thinkwatt na dysku:

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

Nadaj prawa do wykonywania:

chmod a+x thinkwatt

Uruchom:

./thinkwatt -r 300

Ostatnie polecenie rejestruje zużycie energii przez 5 minut. Następnie program zapyta, czy od razu utworzyć wykres: przykładowy wykres.

Warunki brzegowe dla porównywalności

Jeśli zależy nam na porównywalności wyników pomiarów – np. w wątku na forum – ważne jest zachowanie powtarzalnych warunków brzegowych. Sprawdziło się następujące postępowanie:

  • Zasilanie z akumulatora
  • Pusty pulpit, tzn. brak uruchomionych aplikacji
  • WLAN włączony i połączony
  • Bluetooth i WWAN (UMTS) wyłączone
  • Brak podłączonych zewnętrznych urządzeń USB
  • Brak aktywności procesów i dysku w tle
  • Minimalna jasność LCD
  • Nie dotykać notebooka przez > 5 min

Uwaga: uzyskane w ten sposób wyniki pomiarów nie przedstawiają typowego zużycia energii notebooka podczas pracy!

Linki

  • Powertop - instrukcja na ubuntuusers.de
  • Powertop - strona projektu (po angielsku) - Uwaga: wskazówki na stronie „Tips & Tricks” są beznadziejnie przestarzałe.
  • LessWatts.org - strona Intela na temat „oszczędzania energii z Linuksem” (po angielsku) - również tu część wskazówek jest przestarzała.
Narzędzia osobiste
Think-Wiki