Leistungsoptimierung des HNV-Gateways in softwaredefinierten Netzwerken

Dieses Thema enthält Hardwarespezifikationen und Konfigurationsempfehlungen für Server, auf denen Hyper-V ausgeführt wird und virtuelle Windows Server Gateway-Computer hosten, sowie Konfigurationsparameter für virtuelle Windows Server Gateway-Computer (VMs). Um die beste Leistung von Windows Server-Gateway-VMs zu erzielen, wird erwartet, dass diese Richtlinien befolgt werden. Die folgenden Abschnitte enthalten Hardware- und Konfigurationsanforderungen für die Bereitstellung von Windows Server-Gateway.

  1. Hardwareempfehlungen für Hyper-V
  2. Hyper-V-Hostkonfiguration
  3. Vm-Konfiguration des Windows Server-Gateways

Hardwareempfehlungen für Hyper-V

Es folgt die empfohlene Mindesthardwarekonfiguration für jeden Server, auf dem Windows Server 2016 und Hyper-V ausgeführt wird.

Serverkomponente Spezifikation
Zentralprozessor (CPU) NUMA-Knoten (Non-Uniform Memory Architecture): 2
Wenn mehrere Windows Server-Gateway-VMs auf dem Host vorhanden sind, sollte jede Gateway-VM Vollzugriff auf einen NUMA-Knoten haben, um eine optimale Leistung zu erzielen. Außerdem sollte er sich von dem NUMA-Knoten unterscheiden, der vom physischen Hostadapter verwendet wird.
Kerne pro NUMA-Knoten 2
Hyper-Threading Deaktiviert. Hyperthreading verbessert die Leistung von Windows Server-Gateway nicht.
Arbeitsspeicher (RAM) 48 GB
Netzwerkschnittstellenkarten (NICs) Zwei NiCs mit 10 GB, Die Gatewayleistung hängt von der Zeilenrate ab. Wenn die Zeilenrate kleiner als 10 GBit/s ist, sinken auch die Durchsatzzahlen des Gatewaytunnels um denselben Faktor.

Stellen Sie sicher, dass die Anzahl virtueller Prozessoren, die einer Windows Server-Gateway-VM zugewiesen sind, die Anzahl von Prozessoren auf dem NUMA-Knoten nicht übersteigt. Bei einem NUMA-Knoten mit acht Kernen sollten z. B. maximal acht virtuelle Prozessoren verwendet werden. Für eine optimale Leistung sollte es 8 sein. Führen Sie das folgende Windows PowerShell-Skript auf jedem Hyper-V-Host aus, um die Anzahl von NUMA-Knoten und die Anzahl von Kernen pro NUMA-Knoten zu ermitteln:

$nodes = [object[]] $(gwmi –Namespace root\virtualization\v2 -Class MSVM_NumaNode)
$cores = ($nodes | Measure-Object NumberOfProcessorCores -sum).Sum
$lps = ($nodes | Measure-Object NumberOfLogicalProcessors -sum).Sum


Write-Host "Number of NUMA Nodes: ", $nodes.count
Write-Host ("Total Number of Cores: ", $cores)
Write-Host ("Total Number of Logical Processors: ", $lps)

Wichtig

Die Zuordnung von virtuellen Prozessoren zu NUMA-Knoten kann sich negativ auf die Leistung von Windows Server-Gateway auswirken. Die Ausführung mehrerer VMs, denen jeweils Prozessoren von einem NUMA-Knoten zugewiesen sind, bietet wahrscheinlich eine höhere Gesamtleistung als eine einzige VM, der alle virtuellen Prozessoren zugewiesen sind.

Eine Gateway-VM mit acht virtuellen Prozessoren und mindestens 8 GB RAM wird empfohlen, wenn Sie die Anzahl der Gateway-VMs auswählen, die auf jedem Hyper-V-Host installiert werden sollen, wenn jeder NUMA-Knoten über acht Kerne verfügt. In diesem Fall ist ein NUMA-Knoten für den Hostcomputer dediziert.

Hyper-V-Hostkonfiguration

