Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

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

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?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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:

davame_internetu_obsah
       

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

       

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení: Linux – Firewall, Samba, VPN

Na třídenním školení se naučíte nainstalovat a spravovat Firewall a Router, SAMBA Doménový a Souborový server. Dále si zprovozníte vlastní, zabezpečený VPN server.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,12

Přehled názorů

Zadrhnutí systému
zd.valek 24. 4. 2007 00:37
Nový
├ 
Re: Zadrhnutí systému
BLEK. 24. 4. 2007 03:19
Nový
│
├ 
Tento scheduiler mi pripomina RTAI ksched
anonymní uživatel 24. 4. 2007 10:41
Nový
│
│
└ 
je pravda, ze RTLinux scheduler je neprekonatelny
anonymní uživatel 24. 4. 2007 10:57
Nový
│
│
 
└ 
Re: je pravda, ze RTLinux scheduler je neprekonatelny
  24. 4. 2007 22:16
Nový
│
└ 
Re: Zadrhnutí systému
Clock 24. 4. 2007 15:18
Nový
│
 
└ 
Re: Zadrhnutí systému
BLEK. 25. 4. 2007 19:26
Nový
│
 
 
└ 
Re: Zadrhnutí systému
martin 26. 4. 2007 10:02
Nový
├ 
Re: Zadrhnutí systému
Jirka 24. 4. 2007 08:59
Nový
│
├ 
Re: Zadrhnutí systému
Jirka 24. 4. 2007 09:00
Nový
│
└ 
Re: Zadrhnutí systému
zippy 24. 4. 2007 13:29
Nový
│
 
└ 
Re: Zadrhnutí systému
Harkonen 24. 4. 2007 14:26
Nový
├ 
Re: Zadrhnutí systému
Cx 24. 4. 2007 09:29
Nový
│
└ 
Re: Zadrhnutí systému
andreee 24. 4. 2007 09:40
Nový
│
 
├ 
Re: Zadrhnutí systému
Michal 24. 4. 2007 09:47
Nový
│
 
└ 
Re: Zadrhnutí systému
andreee 24. 4. 2007 09:53
Nový
├ 
Re: Zadrhnutí systému
kb 24. 4. 2007 20:37
Nový
└ 
Re: Zadrhnutí systému
anonymní uživatel 28. 4. 2007 09:25
Nový
Už se těším!
m1c4a1 24. 4. 2007 01:46
Nový
├ 
Re: Už se těším!
koudy 24. 4. 2007 09:12
Nový
└ 
Re: Už se těším!
repli 24. 4. 2007 14:32
Nový
Rizika nasazení na produkčním stroji?
happymaster23 24. 4. 2007 02:38
Nový
└ 
Re: Rizika nasazení na produkčním stroji?
z80pin6 24. 4. 2007 06:11
Nový
 
├ 
Re: Rizika nasazení na produkčním stroji?
BLEK. 24. 4. 2007 13:07
Nový
 
│
├ 
Re: Rizika nasazení na produkčním stroji?
anonymní uživatel 24. 4. 2007 18:27
Nový
 
│
└ 
Re: Rizika nasazení na produkčním stroji?
anonymous 24. 4. 2007 22:17
Nový
 
│
 
├ 
Re: Rizika nasazení na produkčním stroji?
ldx 25. 4. 2007 12:06
Nový
 
│
 
│
└ 
Re: Rizika nasazení na produkčním stroji?
BLEK. 25. 4. 2007 19:22
Nový
 
│
 
│
 
└ 
Re: Rizika nasazení na produkčním stroji?
ldx 29. 4. 2007 22:36
Nový
 
│
 
└ 
Re: Rizika nasazení na produkčním stroji?
BLEK. 25. 4. 2007 19:23
Nový
 
│
 
 
└ 
Re: Rizika nasazení na produkčním stroji?
Paulie Paulie 11. 7. 2007 14:41
Nový
 
├ 
Re: Rizika nasazení na produkčním stroji?
repulsive 24. 4. 2007 13:26
Nový
 
└ 
Re: Rizika nasazení na produkčním stroji?
happymaster23 24. 4. 2007 16:30
Nový
 
 
└ 
Re: Rizika nasazení na produkčním stroji?
Hraesvelgr Odin 24. 4. 2007 22:47
Nový
plánovač pro disky
sh 24. 4. 2007 08:42
Nový
├ 
Re: plánovač pro disky
paranoiq 24. 4. 2007 09:02
Nový
└ 
Re: plánovač pro disky
Michal 24. 4. 2007 09:14
Nový
Puvod algoritmu
Jirka 24. 4. 2007 08:57
Nový
└ 
Re: Puvod algoritmu
Peto_MiG 24. 4. 2007 09:14
Nový
 
