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

Ohodnoťte jako ve škole:

Průměrná známka 3,12

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
DigiZone.cz: Deset let od 1. kulatého stolu DigiZone.cz

Deset let od 1. kulatého stolu DigiZone.cz

Podnikatel.cz: Podání k DPH jinak než online jsou neúčinná

Podání k DPH jinak než online jsou neúčinná

120na80.cz: 10 nej přípravků na holení

10 nej přípravků na holení

Lupa.cz: Přenos hokeje padal kvůli útoku, tvrdí O2

Přenos hokeje padal kvůli útoku, tvrdí O2

120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

DigiZone.cz: UPC umí televizi sedm dní nazpět

UPC umí televizi sedm dní nazpět

Podnikatel.cz: Přechod z OSVČ na firmu? Totální šok!

Přechod z OSVČ na firmu? Totální šok!

Podnikatel.cz: Šizený guláš na pultě. Jako Lidl to nedělejte

Šizený guláš na pultě. Jako Lidl to nedělejte

Vitalia.cz: Sója a rakovina

Sója a rakovina

Lupa.cz: Jak EET vidí ajťák aneb Drahá vražda UX

Jak EET vidí ajťák aneb Drahá vražda UX

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid

Lupa.cz: Babiš: nevím o návodu, jak obejít blokování webů

Babiš: nevím o návodu, jak obejít blokování webů

Vitalia.cz: Muži kouří 24 cigaret denně, ženy o dost míň

Muži kouří 24 cigaret denně, ženy o dost míň

120na80.cz: Jak si udržet zdravou vaginu

Jak si udržet zdravou vaginu

Lupa.cz: Kam si doma dáte internet věcí? Na polici?

Kam si doma dáte internet věcí? Na polici?

Vitalia.cz: Taky ji kupujete? Je šizená

Taky ji kupujete? Je šizená

Vitalia.cz: SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

Podnikatel.cz: Konečně vývar. Skoro jako od Steva Jobse

Konečně vývar. Skoro jako od Steva Jobse