So verbessern Sie die Netzwerkleistung für Hyper-V-VMs unter Windows Server 2019

Langsame Dateiübertragungen in virtuellen Umgebungen, insbesondere über Hyper-V unter Windows Server 2019, können extrem frustrierend sein. Manchmal geht das Kopieren von Dateien in oder aus VMs nur im Schneckentempo – etwa dreimal langsamer als erwartet – und der Grund dafür ist unklar. Die gute Nachricht: Es gibt einige Optimierungen und Tricks, die die Netzwerkleistung deutlich verbessern können. Solche Tipps und Tricks werden nicht immer in der offiziellen Dokumentation behandelt. Falls Sie sich also schon länger gefragt haben, warum Ihr VM-Netzwerk so langsam ist, finden Sie hier eine Übersicht mit praktischen Lösungen, die sich in verschiedenen Umgebungen bewährt haben.

So beheben Sie Hyper-V-Netzwerkengpässe in Windows Server 2019

Empfangssegment-Koaleszenz (RSC) im Hyper-V vSwitch

RSC ist eine Funktion, die in Windows Server 2019 und späteren Versionen eingeführt wurde und mehrere TCP-Segmente kombiniert, um die CPU-Auslastung zu reduzieren und den Durchsatz zu verbessern. Manchmal kann RSC jedoch kontraproduktiv sein und die Verzögerung erhöhen, insbesondere bei bestimmten Hardwarekonfigurationen. In manchen Fällen kann die Deaktivierung von RSC Netzwerkverzögerungen beheben und die Übertragungsgeschwindigkeit wiederherstellen.

Mit diesem Befehl können Sie überprüfen, ob RSC für Ihre Switches aktiv ist:

Get-VMSwitch | Select-Object *RSC*

Wenn Sie feststellen, dass RSC aktiviert ist und Ihre Netzwerkgeschwindigkeit langsam ist, sollten Sie versuchen, es zu deaktivieren. Um schnell zu testen, ob RSC die Ursache ist, deaktivieren Sie es für IPv4-Datenverkehr auf der entsprechenden Netzwerkkarte:

Disable-NetAdapterRsc -Name "Ethernet" -IPv4

Dieser Befehl deaktiviert RSC für IPv4-Datenverkehr auf Ihrer Netzwerkkarte mit dem Namen „Ethernet“ (ersetzen Sie „Ethernet“ durch Ihren tatsächlichen Schnittstellennamen).Testen Sie anschließend erneut das Kopieren von Dateien oder führen Sie einen Durchsatztest mit iperf durch. Falls die Geschwindigkeiten steigen, können Sie RSC auf Switch-Ebene deaktivieren, um sicherzustellen, dass die Einstellung für Ihre VM-Verbindung erhalten bleibt.

Set-VMSwitch -Name vSwitchName -EnableSoftwareRsc $false

Hierbei ist vSwitchName der Name Ihres virtuellen Switches. Denken Sie daran, dass Sie diesen jederzeit ein- und ausschalten können, ohne bestehende Verbindungen zu unterbrechen – es lohnt sich also, dies mehrmals zu testen.

Und falls Sie RSC global auf Ihrem Host deaktivieren möchten (manchmal erforderlich, wenn die Switch-Befehle nicht ausreichen), führen Sie Folgendes in PowerShell aus:

netsh int tcp set global rsc=disabled

Es ist irgendwie seltsam, dass das einfache Umlegen dieser Schalter schon hilft, aber bei manchen Maschinen ist es genau das, was der Arzt verordnet hat.

Überprüfen Sie Ihren VMQ-Modus (Virtual Machine Queue).

Eine weitere häufige Fehlerquelle ist VMQ, eine Hardware-Offload-Funktion, die die Netzwerkleistung verbessern soll, indem Pakete direkt an virtuelle Maschinen weitergeleitet werden. Wenn Ihre Hardware VMQ jedoch nicht korrekt unterstützt oder falsch konfiguriert ist, kann dies zu Paketverlusten oder Verzögerungen führen – insbesondere bei älteren Gigabit-Netzwerkkarten von Broadcom.

