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

Vlákno názorů k diskusi Vysoký IO wait zastavuje Debian

wakatana
1. 3. 2010 7:54

Re: Vysoký IO wait zastavuje Debian

Ahojte vsetci, v linuxe sa nejaku tu dobu pohybujem no z vasej diskusie absolutne nechapem o com je rec :)
Chcel by som sa preto opytat kde sa da dopatrat k tymto informaciam ohladom vykonu linux ? Je to premna velka neznama a nenasiel som nejake ucelenejsie vysvetlenie. Zaujima ma hlavne zvysovanie vykonu a k tomu asi bude potreba znalosti /proc a podobne. Rovnako by ma zaujimalo ako je to v linuxe vlastne s pamatou, CPU, cachovanim roznymi bufframi a pod. Napr raz som hladal proces ktory vlastne zerie najvac syst. prostriedkov a dopatral som sa k tomu ze linux nema prikaz ktory to vylistuje (ps, top, vraj ukazuju vytazenie procesom ale aj v zavislosti na kniziciach ktore mozu byt zdielane, takze to neodraza skutocnost)
Prosim Vas poradte kde najst nejake blizsie info ohladom „hlbsieho“ fungovania spravy procesov, IO, cachovania a vykonu (z adminovho hladiska, teda dufam ze k tom unebude potreba C), pripadne by som bol aj za serial tu na roote :) nakolko nikde na nete som tuto temu nevidel pekne vysvetlenu.

Dakujem

Tomas Matejicek aura:54
6. 3. 2010 8:15

Re: Vysoký IO wait zastavuje Debian

Ono to asi do jednoducheho howto shrnout nejde. Clovek musi vedet, jak pracuje to, jak pracuje tamto, a dat si to nejak dohromady, vykon masiny je vzdy zavisly na hodne promennych…

Napriklad tady ten puvodni post, vubec nevim jak bych mu poradil, a to se povazuju za experta na toto tema :)

Vysoke IOwait znamena, ze chce system pracovat s diskem vic, nez disk zvlada, a proto se na ten disk ceka. Ja osobne treba swap partisnu nikde nemam a jsem odpurce swapu obecne, protoze swap je to nejhorsi co se muze stat – system zacne ukladat na disk, to ho zpomali, nahromadi se nevyrizene pozadavky (apache, atd) a je treba vic pameti, tudiz dalsi swapovani, a dalsi zasek.

Pokud je vysoke IOwait i bez swap partisny, tak s tim diskem asi pracuje neco jineho. Treba apache se snazi neco posilat a je toho tolik ze nestiha cist?

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
8. 3. 2010 12:03

Re: Vysoký IO wait zastavuje Debian

Dobře napsaný swap nezpomaluje. TO je pouze doména linuxu, tam je swap příšerný a jádro o jádra se to nemění.

Už vůbec je blbost tvrdit, že ukládání na disk zpomaluje. Ukládání na disk lze vyřizovat asynchronně, tety není třeba na ukládání čekat. Jediný co může zdržovat je kombinace požadavků ulož následovaný požadavkem přečti. Ano, pak se musí čekat na dokončení uložení. A o tom to je. O tom, aby swapování bylo napsáno chytře, tak aby se těmto situacím systém pokuď možno vyhnul, což fakt není doménou linuxu.

faha
faha (neregistrovaný) ---.cust.sloane.cz
8. 3. 2010 12:39

Re: Vysoký IO wait zastavuje Debian

Zdravim, muzete ten „priserne“ napsany swap nejak dolozit? Hrabu se posledni dobou v kernelu sice coby janitor, ale tohle me zajima, slysim to prvne. Diky

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
8. 3. 2010 12:57

Re: Vysoký IO wait zastavuje Debian

Samozřejmě. Třeba mi odpovíte na otázku, proč se stránky aplikací neduplikují do swapu už od prvopočátku, a ne až když „dojde paměť“?

faha
faha (neregistrovaný) ---.cust.sloane.cz
8. 3. 2010 16:41

Re: Vysoký IO wait zastavuje Debian

Mno to nevim a otazka je jestli by se tak vubec melo dit a pouziva se to nekde jinde mimo Linux?!?

