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

Názor k diskusi Vysoký IO wait zastavuje Debian

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

Re: Vysoký IO wait zastavuje Debian

celé vlákno

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.