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 8
och 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.)
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.
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.
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.
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.
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:
Följande diagram visar resultatet för sekventiell I/O:
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:
Följande diagram visar resultatet för sekventiell I/O:
Ö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.>
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.
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
:
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-SmbMultichannelConnection
anvä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.