Nový plánovač jádra nabízí rychlejší reakce

Petr Krčmář 24. 4. 2007

Scheduler (česky plánovač) je jednou z nejdůležitějších částí jádra operačního systému. Na něm závisí výkon celého systému a hladký běh všech aplikací i při extrémní zátěži. Vývojáři zvažují výměnu plánovače, který je aktuálně používán v Linuxu. Proč by mělo k výměně dojít? Co nový plánovač přinese?

Lehký úvod do plánování

Plánovač má v systému velmi důležitou úlohu. Protože na běžných jednojádrových procesorech může vždy v konkrétní chvíli běžet jen jeden proces, je potřeba zařídit jejich přepínání, které (pokud je dostatečně rychlé) zajišťuje onu iluzi běhu více aplikací zároveň. Ke zmíněnému přepínání dochází velmi často – v jádrech řady 2.6 až 1000× za sekundu.

Cílem vývojářů je tedy zajistit dostatečně kvalitní přepínání, které samo spotřebuje co možná nejméně času procesoru. Zároveň je potřeba vymyslet takový systém, který rozdělí procesorový čas mezi procesy dostatečně spravedlivě. Některé procesy jsou náročné a vyžadují více času, jiné naopak potřebují rychlé přepnutí v případě potřeby. Aby toho nebylo málo, plánovače mají často tu nepříjemnou vlastnost, že čím více procesů spravují, tím déle jim přepnutí trvá.

Aktuální jaderný plánovač je často označován jako O(1) scheduler. To znamená, že posledním jmenovaným neduhem netrpí, jeho rychlost není proměnlivá a nezávisí na tom, kolik procesů má na starosti.

Completely Fair Scheduler – naprosto spravedlivý plánovač

Ingo Molnar se rozhodl, že je na čase vytvořit zcela nový plánovač, který by splňoval aktuální požadavky. „Mým cílem je reagovat na některé požadované funkce a opravit nedostatky, které byly objeveny během uplynulých let, a to jak pro desktopová, tak i serverová nasazení,” píše v oznámení nového projektu Ingo Molnar.

Jednou z nejzajímavějších vlastností nově napsaného plánovače je systém modulů. Ty zahrnují především informace o nastavení samotného plánovacího jádra a dovolují tak měnit „režimy práce” bez zásahu do samotného plánovače. Ingo se totiž snaží zohlednit zcela jiné požadavky, které na systém klade desktopové a serverové nasazení. Zatímco server vyžaduje především výkon a robustnost při práci tisíců uživatelů, desktop dnes potřebuje především plynulou a rychlou odezvu na akce jednoho uživatele.

Co je nového?

I z toho důvodu byl kompletně změněn také návrh celého plánovače. Zatímco klasická konstrukce staví na frontě čekajících procesů, nový CFS používá naprosto jinou techniku plánování. „Design je velmi radikální: nepoužívá frontu, ale rbtree pro vytvoření časové osy běhu procesů,” vysvětlil novinky Ingo. Díky novému přístupu odpadají některé potíže ostatních plánovačů.

Naprostou novinkou je také rozdělení času procesoru na jiné jednotky než Hz. Zatím byl vždy čas procesoru rozdělen na stejné úseky, které byly přidělovány jednotlivým procesům. Nový CFS ovšem používá pro označení časových úseků přímo nanosekundy. Není tedy závislý na žádném přesně stanoveném časovém údaji nebo heuristice.

CFS nabízí jeden centrální bod změny nastavení, který se nachází v /proc/sys/kernel/sched_granularity_ns. Ten může být nastaven na hodnotu „desktop” nebo „server”. V prvním případě bude plánovač zajišťovat co možná nejnižší latenci, kdežto u serveru bude co nejlépe rozkládat zátěž.

Další zajímavá novinka se skrývá v logice, která zajišťuje automatické přidělování vyšší priority (nice) konkrétním procesům. Výsledkem by mělo být nadržování důležitým procesům. Konkrétně se jedná o privilegované úlohy, které přímo přistupují k hardware – čili například Xorg. Nutno ovšem říct, že se tato funkce rozhodně nelíbí všem a někteří vývojáři tvrdí, že je nesmysl implementovat toto nastavení v jádře, když by bylo možné jej bez problémů napsat do konfiguračních skriptů v uživatelském prostoru.

