Hlavní navigace

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?

28. 4. 2007 0:09

A potom az budu potrebovat neco vic, tak zadam do googlu logicky black-white trees a budu namydleny, protoze neznam cizi realie a jde mi pouze o techniku. Dekuji pekne.

11. 7. 2007 14:41

A ako vies, ze si mal poruchu osobnosti aj pred psychoterapiou ?
Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

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

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

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

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

Přehledná titulka, průvodci, responzivita

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

ČRo rozšiřuje DAB do Berouna

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

Rakovina oka. Jak ji poznáte?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

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

Jsou čajové sáčky toxické?

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

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

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

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

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

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

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

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

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

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

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

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

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

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA