Delen via


Prestatieverbetering van SMB Azure bestandsshares

Van toepassing op: ✔️ SMB Azure-bestandsdelingen

In dit artikel wordt uitgelegd hoe u de prestaties van SSD (Premium) SMB Azure-bestandsshare kunt verbeteren, zoals het gebruik van SMB Multichannel en caching van metagegevens.

Prestaties optimaliseren

Met de volgende tips kunt u de prestaties optimaliseren:

  • Zorg ervoor dat uw opslagaccount en uw client zich in dezelfde Azure-regio bevinden om de netwerklatentie te verminderen.
  • Gebruik toepassingen met meerdere threads en verspreid de belasting over meerdere bestanden.
  • Prestatievoordelen van SMB Multichannel verhogen met het aantal bestanden dat de lading verdeelt.
  • De prestaties van SSD-shares zijn afhankelijk van de ingerichte sharegrootte, inclusief IOPS en doorvoer en limieten voor één bestand. Zie voor meer informatie begrip van het inrichtingsmodel v1.
  • De maximale prestaties van één VM-client (virtuele machine) zijn nog steeds gebonden aan VM-limieten. Standard_D32s_v3 ondersteunt bijvoorbeeld een maximale bandbreedte van ongeveer 1,86 GiB/sec. Inkomend verkeer (schrijfbewerkingen naar opslag) wordt gemeten, maar uitgaand verkeer (leesbewerkingen uit opslag) is dat niet. Prestaties van bestandsshares zijn onderhevig aan netwerklimieten voor computers, CPU's, interne opslagbandbreedte, IO-grootten, parallelle uitvoering en andere factoren.
  • De eerste test is meestal een opwarmer. Verwijder de resultaten en herhaal de test.
  • Als de prestaties worden beperkt door één client en de workload nog steeds onder de ingerichte sharelimieten ligt, kunt u hogere prestaties bereiken door de belasting over meerdere clients te spreiden.

De relatie tussen IOPS, doorvoer en I/O-grootten

Doorvoer = IO-grootte * IOPS

Hogere I/O-grootten stimuleren een hogere doorvoer en hebben hogere latenties, wat resulteert in een lager aantal netto-IOPS. Kleinere I/O-grootten zorgen voor hogere IOPS, maar leiden tot lagere nettodoorvoer en latenties. Zie Inzicht in de prestaties van Azure Files voor meer informatie.

SMB Multikanaal

SMB Multichannel stelt een SMB-client in staat om meer netwerkverbindingen tot stand te brengen met een SMB-bestandsshares, waardoor de doorvoer en veerkracht worden verbeterd. Azure Files ondersteunt SMB Multichannel op SSD-bestandsdeling voor zowel Windows- als Linux-SMB-clients. Zie de sectie Linux SMB meerdere kanalen voor ondersteunde versies van het Linux-besturingssysteem en gedetailleerde configuratie.

Ondersteuning voor Linux SMB Multichannel

Azure Files ondersteunt SMB Multichannel met native Linux SMB-clients op de volgende distributies:

  • Ubuntu 24.04 AKS: 6.8.0-1042
  • Ubuntu 24.04 VMs: 6.14.0-1017
  • Ubuntu 22.04 VM’s: 6.8.0-1044
  • AzLinux 3.0 (VMs en AKS): 6.6.106.1
  • RHEL 9.7: 5.14.0-611.5.1.el9_7
  • RHEL 10.1: 6.12.0-124.8.1.el10_1

Deze clients moeten de juiste kernelstack en CIFS-hulpprogramma's uitvoeren die ondersteuning bieden voor meerdere kanalen. Ondersteuning voor SMB meerdere kanalen in Linux maakt het schalen van prestaties vergelijkbaar met Windows mogelijk door meerdere parallelle TCP-verbindingen met hetzelfde eindpunt voor bestandsshares tot stand te brengen.

Vereiste voorwaarden

Hieronder volgen de vereisten om SMB Multichannel met Linux te gebruiken.

  • Kernel met SMB-ondersteuning voor meerdere kanalen ingeschakeld (zie ondersteuning voor Linux SMB meerdere kanalen)
  • SMB 3.1.1
  • Poort 445/TCP geopend tussen client en Azure Files-eindpunt
  • Nagaan of client-side receive-side scaling (RSS) is ingeschakeld voor ondersteuning van meerdere wachtrijen.

Voorbeeld van koppelingsopdracht

Hier volgt een voorbeeld van een mount-opdracht voor het gebruik van SMB Multichannel met Linux.

mount -t cifs //<storageaccount>.file.core.windows.net/<share> /mnt/azfiles \
   -o vers=3.1.1,username=<account>,password=<key>,dir_mode=0777,file_mode=0777, \
   multiuser,serverino,actimeo=30,max_channels=4

