Sdílet prostřednictvím


Aspekty výkonu systému souborů NFS (Network File System) 3.0 ve službě Azure Blob Storage

Blob Storage teď podporuje protokol NFS (Network File System) 3.0. Tento článek obsahuje doporučení, která vám pomůžou optimalizovat výkon požadavků na úložiště. Další informace o podpoře systému souborů NFS 3.0 pro Azure Blob Storage najdete v tématu Podpora protokolu NFS (Network File System) 3.0 pro službu Azure Blob Storage.

Přidání klientů pro zvýšení propustnosti

Azure Blob Storage se škáluje lineárně, dokud nedosáhne maximálního limitu výchozího a příchozího přenosu dat účtu úložiště. Vaše aplikace proto mohou dosáhnout vyšší propustnosti pomocí více klientů. Pokud chcete zobrazit omezení výchozího a příchozího přenosu dat účtu úložiště, přečtěte si téma Škálovatelnost a cíle výkonu pro účty úložiště úrovně Standard.

Následující graf ukazuje, jak se při přidávání dalších klientů zvyšuje šířka pásma. V tomto grafu je klient virtuální počítač a se standardním účtem úložiště pro obecné účely v2.

Standardní výkon

Následující graf ukazuje stejný účinek při použití na účet úložiště objektů blob bloku Úrovně Premium.

Výkon premium

Používejte účty úložiště prémiových blokových blobů pro malé aplikace.

Ne všechny aplikace se dají škálovat přidáním dalších uživatelů. Pro tyto aplikace účet Azure Premium pro úložiště blokových blobů nabízí konzistentní nízkou latenci a vysokou transakční rychlost. Účet úložiště blokových blobů Premium může dosáhnout maximální šířky pásma s menším počtem vláken a klientů. Například u jednoho klienta může účet úložiště objektů blob bloku úrovně Premium dosáhnout 2,3krát větší šířku pásma ve srovnání se stejným nastavením použitém s účtem úložiště pro obecné účely v2 úrovně Standard.

Každý sloupec v následujícím grafu ukazuje rozdíl v dosažené přenosové kapacitě mezi účty výkonového úložiště Premium a Standard. S rostoucím počtem klientů se tento rozdíl sníží.

Relativní výkon

Zvyšte velikost vyrovnávací paměti pro čtení předem, abyste zvýšili propustnost čtení velkých souborů.

Parametr jádra read_ahead_kb představuje množství dalších dat, která by se měla číst po splnění daného požadavku na čtení. Tento parametr můžete zvýšit na 16 MiB, aby se zlepšila propustnost čtení velkých souborů.

export AZMNT=/your/container/mountpoint

echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb

Vyhněte se častým přepisům dat

Dokončení operace přepsání trvá delší dobu než nová operace zápisu. Důvodem je, že operace přepsání systému souborů NFS, zejména částečná místní úprava souboru, je kombinací několika základních operací objektu blob: operace čtení, úpravy a zápisu. Aplikace, která vyžaduje časté úpravy na místě, proto nejsou vhodné pro účty pro úložiště objektů blob s povoleným systémem souborů NFS.

Nasazení služby Azure HPC Cache pro aplikace citlivé na latenci

Některé aplikace můžou kromě vysoké propustnosti vyžadovat nízkou latenci. Azure HPC Cache můžete nasadit, abyste výrazně zlepšili latenci. Přečtěte si další informace o latenci ve službě Blob Storage.

Zvýšení počtu připojení TCP

Můžete použít volbu pro připojení nconnect k získání vyššího agregovaného výkonu čtení a zápisu z jednoho virtuálního počítače, ale pouze pokud má vaše jádro Linuxu podporu pro Azure nconnect.

nconnect je možnost připojení linuxu na straně klienta, která umožňuje použít více připojení TCP mezi klientem a koncovým bodem služby Blob Service. Pomocí možnosti v příkazu připojení můžete nconnect určit počet připojení TCP, která chcete vytvořit (například: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain).

Důležité

I když nejnovější distribuce Linuxu plně podporují nconnect, měli byste tuto možnost použít jenom v případě, že jádro podporuje Azure nconnect. Použití možnosti nconnect bez podpory Azure nconnect sníží propustnost, způsobí více časových limitů a způsobí, že příkazy jako READDIR a READIRPLUS budou fungovat nesprávně.

Podpora azure nconnect je k dispozici s nejnovějšími jádry Ubuntu, která je možné použít s virtuálními počítači Azure. Pokud chcete zjistit, jestli je pro vaše jádro dostupná podpora Azure nconnect, spusťte následující příkaz.

[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"

Pokud je pro vaše jádro dostupná podpora Azure nconnect, do konzoly se vytiskne Yes. V opačném případě se 'No vytiskne do konzole.

Pokud je k dispozici podpora Azure nconnect, povolte ji spuštěním následujícího příkazu.

echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect

Další doporučení osvědčených postupů

  • Používejte virtuální počítače s dostatečnou šířkou pásma sítě.

  • Pokud to úlohy umožňují, použijte více přípojných bodů.

  • Používejte co nejvíce vláken.

  • Používejte velké rozměry bloků.

  • Podávejte žádosti o úložiště z klienta, který se nachází ve stejné oblasti jako váš úložný účet. To může zlepšit latenci sítě.

Další kroky