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 har dejtat befintliga SMB-volymer har aktiverat funktionen och alla nyligen skapade volymer kommer också att ha funktionen aktiverad när den skapades.

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, 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 48 och 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.)

Chart that shows random I/O comparison of SMB Multichannel.

Den virtuella Azure-datorn 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.

Chart that shows random I/O comparison test.

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 ökningen av antalet klientanslutningar per RSS-nätverksgränssnitt utöver 4" 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 nätverksbandbreddsbegränsningar som azure har infört för varje instanstyp/storlek.

Chart that shows throughput test comparison.

Azure sätter gränser för nätverksfrekvens för varje typ/storlek för 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.

Chart that shows sequential I/O comparison test.

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.

Chart that shows SMB Signing performance impact.

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. En optimal IODepth av 16 användes, och FIO-parametrar (Flexible IO) 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:

Chart that shows Windows 2019 standard _D32ds_v4 4K random IO test.

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

Chart that shows Windows 2019 standard _D32ds_v4 64K sequential throughput.

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:

Chart that shows Windows 2019 standard _D32ds_v4 4K 5-instance randio IO test.

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

Chart that shows Windows 2019 standard _D32ds_v4 64K 5-instance sequential throughput.

Ö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.>

Screenshot that shows Performance Monitor Add Counter interface.

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.

Screenshot that shows Performance Monitor output.

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 bara 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 kanske inte är 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.

RSS

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 virtuella Azure-dator-nätverkskort stöder RSS kör du kommandot Get-SmbClientNetworkInterface på följande sätt och kontrollerar fältet RSS Capable:

Screenshot that shows RSS output for Azure virtual machine.

Flera nätverkskort på SMB-klienter

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

Som nedanstående utdata Get-SmbClientNetworkInterace 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.

Screeshot that shows output for RSS-capable NICS.

Nästa steg