Hlavní navigace

Nepotřebujeme další cache

2. 2. 2009 14:47 (aktualizováno) Petr Krčmář

K napsání této reakce mě přimněl sousední blog, na kterém Martina Mikalu napadlo použít flash paměti jako přídavnou cache k pevným diskům. Moje reakce v diskusi se nakonec
rozrostla natolik, že jsem se ji rozhodl napsat jako samostatný blogpost.

Rozhodně není mým cílem článeček nebo jeho autora shazovat. No, ony podobné myšlenky napadají asi každého (včetně mě), ale když se nad tím zamyslíte, zjistíte, že by navrhovaná flashcache tolik výhod nepřinesla.

Jednak jsou dnešní disky velmi rychlé a zrovna paměť typu flash by nepřinesla zásadní zlepšení. Běžný disk dokáže dnes číst a zapisovat rychlostí v řádu desítek megabajtů za sekundu. Běžné paměťové karty a standardní média s flash pamětí se k této hranici přibližují a řekněmě, že se dokaží dostat na podobná čísla. Zásadní změnu v rychlosti by tak naše flashcache nepřinesla.

Můžeme ovšem argumentovat tím, že bychom mohli využít jiný typ paměti, který by nabídnul vyšší rychlosti. Otázka ovšem zní: Proč cpát paměť k disku, když ji můžeme stejně dobře použít jako systémovou paměť?

V každém případě ale dnešní počítače mají diskové cache až až, tedy v podobě běžné RAM. Linux například dynamicky alokuje volnou paměť jako cache pro disky, takže já mám v tuhle chvílí několik stovek megabajtů jako diskovou cache. Pokud uvážíme, že běžný uživatel má dnes v počítači třeba gigabajt paměti, máme cache habaděj.

Navíc taková cache má řadu výhod. Jednak může systém lépe vyhodnotit, co si v ní má podržet, proto je taková vyrovnávací paměť „chytřejší“. Cache u disku má přeci jen o datech velmi omezené informace.

Navíc konkrétně v Linux (jako jádro) může ve své cache dělat různá harakiri. Pokud například zjistí, že je potřeba spustit binárku, která je zrovna v cache (alespoň část), nepřesouvá si ji po paměti, ale rovnou si příslušné bloky přeoznačí z cache na systémovou paměť a rovnou spouští. Navíc pokud aplikaci ukončíte, máte zase paměť navíc, kterou můžete opět realokovat jako vyrovnávací.

Nevím, jak to dějají MS Windows, ale řekl bych, že podobně. Kapacity vyrovnávacích paměti umístěných přímo na discích se zastavili na několika megabajtech. Dnes by přeci nebyl problém dát na disk 256 MB paměti, která by se chovala jako cache. Ale výrobci (stejně jako teď vy) tuší, že by to nepřineslo zásadní zlepšení.

Sdílet