Metodtips för SMB-prestanda för Azure NetApp Files

Den här artikeln hjälper dig att förstå SMB-prestanda och metodtips för Azure NetApp Files.

SMB Multichannel

SMB Multichannel är aktiverat som standard i SMB-resurser. Alla SMB-resurser som redan är daterade befintliga SMB-volymer har funktionen aktiverad. alla nyligen skapade volymer har också funktionen aktiverad vid tidpunkten för skapandet.

Alla SMB-anslutningar som upprättas innan funktionsaktiveringen måste återställas för att dra nytta av SMB Multichannel-funktionerna. Om du vill återställa kan du koppla från och återansluta SMB-resursen.

Windows har stöd för SMB Multichannel sedan Windows 2012 för bästa prestanda. Mer information finns i Distribuera SMB Multichannel och Grunderna i SMB Multichannel .

Fördelar med SMB Multichannel

SMB Multichannel-funktionen gör det möjligt för en SMB3-klient att upprätta en pool med anslutningar via ett enda nätverkskort (NIC) eller flera nätverkskort och använda dem för att skicka begäranden för en enda SMB-session. SMB1 och SMB2 kräver däremot att klienten upprättar en anslutning och skickar all SMB-trafik för en viss session via den anslutningen. Den här enkla anslutningen begränsar den övergripande protokollprestanda som kan uppnås från en enda klient.

Prestanda för SMB Multichannel

Följande tester och grafer visar kraften hos SMB Multichannel på arbetsbelastningar med en instans.

Slumpmässig I/O

Med SMB Multichannel inaktiverat på klienten utfördes rena 4 KiB-läs- och skrivtester med HJÄLP av FIO och en 40 GiB-arbetsuppsättning. SMB-resursen kopplades från mellan varje test, med ökningar av antalet SMB-klientanslutningar per RSS-nätverksgränssnittsinställningar för 1,4,8,16 och set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>. Testerna visar att standardinställningen 4 för är tillräcklig för I/O-intensiva arbetsbelastningar. Inkrementell till 8 och 16 hade försumbar effekt.

Kommandot netstat -na | findstr 445 visade att ytterligare anslutningar upprättades med steg från 1 till 4, 4 till 8och 8 till 16. Fyra CPU-kärnor användes fullt ut för SMB under varje test, vilket bekräftas av perfmonstatistiken Per Processor Network Activity Cycles (ingår inte i den här artikeln.)

Diagram som visar slumpmässig I/O-jämförelse av SMB Multichannel.

Den virtuella Azure-datorn (VM) påverkar inte I/O-gränser för SMB-lagring (eller NFS). Som du ser i följande diagram har D32ds-instanstypen en begränsad hastighet på 308 000 för cachelagrad lagrings-IOPS och 51 200 för ej cachelagrad lagrings-IOPS. Diagrammet ovan visar dock betydligt mer I/O över SMB.

Diagram som visar slumpmässigt I/O-jämförelsetest.

Sekventiell I/O

Tester som liknar de slumpmässiga I/O-tester som beskrevs tidigare utfördes med sekventiell I/O med 64 KiB. Även om ökningarna av antalet klientanslutningar per RSS-nätverksgränssnitt utöver fyra inte hade någon märkbar effekt på slumpmässig I/O, gäller inte samma sak för sekventiell I/O. Som följande diagram visar associeras varje ökning med en motsvarande ökning av läsdataflödet. Skrivdataflödet förblev platt på grund av begränsningar av nätverksbandbredden som azure har för varje instanstyp och storlek.

Diagram som visar jämförelse av dataflödestest.

Azure sätter gränser för nätverksfrekvens för varje typ och storlek på virtuella datorer. Hastighetsgränsen tillämpas endast på utgående trafik. Antalet nätverkskort som finns på en virtuell dator har ingen betydelse för den totala mängden bandbredd som är tillgänglig för datorn. Till exempel har D32ds-instanstypen en pålagd nätverksgräns på 16 000 Mbit/s (2 000 MiB/s). Som det sekventiella diagrammet ovan visar påverkar gränsen utgående trafik (skrivningar) men inte läsningar med flera kanaler.