Vergoedingen

SMB Multichannel stelt klanten in staat om meerdere netwerkverbindingen te gebruiken, waardoor de prestaties verbeteren en de eigendomskosten worden verlaagd. Verbeterde prestaties worden bereikt via bandbreedteaggregatie over meerdere NIC's en gebruikmaken van RSS-ondersteuning (Receive Side Scaling) voor NIC's om de I/O-belasting over meerdere CPU's te verdelen.

  • Verhoogde doorvoer: met meerdere verbindingen kunnen gegevens parallel worden overgedragen via meerdere paden, waardoor workloads die gebruikmaken van grotere bestandsgrootten met grotere I/O-grootten aanzienlijk worden verbeterd en hoge doorvoer van één VIRTUELE machine of een kleinere set VIRTUELE machines vereist. Sommige van deze workloads omvatten media en entertainment voor het maken of transcoderen, genomica en financiële diensten voor risicoanalyse.
  • Hogere IOPS: de NIC RSS-functie maakt effectieve belastingdistributie mogelijk over meerdere CPU's met meerdere verbindingen. Dit helpt bij het bereiken van een hogere IOPS-schaal en een effectief gebruik van VM-CPU's. Dit is handig voor workloads met kleine I/O-grootten, zoals databasetoepassingen.
  • Netwerkfouttolerantie: meerdere verbindingen beperken het risico op onderbrekingen omdat clients niet langer afhankelijk zijn van een afzonderlijke verbinding.
  • Automatische configuratie: wanneer SMB meerdere kanalen is ingeschakeld voor clients en opslagaccounts, is dynamische detectie van bestaande verbindingen mogelijk en kunnen indien nodig extra verbindingspaden worden gemaakt.
  • Kostenoptimalisatie: Workloads kunnen een grotere schaal bereiken vanaf één virtuele machine of een kleine set vm's, terwijl verbinding wordt gemaakt met SSD-bestandsdelen. Dit kan de totale eigendomskosten verminderen door het aantal VM's te verminderen dat nodig is om een workload uit te voeren en te beheren.
  • Linux-clientprestaties schalen: Linux SMB-clients kunnen nu gebruikmaken van meerdere kanalen om de doorvoer en IOPS te verhogen die vergelijkbaar zijn met Windows.
  • Platformoverschrijdende consistentie: maakt hybride omgevingen mogelijk met zowel Windows- als Linux-clients die optimale prestaties bereiken.
  • Tolerantie: Meerdere kanalen verbeteren fouttolerantie via heterogene netwerken.

Zie de Windows-documentatie voor meer informatie over SMB Multichannel.

Deze functie biedt betere prestatievoordelen voor toepassingen met meerdere threads, maar helpt doorgaans niet bij toepassingen met één thread. Zie de sectie Prestatievergelijking voor meer informatie.

Beperkingen

SMB Multichannel voor Azure-bestandsshares heeft momenteel de volgende beperkingen:

  • Alleen beschikbaar voor SSD-bestandsshares. Niet beschikbaar voor HDD-bestandsdeling.
  • Alleen ondersteund op clients die gebruikmaken van SMB 3.1.1. Zorg ervoor dat de SMB-clientbesturingssystemen worden gepatcht op aanbevolen niveaus.
  • Het maximum aantal kanalen is vier. Zie hier voor meer informatie.

Windows-configuratie

SMB meerdere kanalen werkt alleen wanneer de functie is ingeschakeld aan zowel clientzijde (uw client) als aan de servicezijde (uw Azure-opslagaccount).

Op Windows-clients is SMB Meerdere kanalen standaard ingeschakeld. U kunt uw configuratie controleren door de volgende PowerShell-opdracht uit te voeren:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

Als SMB Multichannel niet is ingeschakeld voor uw Azure-opslagaccount, raadpleegt u de status van SMB Multichannel.

SMB Multichannel uitschakelen

In de meeste scenario's, met name workloads met meerdere threads, zien klanten verbeterde prestaties met SMB Multichannel. Voor sommige specifieke scenario's, zoals enkelvoudige thread-workloads of voor testdoeleinden, kunt u SMB Multichannel uitschakelen. Zie Prestatievergelijking en SMB-status voor meerdere kanalen voor meer informatie.

Controleren of SMB meerdere kanalen juist is geconfigureerd

  1. Maak een nieuwe SSD-bestandsshare of gebruik een bestaande SSD-bestandsshare.
  2. Zorg ervoor dat uw client SMB meerdere kanalen ondersteunt (voor een of meer netwerkadapters is schaalaanpassing aan de ontvangstzijde ingeschakeld). Raadpleeg de Windows-documentatie voor meer informatie.
  3. Koppel een bestandsshare aan uw client.
  4. Genereer belasting met uw toepassing. Een kopieerprogramma, zoals robocopy/MT, of een prestatiehulpprogramma zoals Diskspd om bestanden te lezen/schrijven, kan belasting genereren.
  5. Open PowerShell als beheerder en gebruik de volgende opdracht: Get-SmbMultichannelConnection |fl
  6. Zoek naar de eigenschappen MaxChannels en CurrentChannels.

Prestatievergelijking

Er zijn twee categorieën lees-/schrijfworkloadpatronen: één thread en meerdere threads. De meeste workloads gebruiken meerdere bestanden, maar er kunnen specifieke use cases zijn waarbij de workload met één bestand in een share werkt. In deze sectie worden verschillende use cases behandeld en de invloed op de prestaties voor elk van deze gevallen. Over het algemeen zijn de meeste werklasten multithreaded en verdelen ze hun werkbelasting over meerdere bestanden, zodat ze aanzienlijke prestatieverbeteringen met SMB Multichannel zouden moeten ervaren.

  • Meerdere threads/meerdere bestanden: afhankelijk van het workloadpatroon ziet u een aanzienlijke prestatieverbetering bij het lezen en schrijven van I/Os via meerdere kanalen. De prestatieverbeteringen variëren van 2x tot 4x in termen van IOPS, doorvoer en latentie. Voor deze categorie moet SMB Multichannel ingeschakeld zijn voor de beste prestaties.
  • Meerdere threads/één bestand: Voor de meeste gebruiksvoorbeelden in deze categorie profiteren workloads van het gebruik van SMB meerdere kanalen, met name als de werkbelasting een gemiddelde I/O-grootte > van ongeveer 16k heeft. Enkele voorbeeldscenario's die baat hebben bij SMB meerdere kanalen zijn back-up of herstel van één groot bestand. Een uitzondering waarbij u SMB Multichannel zou kunnen uitschakelen, is als uw werkbelasting zwaar is door kleine I/Os. In dat geval kunt u een licht prestatieverlies van ~10%observeren. Afhankelijk van de use-case kunt u overwegen om de belasting over meerdere bestanden te spreiden of de functie uit te schakelen.
  • Eén thread/meerdere bestanden of één bestand: Voor de meeste workloads met één thread zijn er minimale prestatievoordelen vanwege gebrek aan parallelle uitvoering. Meestal is er een lichte prestatievermindering van 10% als SMB Multichannel is ingeschakeld. In dit geval is het ideaal om SMB Multichannel uit te schakelen, met één uitzondering. Als de enkelvoudige thread workload de belasting over meerdere bestanden kan verdelen en gemiddeld een grotere I/O-grootte (groter dan 16 KiB) gebruikt, dan moeten er lichte prestatievoordelen zijn van SMB Multichannel.

Configuratie van prestatietest

Voor de grafieken in dit artikel is de volgende configuratie gebruikt: één Standard D32s v32s v3-VM met één NIC met RSS-functionaliteit met vier kanalen. De belasting is gegenereerd met behulp van diskspd.exe, met meerdere threads en een IO-diepte van 10, en willekeurige invoer/uitvoerbewerkingen met verschillende invoer/uitvoergroottes.

Meerdere threads/meerdere bestanden met SMB Multichannel

De belasting werd toegepast op 10 bestanden met verschillende IO-grootten. De resultaten van de opschalingsentest toonden aanzienlijke verbeteringen zowel in de IOPS- als in de doorvoertestresultaten met ingeschakelde SMB Multichannel. In de volgende diagrammen ziet u de resultaten:

Diagram van prestaties.

Diagram van doorvoerprestaties.

  • Op één NIC werd voor leesbewerkingen prestatieverhoging van 2x-3x waargenomen en voor schrijfbewerkingen 3x-4x in termen van zowel IOPS als doorvoer.
  • SMB Multichannel maakt het mogelijk dat IOPS en doorvoer de VM-limieten bereiken, zelfs met een enkele NIC en de limiet van vier kanalen.
  • Omdat uitgaand verkeer (leesbewerkingen uit opslag) niet wordt gemeten, kon de leesdoorvoer de gepubliceerde limiet van ongeveer 1,86 GiB/sec overschrijden, waardoor de leesdoorvoer groter is dan 2,7 GiB/sec. Inkomend verkeer (schrijfbewerkingen naar opslag) blijft onderhevig aan doorvoerlimieten voor VM's.
  • Het verdelen van de belasting over meerdere bestanden maakte aanzienlijke verbeteringen mogelijk.

Een voorbeeldopdracht die in deze test wordt gebruikt, is:

diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat .

Workloads met meerdere threads/een enkel bestand met SMB Multichannel

