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

Úložiště objektů blob teď podporuje protokol NFS (Network File System) 3.0. Tento článek obsahuje doporučení, která vám pomůžou optimalizovat výkon vašich 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ě. Proto mohou vaše aplikace dosáhnout vyšší propustnosti pomocí více klientů. Pokud chcete zobrazit limity výchozího a příchozího přenosu dat účtu úložiště, projdě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 šířka pásma zvyšuje při přidávání dalších klientů. V tomto grafu je klient virtuální počítač se standardním účtem úložiště pro obecné účely v2.

Výkon úrovně Standard

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

Výkon Premium

Použití účtů úložiště objektů blob bloku úrovně Premium pro malé aplikace

Ne všechny aplikace můžou vertikálně navýšit kapacitu přidáním dalších klientů. Pro tyto aplikace nabízí účet úložiště objektů blob bloku Azure Premium konzistentní nízkou latenci a vysokou míru transakcí. Účet úložiště objektů blob bloku úrovně Premium může dosáhnout maximální šířky pásma s menším počtem vláken a klientů. Například s jedním klientem může účet úložiště objektů blob bloku úrovně Premium dosáhnout 2,3x šířky pásma v porovnání se stejným nastavením, které se používá s účtem úložiště pro obecné účely v2 úrovně Standard pro výkon.

Každý pruh v následujícím grafu ukazuje rozdíl v dosažené šířce pásma mezi účty úložiště s výkonem úrovně Premium a Standard. Se zvyšováním počtu klientů se tento rozdíl snižuje.

Relativní výkon

Zvýšení velikosti čtení dopředu za účelem zvýšení velké propustnosti čtení souborů

Parametr jádra read_ahead_kb představuje množství dalších dat, která by se měla přečíst po splnění dané žádosti o čtení. Tento parametr můžete zvýšit na 16 MiB, abyste zvýšili 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ému přepsání dat

Dokončení operace přepsání trvá déle než nová operace zápisu. Je to proto, že operace přepsání nfs, zejména částečná místní úprava souboru, je kombinací několika základních operací objektů blob: operace čtení, úpravy a zápisu. Proto aplikace, která vyžaduje časté místní úpravy, není vhodná pro účty úložiště objektů blob s povoleným systémem souborů NFS.

Nasazení Azure HPC Cache pro aplikace citlivé na latenci

Některé aplikace můžou kromě vysoké propustnosti vyžadovat nízkou latenci. Pokud chcete výrazně zvýšit latenci, můžete nasadit Azure HPC Cache. Přečtěte si další informace o latenci v úložišti objektů blob.

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

Možnost připojení můžete použít nconnect k získání vyššího výkonu agregovaného čtení a zápisu z jednoho virtuálního počítače, ale jenom v případě, že vaše linuxové jádro podporuje Azure nconnect.

nconnect je možnost připojení Linuxu na straně klienta, která umožňuje používat více připojení TCP mezi klientem a koncovým bodem služby Blob Service. Pomocí možnosti v příkazu mount 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, tuto možnost byste měli použít jenom v případě, že vaše jádro podporuje Azure nconnect. nconnect Použití možnosti připojení bez podpory Azure nconnect sníží propustnost, způsobí více vypršení časových limitů a nesprávně fungují příkazy, jako READDIR je aREADIRPLUS.

Podpora Azure nconnect je k dispozici u většiny nejnovějších kernalů Ubuntu, které je možné používat s virtuálními počítači Azure. Pokud chcete zjistit, jestli je pro vaše jádro k dispozici 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 k dispozici podpora Azure nconnect, Yes vytiskne se do konzoly. V opačném 'No případě se vytiskne do konzoly.

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í k osvědčeným postupům

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

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

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

  • Používejte velké velikosti bloků.

  • Vytvořte požadavky na úložiště od klienta, který se nachází ve stejné oblasti jako účet úložiště. To může zlepšit latenci sítě.

Další kroky