Napr. na redukci I/O lze pouze compcache (compressed in-memory swap device), coz se snazi udrzet data co nejdele ve fyzicke pameti i za cenu komprimace na ukor CPU, myslim(ale mozna take ne), ze neco podobneho pouziva i IBM na svych systemech.
http://code.google.com/p/compcache/

Jak si predstavujete tu duplikaci? Dojde pamet, jadro vyhodi z pameti data s tim,ze stejne ma duplikat ve swapu a kdyz na ne prijde rec tak je natahne zpet a pripadne zahodi jinou cast od ktere ma opet diplukat ve swapu?

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
8. 3. 2010 17:01

Re: Vysoký IO wait zastavuje Debian

V zásadě, tedy víceméně tak jak to dělají Windowsy. Od určité úrovně zaplnění, což je dejme tomu kolem 50% začínají ve chvílích, kdy nemá řadič co na práci duplikovat dirty stránky do swapu (to jak si pořád někteří linuxoví uživatelé stěžují, že windowsy swapují, i když nemusí). Tenhle proces má nízkou prioritu, pokud tedy na to nikdo nečeká. Tedy požadavky na čtení se vyřizují přednostně. Taky je tam nějaká logika, kterých stránek se to týká. Ty co se často mění, tak ty asi ne. Ono se statisticky potvrzuje, že 20% kódu provádí 80% času programu, takže bych si troufnul tvrdit, že podobně to bude u využitelnosti paměti.

Výhodou je, že operační systém může prakticky kdykoliv vyřídit požadavek přidělení dalších paměťových stránek bez odkladu. Zejména u procesů generující paměťové špičky, tedy zaalokují větší kus paměti, něco v něm zapíší, pak to přečtou a zahodí. Typicky třeba překladače.

Vracení paměti už není tak tragické. Buď prostě zůstane volná a časem se doplní podle potřeby jak budou procesy generovat výpadky stránek, nebo se nějakým statistickým způsobem vyhodnotí, které stránky se na pozadí zase dotáhnou zpět, případně se paměť zatím použije pro cache.

Druhým bodem je nerozlišování mezi pamětí aplikací a cache. Cache jsou namapovaný úseky různých souborů. Paměť aplikací jsou namapovaný úseky swapfile. Aplikace, která hodně čte z disku je v případě malé cache v nevýhodě, stejně tak, pokud se pro cache využívá zbývající paměť a ta je třeba skoro zaplněná. Pokud na linuxu použiju swappiness=100, mohu s tím nasimulovat odswapování paměti kvůli cache, ale chybí mi ta duplikace, operační prostě nemá k dispozici volné stránky, které by mohl přidělit pro cache. Kdyby si aplikace natáhla data do své paměti a pracovala v ní, získa větší working set, než bude-li spoléhat jen na cache. OS by měl lépe poznat, kdy je čas odswapovat stránky aplikací pro větší cache

Ani tohle není bez problémů. Windows XP měli ještě problém v prioritě. Takový AVG na pozadí pokud scanoval disk byl schopen způsobit oswapování všech aplikací pro větší cache. Ale Windows 7 už tohle mají ošetřené lépe a nestává se to.

faha
faha (neregistrovaný) ---.cust.sloane.cz
8. 3. 2010 17:12

Re: Vysoký IO wait zastavuje Debian

Pokud je VM pod velkym loadem dojde k jevu, kteremu se rika „SystemThrashing“, coz prakticky znamena ze vykon(propustnost) je degradovan natolik,ze procesy vetsinu sveho casu cekaji na disk.

Lze se tomu i brani napr. implementaci „swap token mechanism“, precetl jsem si o tom neco ale uz je dele.

http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/abs05-1.html
http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/papers/TR-05-1.pdf

Dalsi z moznosti, kterou pouziva napr. BSD je limitovani soubeznych procesu uspavanim a tim snizovani loadu na VM.

Je zajimave, ze se prakticky se stejnym problemem potikaji napr. i DB systemy a nektere implementuji neco podobneho po svem a nespolejaji tolik na jadro. (myslim, ze treba postgres, ale to bych kecal).