Diagram som visar sekventiellT I/O-jämförelsetest.

SMB-signering

SMB-protokollet utgör grunden för fil- och utskriftsdelning och andra nätverksåtgärder, till exempel fjärradministration i Windows. För att förhindra man-in-the-middle-attacker som ändrar SMB-paket under överföring stöder SMB-protokollet digital signering av SMB-paket.

SMB-signering stöds för alla SMB-protokollversioner som stöds av Azure NetApp Files.

Prestandapåverkan av SMB-signering

SMB-signering har en skadlig effekt på SMB-prestanda. Bland andra potentiella orsaker till prestandaförsämring förbrukar den digitala signeringen av varje paket ytterligare processor på klientsidan, vilket visas i perfmonutdata nedan. I det här fallet verkar Core 0 vara ansvarigt för SMB, inklusive SMB-signering. En jämförelse med icke-multichannel sekventiella dataflödesnummer i föregående avsnitt visar att SMB-signering minskar det totala dataflödet från 875MiB/s till cirka 250MiB/s.

Diagram som visar prestandapåverkan för SMB-signering.

Prestanda för en enskild instans med en datauppsättning på 1 TB

För att ge mer detaljerad insikt i arbetsbelastningar med läs-/skrivblandningar visar följande två diagram prestanda för en enda molnvolym på Ultra-tjänstnivå på 50 TB med en datauppsättning på 1 TB och med SMB-multichannel på 4. Ett optimalt IODepth av 16 användes; Flexibla I/O-parametrar (FIO) användes för att säkerställa full användning av nätverksbandbredden (numjobs=16).

Följande diagram visar resultatet för 4k slumpmässig I/O, med en enskild virtuell datorinstans och en läs-/skrivblandning med 10 % intervall:

Diagram som visar Windows 2019 standard _D32ds_v4 4K slumpmässigt I/O-test.

Följande diagram visar resultatet för sekventiell I/O:

Diagram som visar windows 2019 standard _D32ds_v4 sekventiellt dataflöde på 64 000 sek.

Prestanda vid utskalning med hjälp av 5 virtuella datorer med en datauppsättning på 1 TB

Dessa tester med 5 virtuella datorer använder samma testmiljö som den enskilda virtuella datorn, där varje process skrivs till sin egen fil.

Följande diagram visar resultatet för slumpmässig I/O:

Diagram som visar Windows 2019 Standard _D32ds_v4 4K 5-instans randio I/O-test.

Följande diagram visar resultatet för sekventiell I/O:

Diagram som visar Windows 2019 standard _D32ds_v4 sekventiellt dataflöde på 64 5 instanser.

Övervaka Hyper-V Ethernet-kort

En strategi som används vid testning med FIO är att ange numjobs=16. Detta förgrenar varje jobb till 16 specifika instanser för att maximera Microsoft Hyper-V-nätverkskortet.

Du kan söka efter aktivitet på vart och ett av korten i Windows Prestandaövervakare genom att välja Prestandaövervakaren Lägg till räknare Nätverksgränssnitt > > Microsoft Hyper-V-nätverkskort.>

Skärmbild som visar prestandaövervakaren Lägg till räknargränssnitt.

När du har datatrafik som körs i dina volymer kan du övervaka dina kort i Windows Performance Monitor. Om du inte använder alla dessa 16 virtuella kort kanske du inte maximerar nätverkets bandbreddskapacitet.

Skärmbild som visar prestandaövervakarens utdata.

SMB-kryptering

Det här avsnittet hjälper dig att förstå SMB-kryptering (SMB 3.0 och SMB 3.1.1)

SMB-kryptering tillhandahåller kryptering från slutpunkt till slutpunkt för SMB-data och skyddar data från avlyssning av förekomster i ej betrodda nätverk. SMB-kryptering stöds på SMB 3.0 och högre.

