Pomiar zużycia energii w Linuksie
Z ThinkPad-Wiki
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.