De belasting is gegenereerd tegen een enkel 128 GiB-bestand. Met SMB Multichannel ingeschakeld heeft de opschalingsproef met multithread/enkelvoudige bestand in de meeste gevallen verbeteringen laten zien. In de volgende diagrammen ziet u de resultaten:

Diagram van IOPS-prestaties.

Diagram van prestaties van één bestandsdoorvoer.

  • Op één NIC met een grotere gemiddelde I/O-grootte (groter dan 16 KiB) waren er aanzienlijke verbeteringen in zowel lees- als schrijfbewerkingen.
  • Voor kleinere I/O-grootten was er een lichte impact van ongeveer 10% op prestaties met SMB Multichannel ingeschakeld. Dit kan worden verzacht door de belasting over meerdere bestanden te spreiden of de functie uit te schakelen.
  • De prestaties zijn nog steeds gebonden aan limieten voor één bestand.

Caching van metagegevens voor SSD-bestandsdelingen

Caching van metagegevens is een verbetering voor Azure-bestandsshares op SSD's die de latentie van metagegevens vermindert en de schaalgrenzen voor metagegevens verhoogt. De functie verhoogt de consistentie van de latentie en de beschikbare IOPS en verhoogt de netwerkdoorvoer. Windows- en Linux-clients kunnen deze gebruiken.

Deze functie verbetert de prestaties van de volgende metagegevens-API's:

  • Maken
  • Openen
  • Sluiten
  • Verwijderen

Momenteel is de functie alleen beschikbaar voor SSD-bestandsshares. Er zijn geen extra kosten verbonden aan het gebruik van deze functie. U kunt zich ook registreren om de limieten voor bestandsinvoer voor SSD-bestandsshares (preview) te verhogen.

Registreren voor de functie voor het opslaan van metagegevens in cache

Als u aan de slag wilt gaan, registreert u zich voor de functie met behulp van Azure Portal of Azure PowerShell.

  1. Meld u aan bij het Azure-portaal.
  2. Zoek en selecteer Preview-functies.
  3. Selecteer het filter Type en selecteer Microsoft.Storage.
  4. Selecteer Azure Premium Files Metadata Cache en selecteer Registreren.

Belangrijk

  • Hoewel deze worden vermeld onder Preview-functies, respecteren we SLA's.
  • Nadat u de functie hebt geregistreerd, neemt u contact op azfilespreview@microsoft.com voor verdere instructies.

Prestatieverbeteringen met caching van metagegevens

De meeste workloads of gebruikspatronen die metagegevens bevatten, kunnen profiteren van caching van metagegevens. Als u wilt bepalen of uw workload metagegevens bevat, kunt u Azure Monitor gebruiken om de transacties te splitsen op API-dimensie.

Typische workloads met veel metagegevens en gebruikspatronen zijn onder andere:

  • Web- en app-diensten
  • DevOps-taken
  • Indexering/batchverwerkingstaken
  • Virtuele bureaubladen met thuismappen of andere werkbelastingen die voornamelijk communiceren met veel kleine bestanden, mappen of referenties.

In de volgende diagrammen ziet u mogelijke resultaten.

Latentie van metagegevens verminderen

Door bestands- en mappaden in de cache op te slaan voor toekomstige zoekacties, kan caching van metagegevens de latentie verminderen voor veelgebruikte bestanden en mappen met 30% of meer voor workloads met veel metagegevens op schaal.

Grafiek met latentie in milliseconden met en zonder metagegevenscache.

Beschikbare IOPS verhogen

Caching van metagegevens kan de beschikbare IOPS met meer dan 60% verhogen voor workloads met veel metagegevens op schaal.

Grafiek met beschikbare IOPS met en zonder caching van metagegevens.

Netwerkdoorvoer verhogen

Caching van metagegevens kan de netwerkdoorvoer met meer dan 60% verhogen voor workloads met veel metagegevens op schaal.

Grafiek met netwerkdoorvoer met en zonder metagegevenscache.

Registreren voor verhoogde limieten voor bestandsingangen (preview)

Als u het maximum aantal gelijktijdige ingangen per bestand en map voor SSD SMB-bestandsshares wilt verhogen van 2000 tot 10.000, registreert u zich voor de preview-functie met behulp van Azure Portal of Azure PowerShell. Als u vragen hebt, stuur dan een e-mail azfilespreview@microsoft.com.

  1. Meld u aan bij het Azure-portaal.
  2. Zoek en selecteer Preview-functies.
  3. Selecteer het filter Type en selecteer Microsoft.Storage.
  4. Selecteer Azure Premium Files Verhoogde Maximale Aantal Geopende Bestandskoppelingen en selecteer Registreren.

Volgende stappen