Im Folgenden finden Sie die empfohlene Konfiguration für jeden Server, auf dem Windows Server 2016 und Hyper-V ausgeführt wird und dessen Workload die Ausführung von Windows Server-Gateway-VMs ist. Die Konfigurationsanweisungen beinhalten Windows PowerShell-Befehlsbeispiele. Die Beispiele enthalten Platzhalter für die tatsächlichen Werte, die Sie beim Ausführen der Befehle in Ihrer Umgebung angeben müssen. Die Platzhalter für Netzwerkadapternamen sind z. B. "NIC1" und "NIC2". Wenn Sie Befehle ausführen, die diese Platzhalter verwenden, verwenden Sie die tatsächlichen Namen der Netzwerkadapter auf Ihren Servern, anstatt die Platzhalter zu verwenden. Andernfalls schlagen die Befehle fehl.

Hinweis

Zum Ausführen der folgenden Windows PowerShell-Befehle müssen Sie ein Mitglied der lokalen Gruppe %%amp;quot;Administratoren%%amp;quot; sein.

Konfigurationselement Windows PowerShell-Konfiguration
Switch Embedded Teaming Wenn Sie einen vswitch mit mehreren Netzwerkadaptern erstellen, wurde automatisch switch embedded teaming für diese Adapter aktiviert.
New-VMSwitch -Name TeamedvSwitch -NetAdapterName "NIC 1","NIC 2"
Herkömmliches Teaming über LBFO wird mit SDN in Windows Server 2016 nicht unterstützt. Switch Embedded Teaming ermöglicht es Ihnen, denselben NiCssatz für Ihren virtuellen und RDMA-Datenverkehr zu verwenden. Dies wurde bei NIC-Teaming basierend auf LBFO nicht unterstützt.
Interruptüberprüfung für physische NICs Verwenden Sie die Standardeinstellungen. Um die Konfiguration zu überprüfen, können Sie den folgenden Windows PowerShell Befehl verwenden:Get-NetAdapterAdvancedProperty
Empfangspuffer (Größe) für physische NICs Sie können überprüfen, ob die physischen NICs die Konfiguration dieses Parameters unterstützen, indem Sie den Befehl Get-NetAdapterAdvancedPropertyausführen. Wenn sie diesen Parameter nicht unterstützen, enthält die Ausgabe des Befehls nicht die Eigenschaft "Empfangspuffer". Wenn NICs diesen Parameter unterstützen, können Sie den folgenden Windows PowerShell Befehl verwenden, um die Größe der Empfangspuffer festzulegen:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Receive Buffers" –DisplayValue 3000
Sendepuffer (Größe) für physische NICs Sie können überprüfen, ob die physischen NICs die Konfiguration dieses Parameters unterstützen, indem Sie den Befehl Get-NetAdapterAdvancedPropertyausführen. Wenn die NICs diesen Parameter nicht unterstützen, enthält die Ausgabe des Befehls nicht die Eigenschaft "Puffer senden". Wenn NICs diesen Parameter unterstützen, können Sie den folgenden Windows PowerShell Befehl verwenden, um die Größe "Puffer senden" festzulegen:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Transmit Buffers" –DisplayValue 3000
Empfangsseitige Skalierung (Receive Side Scaling, RSS) für physische NICs Sie können überprüfen, ob RSS für die physischen NICs aktiviert ist, indem Sie den Windows PowerShell-Befehl Get-NetAdapterRss ausführen. Sie können die folgenden Windows PowerShell Befehle verwenden, um RSS auf Ihren Netzwerkadaptern zu aktivieren und zu konfigurieren:
Enable-NetAdapterRss "NIC1","NIC2"
Set-NetAdapterRss "NIC1","NIC2" –NumberOfReceiveQueues 16 -MaxProcessors
HINWEIS: Wenn VMMQ oder VMQ aktiviert ist, muss RSS nicht auf den physischen Netzwerkadaptern aktiviert werden. Sie können es auf den Host-VNET-Adaptern aktivieren.
VMMQ Führen Sie den folgenden Befehl aus, um VMMQ für einen virtuellen Computer zu aktivieren:
Set-VmNetworkAdapter -VMName <gateway vm name>,-VrssEnabled $true -VmmqEnabled $true
HINWEIS: Nicht alle Netzwerkadapter unterstützen VMMQ. Derzeit wird es auf den Serien Chelsio T5 und T6, Mellanox CX-3 und CX-4 und QLogic 45xxx unterstützt.
Warteschlange für virtuelle Computer (Virtual Machine Queue, VMQ) für das NIC-Team Sie können VMQ in Ihrem SET-Team mithilfe des folgenden Windows PowerShell-Befehls aktivieren:
Enable-NetAdapterVmq
HINWEIS: Dies sollte nur aktiviert werden, wenn der HW VMMQ nicht unterstützt. Falls unterstützt, sollte VMMQ für eine bessere Leistung aktiviert werden.