└ 
Re: Puvod algoritmu
ava 24. 4. 2007 09:40
Nový
 
 
└ 
Re: Puvod algoritmu - oprava
ava 24. 4. 2007 09:42
Nový
hmm
ava 24. 4. 2007 09:00
Nový
├ 
Re: hmm
Jirka 24. 4. 2007 09:01
Nový
│
└ 
Re: hmm
petr_p 24. 4. 2007 10:49
Nový
└ 
Re: hmm
YF 24. 4. 2007 10:44
Nový
 
└ 
Re: hmm
Michal 24. 4. 2007 11:24
Nový
 
 
└ 
Re: hmm
mys elf 24. 4. 2007 21:50
Nový
 
 
 
└ 
Re: hmm
lada 24. 4. 2007 22:08
Nový
 
 
 
 
└ 
Re: hmm
Pichi 26. 4. 2007 08:32
Nový
 
 
 
 
 
└ 
Re: hmm
anonymní uživatel 26. 4. 2007 15:06
Nový
A jaky planovac ma Windows XP?
NT 24. 4. 2007 13:11
Nový
├ 
Re: A jaky planovac ma Windows XP?
murzim 24. 4. 2007 13:34
Nový
│
└ 
Re: A jaky planovac ma Windows XP?
anonymní uživatel 24. 4. 2007 13:41
Nový
│
 
├ 
Re: A jaky planovac ma Windows XP?
murzim 24. 4. 2007 13:43
Nový
│
 
└ 
Re: A jaky planovac ma Windows XP?
Jiri Cincura 28. 4. 2007 19:52
Nový
├ 
Re: A jaky planovac ma Windows XP?
PbEd 24. 4. 2007 18:29
Nový
│
└ 
Re: A jaky planovac ma Windows XP?
mys elf 25. 4. 2007 07:47
Nový
│
 
├ 
Re: A jaky planovac ma Windows XP?
PbEd 25. 4. 2007 10:02
Nový
│
 
└ 
Re: A jaky planovac ma Windows XP?
miroušek 25. 4. 2007 20:09
Nový
├ 
Re: A jaky planovac ma Windows XP?
tom 24. 4. 2007 18:35
Nový
├ 
Re: A jaky planovac ma Windows XP?
kaapo 25. 4. 2007 11:20
Nový
│
└ 
Re: A jaky planovac ma Windows XP?
mato 21. 6. 2007 13:18
Nový
└ 
Re: A jaky planovac ma Windows XP?
enki 28. 4. 2007 10:15
Nový
Červeno-černé stromy ...
dfg 24. 4. 2007 13:52
Nový
├ 
Re: Červeno-černé stromy ...
duri 24. 4. 2007 21:12
Nový
│
└ 
Re: Červeno-černé stromy ...
petris 24. 4. 2007 21:43
Nový
│
 
└ 
Re: Červeno-černé stromy ...
lobo 24. 4. 2007 23:18
Nový
│
 
 
└ 
Re: Červeno-černé stromy ...
hisaak 25. 4. 2007 12:12
Nový
│
 
 
 
└ 
Re: Červeno-černé stromy ...
anonymní uživatel 25. 4. 2007 12:31
Nový
│
 
 
 
 
└ 
Re: Červeno-černé stromy ...
MPe 26. 4. 2007 09:00
Nový
│
 
 
 
 
 
└ 
Re: Červeno-černé stromy ...
anonymní uživatel 26. 4. 2007 15:15
Nový
│
 
 
 
 
 
 
└ 
Re: Červeno-černé stromy ...
ee 28. 4. 2007 11:52
Nový
│
 
 
 
 
 
 
 
└ 
Re: Červeno-černé stromy ...
duri 29. 4. 2007 20:51
Nový
├ 
Re: Červeno-černé stromy ...
comp 24. 4. 2007 22:20
Nový
├ 
Re: Červeno-černé stromy ...
b*d 25. 4. 2007 12:17
Nový
├ 
Re: Červeno-černé stromy ...
miroušek 25. 4. 2007 20:21
Nový
├ 
Re: Červeno-černé stromy ...
Pichi 26. 4. 2007 22:28
Nový
│
└ 
Re: Červeno-černé stromy ...
gilhad Gilhad 28. 4. 2007 00:09
Nový
└ 
Re: Červeno-černé stromy ...
anonymní uživatel 28. 4. 2007 09:41
Nový
 
└ 
Re: Červeno-černé stromy ...
anonymní uživatel 28. 4. 2007 09:44
Nový
 
 
└ 
Re: Červeno-černé stromy ...
anonymní uživatel 28. 4. 2007 09:49
Nový
geneticke algoritmy pouzite v scheduleri
toxygen 24. 4. 2007 16:46
Nový
Otázečka
Majkls 24. 4. 2007 17:33
Nový
MacOS
Mirek 25. 4. 2007 08:43
Nový
├ 
Re: MacOS
Jirka 25. 4. 2007 14:33
Nový
└ 
Re: MacOS
LO 11. 7. 2007 11:30
Nový
aiglx
pandau 25. 4. 2007 15:05
Nový
Jadro
anonymní uživatel 25. 4. 2007 18:33
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem