Jak funguje mezipaměť systému souborů Linux
Jádro si vyhrazuje určité množství systémové paměti pro ukládání přístupů na disk systému souborů do mezipaměti, aby byl celkový výkon rychlejší. Mezipaměť v linuxu se nazývá Cache stránky. Velikost mezipaměti stránky je konfigurovatelná s velkorysými výchozími hodnotami povolenými pro ukládání do mezipaměti velkého množství bloků disků. Maximální velikost mezipaměti a zásady, kdy mají být data z mezipaměti vyřazena, lze upravit pomocí parametrů jádra. Přístup linuxové mezipaměti se nazývá mezipaměť pro zpětný zápis. To znamená, že pokud jsou data zapsána na disk, jsou zapsána do paměti do mezipaměti a označena jako špinavá v mezipaměti, dokud nejsou synchronizována s diskem. Jádro udržuje interní datové struktury, aby optimalizovalo, která data se mají z mezipaměti vyřadit, když je v mezipaměti potřeba více místa.
Během linuxového čtení systémových volání jádro zkontroluje, zda jsou požadovaná data uložena v blocích dat v mezipaměti, což by byl úspěšný zásah do mezipaměti a data budou vrácena z mezipaměti bez provedení jakéhokoli vstupu / výstupu do systému disku. V případě chybějící mezipaměti budou data načtena ze systému IO a mezipaměť bude aktualizována na základě zásad ukládání do mezipaměti, protože stejná data budou pravděpodobně znovu požadována.
Když jsou dosaženy určité prahové hodnoty využití paměti, úlohy na pozadí začnou zapisovat špinavá data na disk, aby bylo zajištěno vymazání mezipaměti paměti. Mohou mít dopad na výkon aplikací náročných na paměť a CPU a vyžadují vyladění správci nebo vývojáři.
Použití příkazu Free k zobrazení využití mezipaměti
Volný příkaz z příkazového řádku můžeme použít k analýze systémové paměti a množství paměti přidělené do mezipaměti. Viz příkaz níže:
# zdarma -m
Co vidíme z volný, uvolnit výše uvedený příkaz je, že existuje 7.5 GB RAM v tomto systému. Z toho je použito pouze 209 MB a 6.5 MB je zdarma. 667 MB se používá v mezipaměti vyrovnávací paměti. Pokusme se nyní toto číslo zvýšit spuštěním příkazu, který vygeneruje soubor 1 Gigabyte a přečte soubor. Následující příkaz vygeneruje přibližně 100 MB náhodných dat a poté připojí 10 kopií souboru dohromady do jednoho velký_soubor.
# dd if = / dev / random of = / root / data_file count = 1400000# for i in 'seq 1 10'; dělat echo $ i; cat datovy_soubor >> velky_soubor; Hotovo
Nyní si přečtěte tento soubor 1 Gig a znovu zkontrolujte volný příkaz:
# cat large_file> / dev / null# zdarma -m
Vidíme, že využití mezipaměti mezipaměti vzrostlo z 667 na 1735 megabajtů, což je zhruba 1 gigabajtové zvýšení využití mezipaměti mezipaměti.
Příkaz Proc Sys VM Drop Caches
Linuxové jádro poskytuje rozhraní pro vypuštění mezipaměti, vyzkoušejte tyto příkazy a podívejte se na dopad na bezplatné nastavení.
# echo 1> / proc / sys / vm / drop_caches# zdarma -m
Vidíme výše, že většina přidělení mezipaměti vyrovnávací paměti byla uvolněna tímto příkazem.
Experimentální ověření, že mezipaměti fungují
Můžeme provést ověření výkonu pomocí mezipaměti ke čtení souboru? Přečtěte si soubor a zapište jej zpět do / dev / null, abychom otestovali, jak dlouho trvá načtení souboru z disku. Načasujeme to s čas příkaz. Tento příkaz provádíme ihned po vymazání mezipaměti výše uvedenými příkazy.
Trvalo to 8.4 sekundy na načtení souboru. Přečtěte si to znovu, když by měl být soubor v mezipaměti souborového systému, a podívejme se, jak dlouho to teď trvá.
Výložník! Trvalo to jen .2 sekundy ve srovnání s 8.4 sekundy na načtení, když soubor nebyl uložen do mezipaměti. Chcete-li ověřit, zopakujte to znovu nejprve vymazáním mezipaměti a následným čtením souboru dvakrát.
Fungovalo to perfektně podle očekávání. 8.5 sekund pro čtení bez mezipaměti a .2 sekundy pro čtení v mezipaměti.
Závěr
Mezipaměť stránky je v systémech Linux automaticky povolena a transparentně zrychlí IO uložením nedávno použitých dat do mezipaměti. Chcete-li ručně vymazat mezipaměť, kterou lze snadno provést, zasláním příkazu echo do souborového systému / proc označujícího jádro, aby mezipaměť zrušila a uvolnila paměť použitou pro mezipaměť. Pokyny pro spuštění příkazu byly zobrazeny výše v tomto článku a ukázaly se také experimentální ověření chování mezipaměti před a po vyprázdnění.