Sie können den VMQ-Unterstützungsstatus mit PowerShell überprüfen:

Get-NetAdapterVmq

Wenn VMQ aktiviert ist, Sie aber vermuten, dass es Probleme verursacht, kann die Deaktivierung Abhilfe schaffen. So deaktivieren Sie VMQ für eine bestimmte Netzwerkkarte:

Set-NetAdapterVmq -Name "NICName" -Enabled $False

Ersetzen Sie NICName durch den Namen Ihrer tatsächlichen Netzwerkschnittstelle. Nach der Deaktivierung empfiehlt sich in der Regel ein Neustart des Hosts, um eventuell verbleibende Probleme zu beheben. Stellen Sie außerdem sicher, dass Ihre QoS-Richtlinien die Bandbreite nicht drosseln – dies kann ebenfalls zu einer Verlangsamung führen.

Feinabstimmung der TCP-Stack-Einstellungen

Eine weitere Möglichkeit, die einen Unterschied machen kann, ist die Anpassung der TCP-Parameter von Windows, insbesondere da Windows Server 2019 standardmäßig den CUBIC TCP-Stauungsalgorithmus verwendet, der für Hochgeschwindigkeitsnetzwerke gedacht ist, aber in einigen virtuellen Umgebungen suboptimal sein kann.

Speichern Sie zunächst Ihre aktuellen TCP-Einstellungen, damit Sie diese bei Bedarf wiederherstellen können:

Get-NetTCPSetting -SettingName Datacenter, DatacenterCustom, InternetCustom, Internet | Export-Csv c:\backup\ws2019_network_stack_settings_nettcp_backup.csv

Optimieren Sie anschließend die TCP-Stauvermeidung und deaktivieren Sie unnötige Funktionen wie RSS und RSC, die die VM-Leistung beeinträchtigen können:

netsh int tcp show global netsh int tcp set global RSS=Disabled netsh int tcp set global RSC=Disabled

Deaktivieren Sie außerdem Large Send Offload (LSO) auf Ihren Netzwerkkarten:

Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv4)" -DisplayValue "Disabled" -NoRestart Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv6)" -DisplayValue "Disabled" -NoRestart Restart-NetAdapter

Deaktivieren Sie außerdem die Option „Empfangssegment-Zusammenfassung“ in den erweiterten Eigenschaften der Netzwerkkarte (falls Sie die Einstellungen lieber über die grafische Benutzeroberfläche vornehmen).Dies kann in Szenarien mit geringer Latenz oder in virtuellen Maschinen, in denen die Leistung entscheidend ist, hilfreich sein.

Zusammenfassung

  • Überprüfen Sie den RSC-Status mitGet-VMSwitch | Select-Object *RSC*
  • Deaktivieren Sie RSC für IPv4/IPv6 bei Bedarf mithilfe von PowerShell- oder netsh-Befehlen.
  • Überprüfen und deaktivieren Sie VMQ, falls es Probleme verursacht Get-NetAdapterVmq.Set-NetAdapterVmq
  • Passen Sie die TCP-Stack-Einstellungen an, um RSC und RSS zu deaktivieren und die Staukontrolle zu optimieren.
  • Starten Sie die Netzwerkadapter nach den Änderungen neu, um die neuen Einstellungen anzuwenden.

Zusammenfassung

Zusammenfassend lässt sich sagen, dass die Optimierung dieser Netzwerkeinstellungen vielen Nutzern geholfen hat, die Netzwerkgeschwindigkeit ihrer virtuellen Maschinen unter Windows Server 2019 deutlich zu steigern. Der Grund dafür ist nicht immer intuitiv, aber das Deaktivieren von Funktionen wie RSC und VMQ führt oft zu spürbaren Verbesserungen. Vorsicht: Diese Änderungen können mitunter zu Inkonsistenzen führen. Erstellen Sie daher unbedingt Sicherungskopien Ihrer Konfiguration und testen Sie die Änderungen nach jeder Anpassung. Hoffentlich trägt dies zumindest bei einem Problem zur Lösung bei. Ich drücke die Daumen!