När du skickar en begäran till lagringen krypterar klienten begäran, som lagringen sedan dekrypterar. Svar krypteras på samma sätt av servern och dekrypteras av klienten.

Windows 10, Windows 2012 och senare versioner stöder SMB-kryptering.

SMB-kryptering och Azure NetApp Files

SMB-kryptering är aktiverat på resursnivå för Azure NetApp Files. SMB 3.0 använder AES-CCM-algoritmen, medan SMB 3.1.1 använder AES-GCM-algoritmen.

SMB-kryptering krävs inte. Därför är den endast aktiverad för en viss resurs om användaren begär att Azure NetApp Files ska aktivera den. Azure NetApp Files-resurser exponeras aldrig för Internet. De är endast tillgängliga från ett visst VNet, via VPN eller expressväg, så Azure NetApp Files-resurser är i sig säkra. Valet att aktivera SMB-kryptering är helt upp till användaren. Var medveten om den förväntade prestandan innan du aktiverar den här funktionen.

Hur SMB-kryptering påverkar klientarbetsbelastningar

Även om SMB-kryptering påverkar både klienten (processorkostnader för kryptering och dekryptering av meddelanden) och lagringen (minskningar av dataflödet), belyser följande tabell endast lagringspåverkan. Du bör testa krypteringens prestandapåverkan mot dina egna program innan du distribuerar arbetsbelastningar till produktion.

I/O-profil Påverkan
Läs- och skrivarbetsbelastningar 10% till 15%
Metadataintensiva %5

Accelererat nätverk

För maximal prestanda rekommenderar vi att du konfigurerar accelererat nätverk på dina virtuella datorer där det är möjligt. Tänk på följande:

  • Azure-portalen aktiverar accelererat nätverk som standard för virtuella datorer som stöder den här funktionen. Andra distributionsmetoder som Ansible och liknande konfigurationsverktyg kan dock inte göra det. Om det inte går att aktivera accelererat nätverk kan prestandan hos en dator försämras.
  • Om accelererat nätverk inte är aktiverat i nätverksgränssnittet för en virtuell dator på grund av att den saknar stöd för en instanstyp eller storlek förblir den inaktiverad med större instanstyper. Du behöver manuella åtgärder i dessa fall.
  • Du behöver inte ange accelererat nätverk för nätverkskorten i det dedikerade undernätet för Azure NetApp Files. Accelererat nätverk är en funktion som endast gäller för virtuella Azure-datorer. Azure NetApp Files NÄTVERKSKORT optimeras avsiktligt.

Ta emot sidoskalning

Azure NetApp Files stöder rss-skalning (receive side scaling).

Med SMB Multichannel aktiverat upprättar en SMB3-klient flera TCP-anslutningar till Azure NetApp Files SMB-servern via ett nätverkskort (NIC) som är en rss-kompatibel.

Om du vill se om dina nätverkskort för virtuella Azure-datorer stöder RSS kör du kommandot Get-SmbClientNetworkInterface på följande sätt och kontrollerar fältet RSS Capable:

Skärmbild som visar RSS-utdata för virtuella Azure-datorer.

Flera nätverkskort på SMB-klienter

Du bör inte konfigurera flera nätverkskort på klienten för SMB. SMB-klienten matchar inte antalet nätverkskort som returneras av SMB-servern. Varje lagringsvolym är tillgänglig från en och endast en lagringsslutpunkt, vilket innebär att endast ett nätverkskort används för en viss SMB-relation.

Som utdata Get-SmbClientNetworkInterace från nedan visar har den virtuella datorn två nätverksgränssnitt: 15 och 12. Som visas under följande kommando Get-SmbMultichannelConnectionanvänds endast gränssnitt 12 i anslutning till SMB-resursen, även om det finns två RSS-kompatibla nätverkskort. Gränssnitt 15 används inte.

Skärmbild som visar utdata för RSS-kompatibla nätverkskort.

Nästa steg