Proč má linuxové jádro velkou spotřebu a co s tím?

Petr Krčmář 29. 6. 2011

Na konci dubna se poprvé objevila informace o tom, že linuxové jádro začalo mít vyšší spotřebu než dřív. Notebooky uživatelů vydržely až o třetinu méně než dříve a nikdo nevěděl proč. Trvalo dva měsíce, než byl objeven důvod a také postup, který umožní příkon vrátit na původní hodnoty. Jak na to?

Spotřeba elektrické energie je dnes pro řadu uživatelů velmi důležitým ukazatelem. Všude se hovoří o ekologii, o „zeleném IT“ a snaze ušetřit nemalé peníze prostým výběrem vhodnějšího hardware či softwarovou konfigurací. Z praktického hlediska ocení nižší příkon především mobilní uživatelé, kterým není jedno, zda jejich notebook vydrží tři nebo pět hodin v provozu.
Čtěte: Šetříme energii s Linuxem

Chyba v jádře nás stojí 30 % energie

Na konci dubna se poprvé objevila zpráva o tom, že Linux má neblahý dopad na spotřebu. Server Phoronix tehdy provedl sérii testů a zjistil, že od jádra 2.6.35 mají počítače s Linuxem až o 30 % vyšší spotřebu. Problém se v jádrech objevil před rokem a je patrný napříč celým spektrem linuxových distribucí. Navíc se s novými vydáními ještě více prohluboval. Viníkem tedy jasně bylo linuxové jádro.

Michael Larabel ze serveru Phoronix se rozhodl přijít záhadě na kloub a začal intenzivně pátrat po chybě, která problém způsobuje. Přestože byla situace řádně zmedializována a všichni uživatelé chtěli znát odpověď, byl Larabel pravděpodobně jediným člověkem, který se intenzivně věnoval odhalení chyby.

Viník je odhalen, jmenuje se ASPM

Trvalo to dva měsíce, ale viník byl odhalen. Tedy alespoň ten hlavní viník, který způsoboval (a stále ještě způsobuje) největší potíže se spotřebou. V jádře je přítomen od verze 2.6.38 a způsobuje problémy větší skupině uživatelů než jiná chyba z jádra 2.6.35. Ta je způsobena plánovačem jádra a Larabel na jejím objasnění ještě pracuje.

Michael Larabel viníka z jádra 2.6.38 pojmenoval. Jmenuje se ASPM, tedy Active-State Power Management. Jedná se o technologii, která dovoluje na základních deskách vypínat PCI Express linky, které nejsou v danou chvíli potřeba. Nevýhodou ASPM je, že probouzení z úsporného stavu nějakou dobu trvá, což snižuje výkon připojených karet. Velkou výhodou ale naopak je, že to celé umožňuje výrazně šetřit elektrickou energii. ASPM se využívá především v mobilních zařízeních, na desktopových strojích je ale možné jej nasadit také.

Kód poslaný do jádra 2.6.38 upravoval chování linuxového jádra vůči ASPM a vypínal tuto technologii ve chvíli, kdy BIOS systému neoznámil její podporu. Existovalo teoretické riziko, že zapnutí ASPM na stroji s chybnou podporou povede k pádům při usínání/probouzení. Tento patch má za úkol vypnout ASPM tam, kde si systém nebyl jistý, že je vše v pořádku.

Larabel ale tvrdí, že mnoho BIOSů je špatných a snaží se vycházet vstříc rozbitému power managementu MS Windows, místo aby dodržovaly standardy. Proto řada zařízení ASPM umí, ale jejich BIOS to systému odmítá potvrdit. Takto se chová velká část počítačů, takže jádra obsahující zmíněný patch automaticky podporu šetření energie vypínají.

Zda je to váš případ se dozvíte nejjednodušeji tak, že si zobrazíte následující soubor:

cat /sys/module/pcie_aspm/parameters/policy
[default] performance powersave

Pokud v něm máte (jako já) položku powersave, pak je vše v pořádku a na svém počítači ASPM zapnuté máte. Pokud máte méně štěstí, jádro podporu vypnulo, protože se nedohodlo s BIOSem.

Nejjednodušším řešením tohoto problému je vynucení podpory ASPM. To je možné provést pomocí jaderného parametru pcie_aspm. Ten je v jádrech už velmi dlouho – už od verze 2.6.27. Pokud používáte zavaděč GRUB 2, stačí editovat soubor /etc/default/grub a upravit v něm následující parametr:

GRUB_CMDLINE_LINUX_DEFAULT="pcie_aspm=force"

Po vygenerování nové konfigurace pomocí update-grub a restartu byste se měli setkat s výrazně nižší spotřebou svého počítače. Tato úprava by podle Larabela měla fungovat na většině strojů. Pokud je ale BIOS rozbitý skutečně hodně a má s ASPM problémy, mohl by být systém nestabilní. V takovém případě volbu opět vypněte.

Jak se projeví výsledek?

Michael Larabel také změřil, o kolik klesla spotřeba počítače po úpravě. Jeho Lenovo ThinkPad vykazoval mezi jádry 2.6.37 a 2.6.38 nárůst spotřeby o 10,6 %. Po zavedení výše zmíněné úpravy příkon klesl o 15 %. Je tedy ještě nižší než u původního jádra, které chybu ještě neobsahovalo. Podobné výsledky se objevily i u stolního počítače s procesorem i7.

Oficiální oprava pro linuxové jádro je zatím v nedohlednu, pravděpodobně se neobjeví v jádře 3.0, které je už zmražené a během několika týdnů bude k dispozici. Nějaké změny se tak dočkáme nejdříve v jádře 3.1. Také je otázkou, jak bude oprava vypadat. Je možné, že bude jen vyhozen patch, který byl zaveden do 2.6.38. Problém s příkonem totiž postihuje mnohem více uživatelů než problém s nefunkčním ASPM.

Zatím to také není poslední problém s příkonem, po kterém Michael Larabel jde. Tento byl ale zjevně nejdůležitější, postihoval největší skupinu uživatelů a způsoboval největší problémy. Druhým v pořadí by měla být už zmíněná chyba s plánovačem jádra.

Našli jste v článku chybu?
Lupa.cz: Elektronika tajemství zbavená. Jak s ní začít?

Elektronika tajemství zbavená. Jak s ní začít?

DigiZone.cz: Jetelín končí. Prima ho vyřadila

Jetelín končí. Prima ho vyřadila

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo

120na80.cz: V těhotenství nohy lehké jako pírko

V těhotenství nohy lehké jako pírko

DigiZone.cz: E! a zákulisí turné Mariah Carey

E! a zákulisí turné Mariah Carey

Podnikatel.cz: Česká pošta vycouvala ze služby ČP Cloud

Česká pošta vycouvala ze služby ČP Cloud

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Lupa.cz: Co najdete uvnitř kosmické sondy?

Co najdete uvnitř kosmické sondy?

DigiZone.cz: Další rána pro piráty: 6 měsíců

Další rána pro piráty: 6 měsíců

Lupa.cz: Co vzal čas: internetové kavárny a herny

Co vzal čas: internetové kavárny a herny

Lupa.cz: Sdílíte veřejně běhání a jízdu na kole?

Sdílíte veřejně běhání a jízdu na kole?

120na80.cz: Kam umístit silikony?

Kam umístit silikony?

Podnikatel.cz: Youtuber? Za 15 tisíc dělat nebude

Youtuber? Za 15 tisíc dělat nebude

Vitalia.cz: Za její cukrovkou stojí rodiče

Za její cukrovkou stojí rodiče

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

Podnikatel.cz: OSA zdražuje poplatky. Zaplatíte o polovinu víc

OSA zdražuje poplatky. Zaplatíte o polovinu víc

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Vitalia.cz: Je bílý kokos fakt tak úžasný? Ano, je!

Je bílý kokos fakt tak úžasný? Ano, je!