Hinweis

VMQ und vRSS werden nur angezeigt, wenn die Auslastung der VM hoch ist und die CPU maximal genutzt wird. Nur dann wird mindestens ein Prozessorkern maximal aus. VMQ und vRSS sind dann von Vorteil, um die Verarbeitungslast auf mehrere Kerne zu verteilen. Dies gilt nicht für IPsec-Datenverkehr, da IPsec-Datenverkehr auf einen einzelnen Kern beschränkt ist.

Konfiguration der Windows Server-Gateway-VM

Auf beiden Hyper-V-Hosts können Sie mehrere VMs konfigurieren, die als Gateways mit dem Windows Server-Gateway konfiguriert sind. Mit dem Manager für virtuelle Switches können Sie einen virtuellen Hyper-V-Switch erstellen, der an das NIC-Team auf dem Hyper-V-Host gebunden ist. Beachten Sie, dass Sie eine einzelne Gateway-VM auf einem Hyper-V-Host bereitstellen sollten, um eine optimale Leistung zu erzielen. Folgende Konfiguration wird für jede Windows Server-Gateway-VM empfohlen.

Konfigurationselement Windows PowerShell-Konfiguration
Arbeitsspeicher 8 GB
Anzahl virtueller Netzwerkadapter 3 NICs mit den folgenden spezifischen Verwendungsmöglichkeiten: 1 für die Verwaltung, die vom Verwaltungsbetriebssystem verwendet wird, 1 Extern, die Zugriff auf externe Netzwerke ermöglicht, 1, d. h. Intern, die nur Zugriff auf interne Netzwerke ermöglicht.
Empfangsseitige Skalierung (RSS) Sie können die RSS-Standardeinstellungen für die Verwaltungsnic beibehalten. Im Folgenden sehen Sie eine Beispielkonfiguration für eine VM mit acht virtuellen Prozessoren. Für die externen und internen NICs können Sie RSS aktivieren, wobei BaseProcNumber auf 0 und MaxRssProcessors auf 8 festgelegt ist, indem Sie den folgenden Windows PowerShell Befehl verwenden:
Set-NetAdapterRss "Internal","External" –BaseProcNumber 0 –MaxProcessorNumber 8
Seitenpuffer senden Sie können die Standardeinstellungen für "Send Side Buffer" für die Verwaltungs-NIC beibehalten. Sowohl für die internen als auch für die externe NICs können Sie den Send Side Buffer mit 32 MB RAM konfigurieren, indem Sie den folgenden Windows PowerShell Befehl verwenden:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Send Buffer Size" –DisplayValue "32MB"
Empfangsseitiger Puffer Sie können die Standardeinstellungen für den empfangsseitigen Puffer für die Verwaltungs-NIC beibehalten. Sowohl für die internen als auch für die externe NICs können Sie den Empfangsseitigen Puffer mit 16 MB RAM konfigurieren, indem Sie den folgenden Windows PowerShell Befehl verwenden:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
Weiterleitungsoptimierung Sie können die Standardeinstellungen für die Vorwärtsoptimierung für die Verwaltungs-NIC beibehalten. Sowohl für die internen als auch für die externe NICs können Sie die Weiterleitungsoptimierung mithilfe des folgenden Windows PowerShell-Befehls aktivieren:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"