Leistungsoptimierung von HNV-Gateways in Software Defined Networks

Das Thema enthält neben Konfigurationsparametern für Windows Server-Gateway-VMs (virtuelle Computer) Hardwarespezifikationen und Konfigurationsempfehlungen für Server, auf denen Hyper-V ausgeführt wird und Windows Server-Gateway-VMs gehostet werden. Um die optimale 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. Konfiguration der Windows Server-Gateway-VM

Hardwareempfehlungen für Hyper-V

Die folgende Tabelle enthält die empfohlene Mindesthardwarekonfiguration für jeden Server, auf dem Windows Server 2016 und Hyper-V ausgeführt werden.

Serverkomponente Spezifikation
Zentralprozessor (CPU) Non-Uniform Memory Architecture (NUMA)-Knoten: 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
Hyperthreading Deaktiviert. Hyperthreading verbessert die Leistung von Windows Server-Gateway nicht.
Arbeitsspeicher (RAM) 48 GB
Netzwerkschnittstellenkarten (NICs) Zwei Netzwerkkarten mit 10 GB. Die Gatewayleistung hängt von der Leitungsgeschwindigkeit ab. Wenn die Leitungsgeschwindigkeit 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. Der Wert für eine optimale Leistung ist 8. 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 die einzelnen NUMA-Knoten über acht Kerne verfügen. In diesem Fall ist ein dedizierter NUMA-Knoten für den Hostcomputer vorgesehen.

Hyper-V-Hostkonfiguration

Für jeden Server, auf dem Windows Server 2016 und Hyper-V ausgeführt werden und dessen Workload in der Ausführung von Windows Server-Gateway-VMs besteht, wird die im Folgenden beschriebene Konfiguration empfohlen. 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 beispielsweise „NIC1“ und „NIC2“. Wenn Sie Befehle mit diesen Platzhaltern ausführen, verwenden Sie anstelle der Platzhalter die tatsächlichen Namen der Netzwerkadapter auf Ihren Servern. 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 virtuellen Switch mit mehreren Netzwerkadaptern erstellen, wird für diese Adapter automatisch Switch Embedded Teaming aktiviert.
New-VMSwitch -Name TeamedvSwitch -NetAdapterName "NIC 1","NIC 2"
Das herkömmliche Teaming über LBFO wird bei SDN in Windows Server 2016 nicht unterstützt. Switch Embedded Teaming ermöglicht es Ihnen, dieselben Netzwerkkarten für virtuellen und RDMA-Datenverkehr zu verwenden. Dies wurde beim NIC-Teaming basierend auf LBFO nicht unterstützt.
Interruptüberprüfung für physische NICs Verwenden Sie die Standardeinstellungen. Sie können die Konfiguration mit dem folgenden Windows PowerShell-Befehl überprüfen: Get-NetAdapterAdvancedProperty
Empfangspuffer (Größe) für physische NICs Sie können überprüfen, ob die physischen Netzwerkkarten die Konfiguration dieses Parameters unterstützen, indem Sie den Befehl Get-NetAdapterAdvancedProperty ausführen. Wenn sie diesen Parameter nicht unterstützen, enthält die Ausgabe des Befehls nicht die Eigenschaft „Puffer empfangen“. Unterstützen die NICs den Parameter, können Sie die Empfangspuffergröße mit dem folgenden Windows PowerShell-Befehl festlegen:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Receive Buffers" –DisplayValue 3000
Sendepuffer (Größe) für physische NICs Sie können überprüfen, ob die physischen Netzwerkkarten die Konfiguration dieses Parameters unterstützen, indem Sie den Befehl Get-NetAdapterAdvancedProperty ausführen. Wenn die NICs diesen Parameter nicht unterstützen, enthält die Ausgabe des Befehls nicht die Eigenschaft "Puffer senden". Unterstützen die NICs den Parameter, können Sie die Sendepuffergröße mit dem folgenden Windows PowerShell-Befehl festlegen:
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 RSS mit den folgenden Windows PowerShell-Befehlen für Ihre Netzwerkadapter aktivieren und konfigurieren:
Enable-NetAdapterRss "NIC1","NIC2"
Set-NetAdapterRss "NIC1","NIC2" –NumberOfReceiveQueues 16 -MaxProcessors
HINWEIS: Wenn VMMQ oder VMQ aktiviert ist, muss RSS für die physischen Netzwerkadapter nicht aktiviert werden. Sie können es auf den virtuellen Hostnetzwerkadaptern 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 Chelsio T5 und T6, Mellanox CX-3 und CX-4 und der QLogic 45xxx-Serie unterstützt.
Warteschlange für virtuelle Computer (Virtual Machine Queue, VMQ) für das NIC-Team Sie können VMQ mit dem folgenden Windows PowerShell-Befehl für Ihr SET-Team aktivieren:
Enable-NetAdapterVmq
HINWEIS: Dies sollte nur aktiviert werden, wenn die Hardware VMMQ nicht unterstützt. Sofern unterstützt, sollte VMMQ aktiviert werden, um eine bessere Leistung zu erzielen.

Hinweis

VMQ und vRSS spielen nur eine Rolle, wenn die Auslastung der VM hoch ist und die CPU maximal genutzt wird. Nur dann wird mindestens ein Prozessorkern voll ausgelastet. 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

Sie können auf beiden Hyper-V-Hosts mehrere VMs konfigurieren, die als Gateways mit 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 für folgende Verwendungszwecke: eine für die Verwaltung, die vom Verwaltungsbetriebssystem verwendet wird, eine externe, die Zugriff auf externe Netzwerke bietet, und eine interne, die nur Zugriff auf interne Netzwerke bietet.
Empfangsseitige Skalierung (RSS) Sie können die standardmäßigen RSS-Einstellungen für die Verwaltungs-NIC übernehmen. Im Folgenden sehen Sie eine Beispielkonfiguration für eine VM mit acht virtuellen Prozessoren. Für die externen und internen NICs können Sie mit dem folgenden Windows PowerShell-Befehl RSS mit dem BaseProcNumber-Wert 0 und dem MaxRssProcessors-Wert 8 aktivieren:
Set-NetAdapterRss "Internal","External" –BaseProcNumber 0 –MaxProcessorNumber 8
Sendeseitiger Puffer Sie können die standardmäßigen Einstellungen für den sendeseitigen Puffer für die Verwaltungs-NIC übernehmen. Für die interne und externe NIC können Sie den sendeseitigen Puffer mit dem folgenden Windows PowerShell-Befehl mit 32 MB RAM konfigurieren:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Send Buffer Size" –DisplayValue "32MB"
Empfangsseitiger Puffer Sie können die standardmäßigen Einstellungen für den empfangsseitigen Puffer für die Verwaltungs-NIC übernehmen. Für die interne und externe NIC können Sie den empfangsseitigen Puffer mit dem folgenden Windows PowerShell-Befehl mit 16 MB RAM konfigurieren:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
Weiterleitungsoptimierung Sie können die standardmäßigen Einstellungen für die Weiterleitungsoptimierung für die Verwaltungs-NIC übernehmen. Für die interne und externe NIC können Sie die Weiterleitungsoptimierung mit dem folgenden Windows PowerShell-Befehl konfigurieren:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"