Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

SR-IOV-netværks-I/O-forbedring i et virtualiseret miljø i Windows Server 2012

Summary: Dell-operativsystem og programløsninger i Dell TechCenter - Projekt Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu med videre

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Dette indlæg blev oprindeligt skrevet af Abhijit Khande & Vineeth V Acharya fra DELL Windows Engineering Team.

Kommentarer er velkomne! Hvis du vil foreslå et emne eller komme med andre kommentarer, skal du kontakte
WinServerBlogs@dell.com.


Med Microsoft® Windows Server® 2012 Beta-operativsystemet har Microsoft introduceret understøttelse af en række funktioner i netværksrummet. En sådan vigtig og interessant funktion er Single Root I/O-virtualisering (SR-IOV), som gør det muligt for virtuelle maskiner at dele en enkelt PCI-e-enhed. Dette indlæg giver et grundlæggende overblik over SR-IOV i Windows Server 2012 Beta, og hvordan det drastisk reducerer CPU-udnyttelsen i et virtualiseret miljø under netværk I / O.

SR-IOV-grænsefladen er en udvidelse af PCI Express-specifikationen (PCIe). SR-IOV gør det muligt for en enkelt PCIe-enhed, f.eks. et netværkskort, at levere flere lette hardwareoverflader på PCI-bussen og separat adgang til dens ressourcer blandt de forskellige forekomster. Det opnås ved brug af flere virtuelle funktioner (VF) ud over den (sædvanlige) fysiske funktion (PF). Da PCIe-enheden og platformen er hardwareafhængig, skal begge understøtte denne funktion. 

Traditionelt modtages en pakke bestemt til den virtuelle maskine af den fysiske netværksadapter (ved hjælp af fysisk funktion), der findes i værtsoperativsystemet. Denne pakke håndteres af drivermodulet NDIS (Network Driver Interface Specification for NIC er). Pakken leveres derefter til Hyper-V-switchen, som behandler pakken (såsom routing, VLAN-filtrering) og videresender pakken til den bestemte VM via VMBus, som vist i figur 1. Den omvendte sti følges, når VM'en skal sende en pakke.

 Med SR-IOV kan VM'en bruge en virtuel funktion (VF) til at sende og modtage pakker direkte til den fysiske netværksadapter og omgå den traditionelle sti fuldstændigt som vist i figur 1. Dette øger ikke kun netværkets I/O, men reducerer også omkostningerne på værtsmaskinens CPU.
SLN312240_en_US__1i_OSandApplications_Virtualized_Environment1_2012_N_V1
Figur 1: Datasti med og uden SR-IOV

Live migrering & SR-IOV

I Windows Server 2012 Beta kan Live Migration udføres med SR-IOV, der bruges af en VM. Hvis kilde- og målsystemerne understøtter SR-IOV, og destinationen har en tilgængelig VF, bruger VM'en den virtuelle funktion. Hvis ikke, vender VM'en tilbage til den traditionelle sti (VM-Bus).

Hver SR-IOV-kompatibel netværksadapter viser et fast antal virtuelle funktioner, som kan opnås ved at køre PowerShell-kommandoen "Get-NetAdapterSriov".


Analyse af ydeevne

Vi udførte et par tests i vores laboratorium for at sammenligne ydeevnen med og uden SR-IOV. Testmiljøet består af én testserver (som testene udføres på) og én filserver. Testserveren er en Dell PowerEdge™ R710 II med en Intel® X520 10 GB Ethernet-adapter og Windows Server 2012 Beta OS. Filserveren er vært for flere SMB-shares og er sluttet til testserveren via et 10 GB netværk via en Dell PowerConnect™ 8024-switch.

Vi registrerede ydelsesdataene i forhold til den CPU, der blev brugt af DPC'erne (Deferred Procedure Call), der var planlagt af de forskellige drivermoduler, der deltog i netværksdataoverførslen. Disse data blev registreret både i gæste- og værtsoperativsystemet, som beskrevet i følgende scenarier. Testserveren har 4 identiske virtuelle maskiner med Windows Server 2012 Beta som gæsteoperativsystem. De 4 VM er er forbundet til 10 GB-netværket via en virtuel switch. Denne testkonfiguration er vist i figur 2.
SLN312240_en_US__2i_OSandApplications_Virtualized_Environment2_2012_N_V1
Figur 2: Testkonfiguration
Før vi viser ydelsesdataene, er det vigtigt at introducere en meget kritisk parameter, der bruges til denne test. I Microsoft Windows OS findes der en systemmekanisme kaldet Deferred Procedure Call (DPC), som tillader opgaver med høj prioritet (f.eks. en Afbryd handler) for at udsætte nødvendige, men lavere prioriterede opgaver til senere udførelse. Dette gør det muligt for enhedsdrivere og andre hændelsesforbrugere på lavt niveau at udføre den højt prioriterede del af deres behandling hurtigt og planlægge ikke-kritisk yderligere behandling til udførelse med en lavere prioritet.


Scenarie 1 – Ydeevneresultater i virtuel maskine (gæsteoperativsystem):