Plánovač by měl díky novým funkcím a zcela novému přístupu k řešení úkolu nabídnout lepší chování systému. V případě desktopu bychom se mohli dočkat rychlejších reakcí a plynulejšího běhu. Ingo také poznamenal, že CFS znamená i lepší bezpečnost. „Vzhledem k designu není CFS náchylný ke známým útokům na heuristiku,” řekl.

Vývoj celého kódu prý trval 62 hodin a výsledkem je 100 KB patch. Zatím ovšem není celá věc pořádně otestovaná a rozhodně proto není vhodná pro nasazení v produkčním systému. Vývojáři se budou samozřejmě novým plánovačem zabývat a už teď běží v mailing listu bouřlivá debata.

Jak si stojí?

Willy Tarreau se rozhodl otestovat nový CFS a porovnat výsledky s jiným software téhož druhu – Staircase Deadline CPU scheduler, jehož autorem je Con Kolivas. Ten je také aktuálním kandidátem na nový jaderný plánovač. Willy použil zátěžový test, při kterém spustil 64 procesů, které vždy čtvrt sekundy zatěžovaly systém a tři čtvrtě sekundy čekaly.

Willy se nejprve vyjádřil k plánovači Staircase Deadline:

Chová se dobře, ale začne být trhavý při středně vysoké zátěži. Systém stále odpovídal, ale pod X se trhal kurzor a psaní v xtermu bylo také trhané. Procesor nebyl využit naplno a zatížení velmi kolísala. Přesto bylo zatížení pravidelně rozděleno mezi všechny procesy a nevybočilo ani po 4000 opakování. X používal méně než 1 % procesoru.

Pak následovalo otestování Molnarova CFS:

Chová se mnohem lépe, pohyb myši je naprosto plynulý i při velmi vysoké zátěži. Všiml jsem si, že plánovač změnil nice X na –19. Nedíval jsem se do kódu, ale vypadá to dost podezřele. Změnil jsem to na 0 a chování se nezměnilo. Zatížení procesoru je rozloženo velmi plynule a není vidět žádná prodleva (idle). X používal méně než 1 % procesoru.

Willy Tarreau k výsledkům testů připojil i vlastní dojmy z testování. Nová koncepce je podle něj velmi zajímavá, ale zatím není dostatečně vyzkoušená. „Myslím, že CFS je založen na slibnějším konceptu, ale je zatím méně vyspělý.„ Druhý testovaný se naopak choval hůře, ale je zřejmě robustnější. „Staircase Deadline vykazoval místy podivné chování, nepoužíval všechny procesory a místy se systém trhal. Zřejmě se však bude jednat o méně riskantní řešení pro nasazení v Linuxu. Bude to ale asi poslední O(1) plánovač, který bude časem nahrazen CFS (nebo jiným), a ten nabídne plynulost CFS a robustnost SD.”

Závěrem

Zdá se, že cesta byla objevena a zbývá po ní „jen” dojít k cíli. Nový CFS vypadá velmi slibně, bohužel se jedná o velmi čerstvý a nevyzkoušený kus kódu. Logické by proto bylo dát přednost jeho konkurentovi. Na druhou stranu by jeho začlenění mohlo prospět nejen linuxovému desktopu. Rozhodně se jedná o velmi důležitou změnu a vývojáři se jí budou jistě nadále zabývat.

Anketa

Zvýšení priority X serveru je

Našli jste v článku chybu?
Lupa.cz: Měřičům síly hesla se nedá věřit. Víte proč?

Měřičům síly hesla se nedá věřit. Víte proč?

Vitalia.cz: Čejkovické bylinkové slavnosti už tuto neděli

Čejkovické bylinkové slavnosti už tuto neděli

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

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

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

Co najdete uvnitř kosmické sondy?

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

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

Vitalia.cz: Syfilis: To není „nemoc z lásky“

Syfilis: To není „nemoc z lásky“

Vitalia.cz: Galerie: Strouhanka ze starých rohlíků? Kdepak

Galerie: Strouhanka ze starých rohlíků? Kdepak

Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

DigiZone.cz: Skylink přepracoval web

Skylink přepracoval web

Vitalia.cz: Co potřebujete vědět o zubech moudrosti?

Co potřebujete vědět o zubech moudrosti?

Vitalia.cz: 9 potravin, které nesmí chybět v jídelníčku těhotné

9 potravin, které nesmí chybět v jídelníčku těhotné

Vitalia.cz: Kedlubna, neobyčejná zelenina

Kedlubna, neobyčejná zelenina

Podnikatel.cz: Novela zákoníku práce. Řeší homeworking

Novela zákoníku práce. Řeší homeworking

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

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

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

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty