Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vám pomůže porozumět osvědčeným postupům mezipaměti systému souborů pro Azure NetApp Files.
Nastavení mezipaměti systému souborů
Potřebujete pochopit následující faktory týkající se možností ladění mezipaměti systému souborů:
- Vyprázdnění špinavé vyrovnávací paměti ponechá data v čistém stavu použitelném pro budoucí čtení, dokud zatížení paměti povede k vyřazení.
- Pro asynchronní operaci vyprazdování existují tři triggery:
- Na základě času: Když vyrovnávací paměť dosáhne věku definovaného touto nastavitelnou hodnotou, musí být označena k čištění (to znamená, vysypání nebo zápisu do úložiště).
- Tlak na paměť: Podrobnosti najdete v tématu
vm.dirty_ratio | vm.dirty_bytes. - Zavřít: Při zavření popisovače souboru se všechny špinavé vyrovnávací paměti asynchronně vyprázdní do úložiště.
Tyto faktory jsou řízeny čtyřmi parametry. Každý tunable lze dynamicky a trvale ladit pomocí tuned nebo sysctl v /etc/sysctl.conf souboru. Ladění těchto proměnných zlepšuje výkon pro aplikace.
Poznámka:
Informace probírané v tomto článku byly odhaleny během cvičení ověřování SAS GRID a SAS Viya. Proto jsou nastavitelné parametry založeny na lekcích získaných z ověřovacích cvičení. Mnoho aplikací má podobné výhody při ladění těchto parametrů.
vm.dirty_ratio | vm.dirty_bytes
Tyto dvě tunable definují množství paměti RAM využitelné pro data upravená, ale ještě není zapsána do stabilního úložiště. Ať už je automaticky nastavena jakákoli laditelná možnost, druhá laditelná možnost se nastaví na nulu; RedHat doporučuje proti ručnímu nastavení kterékoliv z těchto dvou laditelných možností na nulu. Možnost vm.dirty_ratio (výchozí hodnota těchto dvou) je nastavená službou Red Hat na 20 % nebo 30 % fyzické paměti v závislosti na operačním systému, což je významné množství vzhledem k využití paměti moderních systémů. Je třeba vzít v úvahu nastavení vm.dirty_bytes , nikoli vm.dirty_ratio pro konzistentnější prostředí bez ohledu na velikost paměti. Například průběžná práce se službou SAS GRID určila 30 MiB vhodné nastavení pro nejlepší celkový výkon smíšených úloh.
vm.dirty_background_ratio | vm.dirty_background_bytes
Tyto tunable definují výchozí bod, kde mechanismus zpětného zápisu Linuxu začne vyprázdnit špinavé bloky do stabilního úložiště. Red Hat ve výchozím nastavení používá 10 % fyzické paměti, což je u velkého paměťového systému významné množství dat, která se mají začít vyprázdnit. V minulosti se doporučovalo nastavit vm.dirty_background na velikost 1/5 vm.dirty_ratio nebo vm.dirty_bytes v případě SAS GRIDu. Vzhledem k tomu, jak agresivně je nastavení vm.dirty_bytes určeno pro SAS GRID, není zde nastavena žádná konkrétní hodnota.
vm.dirty_expire_centisecs
Toto laditelné nastavení definuje, jak stará může být špinavá vyrovnávací paměť, než se musí označit pro asynchronní zápis. Vezměte například pracovní vytížení CAS v SAS Viya. Dočasné úlohy s dominantním zápisem zjistily, že nastavení této hodnoty na 300 centisekund (3 sekundy) bylo optimální, přičemž výchozí hodnota je 3000 centisekund (30 sekund).
SAS Viya sdílí data CAS do několika malých bloků několika megabajtů. Místo zavření těchto popisovačů souborů po zápisu dat do jednotlivých shardů zůstanou popisovače otevřené a příslušné vyrovnávací paměti jsou aplikací paměťově mapovány. Bez uzavření nedojde k žádnému vyčištění, dokud se neukáže buď zvýšený tlak na paměť, nebo neuplyne 30 sekund. Čekání na zatížení paměti se ukázalo jako neoptimální, stejně jako čekání na vypršení dlouhého časovače. Na rozdíl od SAS GRID, která hledala nejlepší celkovou propustnost, se SAS Viya zaměřila na optimalizaci šířky pásma zápisu.
vm.dirty_writeback_centisecs
Vlákno vyplachování jádra zodpovídá za asynchronní vyprázdnění špinavých vyrovnávacích pamětí mezi jednotlivými úseky spánku vláken pro výplach. Tento parametr definuje dobu strávenou spaním mezi pročištěními. Vzhledem k 3sekundové vm.dirty_expire_centisecs hodnotě používané SAS Viya nastavil SAS tento tunable na 100 centisekund (1 sekundu) místo výchozí hodnoty 500 centisekund (5 sekund), aby se zjistil nejlepší celkový výkon.
Dopad neladěné mezipaměti systému souborů
Při zvažování výchozích možností ladění virtuální paměti a množství paměti RAM v moderních systémech může zpětný zápis zpomalovat další operace vázané na úložiště z pohledu konkrétního klienta, který tuto smíšenou úlohu řídí. Následující příznaky se dají očekávat od neladěného počítače s Linuxem náročným na zápis a ukládání do mezipaměti.
- Výpisy seznamů
lsadresářů trvají tak dlouho, že se zdají být nereagující. - Propustnost čtení v systému souborů se výrazně snižuje oproti propustnosti zápisu.
-
nfsiostatzaznamenává latence zápisu v sekundách nebo vyšších.
Toto chování může zaznamenat pouze počítač s Linuxem, který provádí smíšenou úlohu náročné na zápis. Uživatelský zážitek se zhoršuje u všech svazků NFS připojených k jednomu koncovému bodu úložiště. Pokud připojení pocházejí ze dvou nebo více koncových bodů, vykazují toto chování pouze svazky sdílející koncový bod.
Nastavení parametrů mezipaměti systému souborů, jak je popsáno v této části, ukázalo, že problémy řeší.
Monitorování virtuální paměti
Abyste pochopili, co se děje s virtuální pamětí a zpětným zápisem, zvažte následující fragment kódu a výstup. Dirty představuje množství špinavé paměti v systému a zpětný zápis představuje množství paměti, která se aktivně zapisuje do úložiště.
# while true; do echo "###" ;date ; egrep "^Cached:|^Dirty:|^Writeback:|file" /proc/meminfo; sleep 5; done`
Následující výstup pochází z experimentu, ve kterém vm.dirty_ratiovm.dirty_background byl poměr nastaven na 2 % a 1 % fyzické paměti. V tomto případě začalo vyprázdnění na 3,8 GiB, což je 1 % z paměťového systému o kapacitě 384 GiB. Zpětný zápis se velmi podobá propustnosti zápisu do NFS.
Cons
Dirty: 1174836 kB
Writeback: 4 kB
###
Dirty: 3319540 kB
Writeback: 4 kB
###
Dirty: 3902916 kB <-- Writes to stable storage begins here
Writeback: 72232 kB
###
Dirty: 3131480 kB
Writeback: 1298772 kB
Další kroky
- Osvědčené postupy pro přímé vstupně-výstupní operace Linuxu pro Azure NetApp Files
- Osvědčené postupy pro možnosti připojení systému souborů NFS pro Linux pro Azure NetApp Files
- Osvědčené postupy týkající se souběžnosti Linuxu pro službu Azure NetApp Files
- Osvědčené postupy pro čtení systému souborů NFS pro Linux
- Osvědčené postupy skladových položek virtuálních počítačů Azure
- Srovnávací testy výkonu pro Linux