Hlavní navigace

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?

29. 6. 2011 10:35

Marv-CZ (neregistrovaný)

Ve vašem příspěvku máte chybné pořadí příčin a následků. Chybný je ten vámi zmiňovaný OS a BIOS je chybný, protože se snaží ty jeho chyby obcházet.

29. 6. 2011 4:26

lol (neregistrovaný)

ktory by povedal ze linux nepodporuje a mas si nainstalovat jediny spravny a podporovany operacny system ... a tym by to asi tak cele uzavrel :)

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase