Dela via


Prestandaöverväganden för NFS (Network File System) 3.0 i Azure Blob Storage

Blob Storage stöder nu NFS-protokollet (Network File System) 3.0. Den här artikeln innehåller rekommendationer som hjälper dig att optimera prestanda för dina lagringsbegäranden. Mer information om NFS 3.0-stöd för Azure Blob Storage finns i Nätverksfilsystem (NFS) 3.0-protokollstöd för Azure Blob Storage.

Lägga till klienter för att öka dataflödet

Azure Blob Storage skalar linjärt tills maxgränsen för utgående och inkommande nås för lagringskontot. Därför kan dina program uppnå högre dataflöde med hjälp av fler klienter. Information om hur du visar utgående och inkommande gränser för lagringskonton finns i Skalbarhets- och prestandamål för standardlagringskonton.

Följande diagram visar hur bandbredden ökar när du lägger till fler klienter. I det här diagrammet är en klient en virtuell dator (VM) och med ett standardlagringskonto för generell användning v2.

Standardprestanda

Följande diagram visar samma effekt när det tillämpas på ett premium-blockbloblagringskonto.

Premium-prestanda

Använda Premium-blockbloblagringskonton för småskaliga program

Alla program kan inte skalas upp genom att lägga till fler klienter. För dessa program erbjuder Azure Premium-blockbloblagringskontot konsekvent låg svarstid och höga transaktionshastigheter. Premium-blockbloblagringskontot kan nå maximal bandbredd med färre trådar och klienter. Med en enda klient kan till exempel ett Premium-blockbloblagringskonto uppnå 2,3 x bandbredd jämfört med samma konfiguration som används med ett standardprestandakonto för generell användning v2-lagring.

Varje stapel i följande diagram visar skillnaden i uppnådd bandbredd mellan premium- och standardlagringskonton för prestanda. När antalet klienter ökar minskar den skillnaden.

Relativ prestanda

Förbättra läs-framåt-storleken för att öka dataflödet för stora filläsningar

Parametern read_ahead_kb kernel representerar mängden ytterligare data som ska läsas när en viss läsbegäran har slutförts. Du kan öka den här parametern till 16 MiB för att förbättra dataflödet för stor filläsning.

export AZMNT=/your/container/mountpoint

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

Undvik frekventa överskrivningar av data

Det tar längre tid att slutföra en överskrivningsåtgärd än en ny skrivåtgärd. Det beror på att en NFS-överskrivningsåtgärd, särskilt en partiell filredigering på plats, är en kombination av flera underliggande blobåtgärder: en läsning, en ändring och en skrivåtgärd. Därför passar inte ett program som kräver frekventa redigeringar för NFS-aktiverade bloblagringskonton.

Distribuera Azure HPC Cache för svarstidskänsliga program

Vissa program kan kräva låg svarstid utöver högt dataflöde. Du kan distribuera Azure HPC Cache för att förbättra svarstiden avsevärt. Läs mer om svarstid i Blob Storage.

Öka antalet TCP-anslutningar

Du kan använda monteringsalternativet nconnect för att få högre aggregerade läs- och skrivprestanda från en enskild virtuell dator, men bara om Linux-kerneln har azure nconnect-stöd.

nconnect är ett Linux-monteringsalternativ på klientsidan som gör att du kan använda flera TCP-anslutningar mellan klienten och Blob-tjänstslutpunkten. Du kan använda nconnect alternativet i monteringskommandot för att ange antalet TCP-anslutningar som du vill skapa (till exempel: 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).

Viktigt

De senaste Linux-distributionerna har fullt stöd för nconnect, men du bör bara använda det här alternativet om kerneln har azure nconnect-stöd. Om du använder monteringsalternativet nconnect utan Azure nconnect-stöd minskar dataflödet, orsakar flera tidsgränser och orsakar kommandon som READDIR och READIRPLUS fungerar felaktigt.

Azure nconnect-stöd är tillgängligt med de flesta av de senaste Ubuntu-kernalerna som kan användas med virtuella Azure-datorer. Kör följande kommando för att ta reda på om azure nconnect-stöd är tillgängligt för din kernel.

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

Om Azure nconnect-stöd är tillgängligt för din kernel skrivs det Yes ut till konsolen. Annars 'No skrivs ut till konsolen.

Om Azure nconnect-stöd är tillgängligt aktiverar du det genom att köra följande kommando.

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

Andra rekommendationer för bästa praxis

  • Använd virtuella datorer med tillräcklig nätverksbandbredd.

  • Använd flera monteringspunkter när dina arbetsbelastningar tillåter det.

  • Använd så många trådar som möjligt.

  • Använd stora blockstorlekar.

  • Gör lagringsbegäranden från en klient som finns i samma region som lagringskontot. Detta kan förbättra nätverksfördröjningen.

Nästa steg