Vi brugte fire virtuelle maskiner (VM) til dette scenarie (VM 1 til VM 4). Vi aktiverede SR-IOV på VM 1 og VM 2 (ved at markere indstillingen "Aktivér SR-IOV" i VM-indstillingerne) og deaktiverede SR-IOV på VM 3 og VM 4 (ved at fjerne markeringen af den samme indstilling). Derfor vil VM 1 og VM 2 bruge den virtuelle funktion (eksponeret af Intel-adapteren), mens VM 3 og VM 4 vil bruge den syntetiske sti (VMBus) til enhver netværkskommunikation, som vist i figur 2.

Vi begyndte at kopiere data (på 20 GB) fra en enkelt SMB-share til VM erne og registrerede systemets CPU-brugslogfiler i gæsteoperativsystemet.
SLN312240_en_US__3i_OSandApplications_Virtualized_Environment3_2012_N_V1
Figur 3: DPC CPU-forbrug i virtuel maskine

I figur 3 henviser SR-IOV til det gennemsnitlige DPC CPU-forbrug i VM-1 og VM-2, og ikke-SR-IOV henviser til det gennemsnitlige DPC CPU-forbrug i VM-3 og VM-4. Hvis vi ser på grafen, ser vi, at der ikke er meget forskel i CPU-brugen mellem de to tilfælde, men vi har endnu ikke taget højde for CPU-brugen i værtsmaskinen.


Scenarie 2 – Ydeevneresultat i værtsmaskine (værtsoperativsystem):

Vi brugte en virtuel maskine til dette scenarie. Vi begyndte at kopiere data (i størrelse 20 GB) fra SMB-sharen til VM'en og registrerede DPC CPU-brugen af 2 moduler, NDIS og VMBUS, som bruges i netværkets I/O.
SLN312240_en_US__4i_OSandApplications_Virtualized_Environment4_2012_N_V1
Figur 4: DPC CPU-forbrug i værtsmaskine
Resultaterne er vist i figur 4. Som forventet er der en enorm forskel i CPU-brugen mellem de to tilfælde (SR-IOV og ikke-SR-IOV). CPU-forbruget er i størrelsesordenen 102 i tilfælde af SR-IOV og af størrelsesordenen 103 - 104 i tilfælde af ikke-SR-IOV. Dette skyldes hovedsageligt, at i tilfælde af SR-IOV kommunikerer den virtuelle maskine direkte med den fysiske NIC via den virtuelle funktion. Derfor bruges værtens CPU-cyklusser ikke til behandling af netværkspakker. I tilfælde af ikke-SR-IOV (som vist i figur 1) kommunikerer gæsteoperativsystemet med værtsoperativsystemet via VM-bussen, som igen behandler pakkerne og sender dem via det fysiske NIC. Derfor bruges moduler som VM Bus og NDIS i vid udstrækning.

Ved beregning af det samlede CPU-forbrug bemærker vi, at CPU-udnyttelsen under netværkets I/O er langt mindre, når du bruger SR-IOV. Derfor vil Windows Server 2012 Beta med SR-IOV aktiveret hjælpe kunderne med at reducere CPU-omkostningerne under netværkets I/O og derved forbedre systemets samlede ydeevne.

 

Cause

Konfiguration af SR-IOV ved hjælp af PowerShell

Du kan bruge følgende PowerShell-kommandoer til at oprette en ny virtuel switch med SR-IOV aktiveret og knytte den virtuelle switch til det virtuelle netværkskort på en eksisterende virtuel maskine.

BEMÆRK: Før du kører følgende kommandoer, skal følgende indstillinger være aktiveret i BIOS
  • Virtualiseringsteknologi
  • SR-IOV Global Aktivér
(Forudsat at en enkelt netværksadapter (Intel X520) er tilsluttet)

$NetAdap = Get-NetAdapter | Hvor-Objekt { $_. Status -eq "Up"}(switchen -EnableIov bruges til at aktivere SR-IOV i den virtuelle switch)

New-VMSwitch -Name "SRIOV Switch" -NetAdapterName $NetAdap.Name -AllowManagementOS $True -Notes "SRIOV Switch on X520" -EnableIov $True

$VMSw = Get-VMSwitch
Tilføjelse af et nyt netværkskort til VM-1 og tilslutning af det til den virtuelle switch.





Add-VMNetworkAdapter -SwitchName $VMSw.Name -VMName VM-1 -Name "SRIOV Adapter"


BEMÆRK:For at denne kommando skal fungere, skal VM'en være slået fra)
Du kan også bruge et allerede eksisterende VM-netværkskort ved hjælp af følgende kommandoer)

$VMNet = Get-VMNetworkAdapter -VMName VM-1

Connect-VMNetworkAdapter -VMName VM-1 -SwitchName $VMSw.Name -Name $VMNet.Name

Hver VM-netværksadapter har to egenskaber, IovWeight og VmqWeight, som svarer til henholdsvis SR-IOV og VMQ.  Justering af disse vægte aktiverer eller deaktiverer funktionerne.

Resolution

Indstil IovWeight til 100 for at aktivere SR-IOV. For at deaktivere SR-IOV skal du indstille IovWeight til 0 (standard)

Set-VMNetworkAdapter -VMName VM-1 -VMNetworkAdapterName $VMNetName -IovWeight 100

, hvor $VMNetName er navnet på den VM-netværksadapter, der er tilsluttet SRIOV-switchen.

 
Besøg følgende links for yderligere oplysninger:

Affected Products

Servers
Article Properties
Article Number: 000129905
Article Type: Solution
Last Modified: 20 Sept 2021
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.