Delen via


Prestatieoverwegingen voor Network File System (NFS) 3.0 in Azure Blob Storage

Blob Storage ondersteunt nu het NFS 3.0-protocol (Network File System). Dit artikel bevat aanbevelingen waarmee u de prestaties van uw opslagaanvragen kunt optimaliseren. Zie Network File System (NFS) 3.0-protocolondersteuning voor Azure Blob Storage voor meer informatie over NFS 3.0-ondersteuning voor Azure Blob Storage.

Clients toevoegen om de doorvoer te verhogen

Azure Blob Storage wordt lineair geschaald totdat de maximale limiet voor uitgaand en inkomend verkeer van opslagaccounts wordt bereikt. Daarom kunnen uw toepassingen een hogere doorvoer bereiken door meer clients te gebruiken. Zie Schaalbaarheids- en prestatiedoelen voor standaardopslagaccounts om de limieten voor uitgaand verkeer en inkomend verkeer van opslagaccounts weer te geven.

In de volgende grafiek ziet u hoe de bandbreedte toeneemt naarmate u meer clients toevoegt. In deze grafiek is een client een virtuele machine (VM) en met een standaard v2-opslagaccount voor algemeen gebruik.

Standaardprestaties

In de volgende grafiek ziet u hetzelfde effect wanneer dit wordt toegepast op een Premium-account voor blok-blobopslag.

Premium-prestaties

Premium blok-blob-opslagaccounts gebruiken voor kleinschalige toepassingen

Niet alle toepassingen kunnen omhoog worden geschaald door meer clients toe te voegen. Voor deze toepassingen biedt het Azure Premium-account voor blok-blobopslag consistente lage latentie en hoge transactiesnelheden. Het premium blok-blob-opslagaccount kan maximale bandbreedte bereiken met minder threads en clients. Met één client kan een Premium blok-blob-opslagaccount bijvoorbeeld 2,3x bandbreedte behalen in vergelijking met dezelfde instelling die wordt gebruikt met een standaardopslagaccount voor algemeen gebruik v2.

Elke staaf in de volgende grafiek toont het verschil in de bereikte bandbreedte tussen opslagaccounts voor Premium- en Standard-prestaties. Naarmate het aantal clients toeneemt, neemt dat verschil af.

Relatieve prestaties

De grootte van vooruitlezen verbeteren om de leesdoorvoer van grote bestanden te verhogen

De read_ahead_kb kernelparameter vertegenwoordigt de hoeveelheid extra gegevens die moet worden gelezen nadat aan een bepaalde leesaanvraag is voldaan. U kunt deze parameter verhogen tot 16 MiB om de doorvoer voor het lezen van grote bestanden te verbeteren.

export AZMNT=/your/container/mountpoint

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

Vermijd frequente overschrijvingen voor gegevens

Het voltooien van een overschrijfbewerking duurt langer dan een nieuwe schrijfbewerking. Dat komt omdat een NFS-overschrijfbewerking, met name een gedeeltelijke in-place bestandsbewerking, een combinatie is van verschillende onderliggende blobbewerkingen: een leesbewerking, een wijziging en een schrijfbewerking. Daarom is een toepassing waarvoor regelmatig in-place bewerkingen nodig zijn, niet geschikt voor blobopslagaccounts met NFS-functionaliteit.

Azure HPC Cache implementeren voor latentiegevoelige toepassingen

Sommige toepassingen vereisen mogelijk een lage latentie naast een hoge doorvoer. U kunt Azure HPC Cache implementeren om de latentie aanzienlijk te verbeteren. Meer informatie over latentie in Blob-opslag.

Het aantal TCP-verbindingen verhogen

U kunt de koppelingsoptie nconnect gebruiken om hogere cumulatieve lees- en schrijfprestaties te krijgen van één virtuele machine, maar alleen als uw Linux-kernel ondersteuning voor Azure nconnect heeft.

nconnect is een optie voor Linux-koppeling aan de clientzijde waarmee u meerdere TCP-verbindingen tussen de client en het Blob-service-eindpunt kunt gebruiken. U kunt de nconnect optie in de koppelingsopdracht gebruiken om het aantal TCP-verbindingen op te geven dat u wilt maken (bijvoorbeeld: 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).

Belangrijk

Hoewel de nieuwste Linux-distributies nconnect volledig ondersteunen, moet u deze optie alleen gebruiken als uw kernel ondersteuning voor Azure nconnect heeft. Het gebruik van de nconnect koppelingsoptie zonder ondersteuning voor Azure nconnect vermindert de doorvoer, veroorzaakt meerdere time-outs en zorgt ervoor dat opdrachten zoals READDIR en READIRPLUS onjuist werken.

Ondersteuning voor Azure nconnect is beschikbaar voor de meeste recente Ubuntu-kernals die kunnen worden gebruikt met virtuele Azure-machines. Voer de volgende opdracht uit om erachter te komen of ondersteuning voor Azure nconnect beschikbaar is voor uw kernel.

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

Als azure nconnect-ondersteuning beschikbaar is voor uw kernel, Yes wordt deze afgedrukt naar de console. 'No Anders wordt afgedrukt op de console.

Als azure nconnect-ondersteuning beschikbaar is, schakelt u deze in door de volgende opdracht uit te voeren.

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

Andere aanbevelingen voor aanbevolen procedures

  • Gebruik VM's met voldoende netwerkbandbreedte.

  • Gebruik meerdere koppelpunten wanneer uw workloads dit toestaan.

  • Gebruik zoveel mogelijk threads.

  • Gebruik grote blokgrootten.

  • Maak opslagaanvragen van een client die zich in dezelfde regio bevindt als het opslagaccount. Dit kan de netwerklatentie verbeteren.

Volgende stappen