W domu mamy gniazdko i prąd. W terenie zdani jesteśmy na naszą baterię, a raczej bateryjkę. Bo moja, to 44 Wh (watogodziny). W porównaniu do bateryjek telefonów, to gigant. Ale realia są trochę inne. Notebook potrzebuje więcej prądu. Ile? Sam byłem ciekaw.
W dystrybucjach linuksowych jest wiele programów służących do pomiarów różnych wielkości. Parametrów środowiska i otoczenia systemu. W tym także i konsumpcji. Konsumpcji energii (komputerki muszą się czymś żywić). Wiele z tych programów jest w repozytoriach; zainstalowane lub tylko dostępne. Tutaj koncentruję się na dystrybucjach debianowych (w konsekwencji także ubuntowych), bo tych używam na co dzień.
W repozytoriach Debiana jest powertop. Aplikacja, przygotowana i rozwijana przez Intela, służąca do pomiaru zużycia energii. Korzystam z niej do wyznaczenia zapotrzebowania energetycznego urządzeń (dołączonych lub wbudowanych) oraz programów. Pozwala ona na wyznaczenie zapotrzebowania na energię całego komputerka, ale ja do tego celu używam też innej aplikacji. Jest to program Canonicala (od Ubuntu) pod nazwą powerstat. Do znalezienia w repozytoriach Ubuntu i pochodnych oraz Debiana niestabilnego. W Debianie stabilnym możliwy do zainstalowania po pobraniu ze strony autora odpowiedniej wersji (ze względu na zależności trzeba wybrać wersję odpowiednio wcześniejszą).
W stosunku do powertopa ma się on nijak, jest o wiele prostszy, ma jednak poważną zaletę. Wyznaczenie podstawowego zapotrzebowania na energię może odbywać się w porównywalnych warunkach dla każdego laptopa i każdej dystrybucji. Powerstat w wersji standardowej działa w sposób następujący. Po uruchomieniu przez trzy minuty gromadzi sobie dane, potem 30 razy próbkuje (w 10s interwałach). Na podstawie otrzymanych wyników wylicza średnie zapotrzebowanie. Proste. Powertop też to wszystko wylicza, jednak bazuje na większej ilości wyników. Stąd porównanie pomiędzy komputerami i dystrybucjami bywa trudne, bo w każdym przypadku może być inna ilość próbek.
Powerstat może być uruchamiany bezpośrednio przez użytkownika, lub jako root.
powerstat
sudo powerstat
Wynik końcowy - średnie zużycie energii - jest identyczny. Różnica polega w ilości prezentowanych danych. Powerstat działa tylko, gdy laptop pracuje na baterii. Informacja o programie i jego opcjach dostępna jest poprzez manual, czyli komendę
man powerstat
Manual jest trochę niepełny. Brak jest informacji co do mierzonych wielkości, ale pobór mocy jest samoobjaśniający się.
Zacząłem od Linux lite 1.8 (v. 64b). Nie miałem jeszcze odniesienia, co do zapotrzebowania energetycznego, dlatego w następnych krokach porównam to z semplice i pointem - dystrybucjami, z którymi pracuję na codzień.
Mierzyłem kilkakrotnie. Bateria naładowana, wifi włączone, bluetooth wyłączony, ekran 20%, po trzech minutach ekran wyłączony. Wyniki są niepowtarzalne, jednak zbliżone. Poniżej jeden z wyników (uruchomienie programu jako root zwiększa liczbę kolumn, przez co wynik jest trudniej czytelny na stronie)
linux@linux:~$ uname -a
Linux linux 3.8.0-34-generic #49~precise1-Ubuntu SMP Wed Nov 13 18:05:00 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
linux@linux:~$ powerstat
Running for 300 seconds (30 samples at 10 second intervals).
ACPI battery power measurements will start in 180 seconds time
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Watts
01:56:07 0.2 0.0 0.2 99.6 0.0 2 90 48 13.22
01:56:17 0.3 0.0 0.1 99.6 0.0 1 93 48 13.20
01:56:27 0.2 0.0 0.2 99.6 0.0 1 96 50 13.22
01:56:37 0.3 0.0 0.4 99.3 0.0 1 151 60 13.20
01:56:47 0.2 0.0 0.2 99.6 0.0 2 93 49 13.20
01:56:57 0.4 0.0 0.1 99.5 0.0 1 118 53 13.20
01:57:07 0.2 0.0 0.2 99.6 0.0 1 98 50 13.23
01:57:17 0.3 0.0 0.2 99.6 0.0 1 95 49 13.20
01:57:27 0.3 0.0 0.3 99.4 0.0 1 109 53 13.23
01:57:37 0.2 0.0 0.1 99.7 0.0 1 96 49 13.31
01:57:47 0.3 0.0 0.1 99.6 0.0 1 90 48 13.20
01:57:57 0.3 0.0 0.1 99.5 0.0 2 105 52 13.31
01:58:07 0.2 0.0 0.1 99.7 0.0 1 94 50 13.23
01:58:17 0.2 0.0 0.2 99.6 0.0 1 90 48 13.23
01:58:27 0.3 0.0 0.2 99.5 0.0 1 98 50 13.33
01:58:37 0.2 0.0 0.4 99.4 0.0 1 158 62 13.22
01:58:47 0.3 0.0 0.1 99.6 0.0 1 95 50 13.24
01:58:57 0.3 0.0 0.2 99.5 0.0 1 103 52 13.23
01:59:07 0.2 0.0 0.1 99.7 0.0 1 97 51 13.30
01:59:17 0.2 0.0 0.1 99.7 0.0 1 91 46 13.24
01:59:27 0.2 0.0 0.2 99.6 0.0 2 98 50 13.23
01:59:37 0.2 0.0 0.2 99.6 0.0 1 90 50 13.36
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Watts
01:59:47 0.3 0.0 0.1 99.6 0.0 1 91 48 13.24
01:59:57 0.2 0.0 0.3 99.5 0.0 1 97 49 13.26
02:00:07 0.2 0.0 0.2 99.6 0.0 1 96 51 13.24
02:00:18 0.3 0.0 0.1 99.6 0.0 2 91 48 13.26
02:00:28 0.3 0.0 0.2 99.5 0.0 1 106 52 13.26
02:00:38 0.2 0.0 0.5 99.3 0.0 1 154 61 13.26
02:00:48 0.3 0.0 0.2 99.6 0.0 1 100 50 13.27
02:00:58 0.4 0.0 0.1 99.5 0.0 2 104 53 13.29
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Average 0.2 0.0 0.2 99.6 0.0 1.2 102.8 50.9 13.25
StdDev 0.1 0.0 0.1 0.1 0.0 0.4 18.2 3.7 0.04
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Minimum 0.2 0.0 0.1 99.3 0.0 1.0 90.0 45.7 13.20
Maximum 0.4 0.0 0.5 99.7 0.0 2.0 158.2 61.6 13.36
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Summary:
13.25 Watts on Average with Standard Deviation 0.04
Wyszło ok. 13,25W. Czyli w stanie jałowym mój laptop pracowałby 44/13,25 h. Trzy godziny, dziewiętnaście minut (wynik dziesiętny trzeba przekonwertować do systemu sześdziesiątkowego, bo w tym systemie liczony jest czas). Widać, jaka jest zależność wielkości baterii i zużycia energii przez laptop na długość czasu pracy. Zależności te są odpowiednio wprost i odwrotnie proporcjonalne. Oznacza to, że komputerek pracuje tym dłużej im mamy silniejszą baterię i im mniej potrzebuje prądu. Proste. Baterii już nie możemy zmienić. Ale zawsze możemy zmienić system, a w nim powyłączać część niepotrzebnych serwisów.
Teraz semplice.
Warunki testowe - analogiczne. Wynik (w pierwszej linii wynik polecenia
uname -a
)Linux asuma 3.13-1-amd64 #1 SMP Debian 3.13.10-1 (2014-04-15) x86_64 GNU/Linux
Running for 300 seconds (30 samples at 10 second intervals).
ACPI battery power measurements will start in 180 seconds time
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Watts
07:48:38 0.3 0.0 0.5 99.2 0.0 1 218 111 10.29
07:48:48 0.4 0.0 0.4 99.3 0.0 1 161 82 10.30
07:48:58 0.2 0.0 0.3 99.5 0.0 1 135 70 10.30
07:49:08 0.4 0.0 0.2 99.5 0.0 1 155 81 10.29
07:49:18 0.4 0.0 0.3 99.3 0.0 1 171 88 10.29
07:49:28 0.5 0.0 0.4 99.2 0.0 1 168 86 10.32
07:49:38 0.3 0.0 0.4 99.4 0.0 1 138 71 10.30
07:49:48 0.3 0.0 0.4 99.3 0.0 1 163 82 10.30
07:49:58 0.3 0.0 0.3 99.4 0.0 1 138 71 10.30
07:50:08 0.3 0.0 0.8 98.9 0.0 1 182 100 10.35
07:50:18 0.3 0.0 0.4 99.3 0.0 1 176 93 10.30
07:50:28 0.3 0.0 0.4 99.3 0.0 1 169 86 10.33
07:50:38 0.2 0.0 0.3 99.5 0.0 2 142 74 10.30
07:50:48 0.4 0.0 0.3 99.4 0.0 2 157 81 10.30
07:50:58 0.3 0.0 0.3 99.4 0.0 1 139 72 10.30
07:51:08 0.3 0.0 0.3 99.5 0.0 1 132 68 10.30
07:51:18 0.3 0.0 0.4 99.3 0.0 1 164 86 10.30
07:51:28 0.3 0.0 0.4 99.3 0.0 1 164 85 10.30
07:51:38 0.3 0.0 0.4 99.3 0.0 1 158 80 10.30
07:51:48 0.4 0.0 0.3 99.3 0.0 1 163 84 10.30
07:51:58 0.4 0.0 0.3 99.3 0.0 1 148 75 10.30
07:52:08 0.3 0.0 0.9 98.8 0.0 1 188 104 10.35
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Watts
07:52:18 0.4 0.0 0.4 99.3 0.0 1 164 86 10.32
07:52:28 0.4 0.0 0.3 99.4 0.0 1 165 85 10.30
07:52:38 0.2 0.0 0.3 90.4 9.1 1 139 73 11.06
07:52:48 0.3 0.0 0.4 99.1 0.2 1 166 86 10.89
07:52:58 0.3 0.0 0.4 99.1 0.2 1 144 74 10.91
07:53:08 0.3 0.0 0.3 99.2 0.3 1 134 69 10.91
07:53:18 0.4 0.0 0.4 99.0 0.3 1 159 83 10.89
07:53:28 0.4 0.0 0.3 99.1 0.3 1 149 76 10.89
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Average 0.3 0.0 0.4 99.0 0.3 1.1 158.2 82.1 10.43
StdDev 0.1 0.0 0.1 1.6 1.6 0.2 18.3 10.0 0.25
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Minimum 0.2 0.0 0.2 90.4 0.0 1.0 132.0 68.1 10.29
Maximum 0.5 0.0 0.9 99.5 9.1 2.0 217.9 111.0 11.06
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Summary:
10.43 Watts on Average with Standard Deviation 0.25
I point (wersja 2.3 z backportowanym jądrem)
Linux asuma 3.13-0.bpo.1-amd64 #1 SMP Debian 3.13.10-1~bpo70+1 (2014-04-23) x86_64 GNU/Linux
Running for 300 seconds (30 samples at 10 second intervals).
ACPI battery power measurements will start in 180 seconds time
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Watts
14:44:58 1.9 0.0 0.9 87.8 9.4 1 287 149 10.51
14:45:08 0.3 0.0 0.3 99.3 0.2 1 159 82 10.53
14:45:18 0.3 0.0 0.8 98.9 0.0 1 207 109 10.77
14:45:28 0.3 0.0 0.3 99.5 0.0 1 139 71 9.87
14:45:38 0.4 0.0 0.2 99.4 0.0 1 158 80 9.90
14:45:48 0.4 0.0 0.2 99.4 0.0 1 155 82 10.01
14:45:58 0.3 0.0 0.3 99.5 0.0 1 133 69 9.88
14:46:08 0.3 0.0 0.4 99.3 0.0 1 164 87 9.91
14:46:18 0.3 0.0 0.4 99.4 0.0 1 166 84 9.91
14:46:28 0.2 0.1 0.4 90.4 8.9 1 151 77 11.31
14:46:38 0.4 0.0 0.3 99.1 0.3 1 167 86 10.54
14:46:48 0.3 0.0 0.3 99.5 0.0 1 158 82 10.56
14:46:58 0.4 0.0 0.8 98.8 0.0 1 201 107 9.94
14:47:08 0.3 0.0 0.3 99.4 0.0 2 155 80 10.07
14:47:18 0.4 0.0 0.3 99.4 0.0 1 160 80 9.94
14:47:28 0.3 0.0 0.3 99.4 0.0 1 166 83 9.94
14:47:38 0.4 0.0 0.3 99.4 0.0 1 158 81 10.08
14:47:48 0.2 0.0 0.4 99.4 0.0 1 145 73 9.97
14:47:58 0.4 0.0 0.3 99.3 0.0 1 153 82 9.95
14:48:08 0.4 0.0 0.3 99.4 0.0 1 169 88 9.97
14:48:18 0.3 0.0 0.4 99.4 0.0 1 153 76 10.05
14:48:28 0.4 0.0 0.4 99.2 0.0 1 167 84 9.97
Time User Nice Sys Idle IO Run Ctxt/s IRQ/s Watts
14:48:38 0.3 0.0 0.4 99.3 0.0 1 164 81 9.97
14:48:48 0.3 0.0 0.3 90.5 8.9 1 148 75 10.64
14:48:58 0.4 0.0 0.8 98.6 0.3 1 194 104 10.78
14:49:08 0.4 0.0 0.3 99.1 0.3 1 164 87 10.64
14:49:18 0.3 0.0 0.3 97.7 1.7 2 158 80 10.64
14:49:28 0.3 0.0 0.3 99.2 0.2 1 145 77 10.72
14:49:38 0.3 0.0 0.3 99.2 0.2 1 175 91 10.64
14:49:48 0.4 0.0 0.3 99.1 0.2 1 153 78 10.64
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Average 0.4 0.0 0.4 98.3 1.0 1.1 165.7 85.5 10.28
StdDev 0.3 0.0 0.2 2.9 2.7 0.2 27.5 14.9 0.39
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Minimum 0.2 0.0 0.2 87.8 0.0 1.0 132.7 69.1 9.87
Maximum 1.9 0.1 0.9 99.5 9.4 2.0 286.6 148.6 11.31
-------- ----- ----- ----- ----- ----- ---- ------ ------ ------
Summary:
10.28 Watts on Average with Standard Deviation 0.39
W obu powyższych przykładach teoretyczny czas pracy jest powyżej czterech godzin.
Z powyższych przykładów widać, że dystrybucje debianowe - semplice i point na biegu jałowym zużywają mniej energii niż dystrybucja ubuntowa - lite 1.8. Linux lite uważany jest za jedną z lżejszych dystrybucji. Co zatem w przypadku np. takiego Ubuntu?
Oczywiście, to jest bieg jałowy. Przy pracy w warunkach realnych - przeglądarka, edycja dokumentów, zapotrzebowanie energetyczne wzrasta. Nawet dwukrotnie. Za pomocą powertopa możemy wyliczyć zapotrzebowanie energetyczne poszczególnych urządzeń i programów. Mnie zaskoczyło, że bezprzewodowa myszka pobiera całkiem sporo, a już dołączony modem gsm (poprzez usb), to 3W potrzebnej mocy. Wifi rząd wielkości mniej.
Z drugiej strony, ale to już inna bajka, można próbować optymalizować zapotrzebowanie energetyczne. Wyłączamy niepotrzebne serwisy, a w tle zawsze mnóstwo tych demonów. To jest proste. Można stosować różne zaawansowane techniki agresywnego oszczędzania - np. TLP. Kolega z forum raportował mi, że zszedł do zapotrzebowania energetycznego rzędu siedmiu watów z kawałkiem. Nieźle.
Niby drobiazg. Energia. Jak jest, to jej nie doceniamy. Ale w warunkach mobilnych może być bezcenna.