Výkon

Jak vymazat mezipaměť v systému Linux

Jak vymazat mezipaměť v systému Linux
Mezipaměť systému souborů linux (Page Cache) se používá ke zrychlení operací IO.  Za určitých okolností může správce nebo vývojář chtít ručně vymazat mezipaměť.  V tomto článku vysvětlíme, jak funguje mezipaměť systému souborů Linux.  Poté si ukážeme, jak sledovat využití mezipaměti a jak mezipaměť vymazat.  Provedeme několik jednoduchých experimentů s výkonem, abychom ověřili, že mezipaměť funguje podle očekávání a že postup vypláchnutí a vymazání mezipaměti funguje také podle očekávání.

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í.

Recenze bezdrátové myši Microsoft Sculpt Touch
Nedávno jsem četl o Microsoft Sculpt Touch bezdrátová myš a rozhodl se ji koupit. Po chvíli používání jsem se rozhodl se s ním podělit o své zkušenost...
Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...