Osvědčené postupy mezipaměti systému souborů Linuxu pro Azure NetApp Files
Tento článek vám pomůže porozumět osvědčeným postupům mezipaměti systému souborů pro Azure NetApp Files.
Ladění 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 tímto laděním, musí být označena k čištění (to znamená, vyprazdňová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 laděními. 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. Vyladění jsou proto založená 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ě. Podle toho, která možnost ladění je nastavena automaticky, nastaví ostatní tunable na nulu; RedHat doporučuje ruční nastavení jedné ze dvou tunable na nulu. Možnost vm.dirty_ratio
(výchozí hodnota těchto dvou) je nastavena redhat 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ě. Redhat ve výchozím nastavení používá 10 % fyzické paměti, což je ve velkém paměťovém systému značné množství dat, která se mají začít vyprázdnit. V případě SAS GRIDu bylo v minulosti doporučení nastaveno vm.dirty_background
na velikost 1/5 vm.dirty_ratio
nebo vm.dirty_bytes
. Vzhledem k tomu, jak je nastavení agresivně vm.dirty_bytes
nastaveno pro SAS GRID, zde není nastavena žádná konkrétní hodnota.
vm.dirty_expire_centisecs
Tato tunable definuje, jak staré může být špinavá vyrovnávací paměť před tím, než se musí označit pro asynchronní zápis. Vezměte například úlohu CAS 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 horizontálních oddílů zůstanou popisovače otevřené a vyrovnávací paměti jsou mapovány aplikací. Bez uzavření není žádné vyprázdnění, dokud nedojde k průchodu tlaku paměti nebo 30 sekund. Čekání na zatížení paměti se ukázalo jako neoptimální, stejně jako čekání na dlouhou dobu, než vyprší platnost. Na rozdíl od SLUŽBY SAS GRID, která hledala nejlepší celkovou propustnost, se SAS Viya podívala na optimalizaci šířky pásma zápisu.
vm.dirty_writeback_centisecs
Vlákno vyprázdnění jádra zodpovídá za asynchronní vyprázdnění nečistých vyrovnávacích pamětí mezi jednotlivými vyprázdněním vlákna spánku. Tento vyladěný definuje množství strávené spaním mezi vyprázdně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.
- Zobrazení seznamů
ls
adresářů trvá dostatečně dlouho, než se zobrazí nereagující. - Propustnost čtení v systému souborů se výrazně snižuje oproti propustnosti zápisu.
nfsiostat
zaznamená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. Prostředí je navíc degradované vůči všem svazkům NFS připojeným 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, aby se vyřešily problémy.
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_ratio
vm.dirty_background
byl poměr nastaven na 2 % a 1 % fyzické paměti. V tomto případě začalo vyprázdnění v 3,8 GiB, 1% z paměťového systému 384-GiB. Zpětný zápis se podobá propustnosti zápisu do systému souborů 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