stefanmuc
Goto Top

Verbundenes Netzlaufwerk aus lokaler HyperV-Virtualisierung total langsam

Hallo,
ich habe auf dem Win11Pro-Host (AMD Ryzen9 7950X3D, 64 GB, mehrere M.2 NVMe-SSDs PCIe4) zusätzlich als HyperV-Virtualisierung ebenfalls Win11Pro laufen und habe im Host ein Netzlaufwerk angelegt, das sich originär im virtualisierten Client befindet.
Auslastung im Taskmanager: CPU immer unter 20%, alle SSDs: 0%

Das Arbeiten in diesem Netzlaufwerk ist eine Tortur, Dateiänderungen innerhalb des Netzlaufwerks (z. B. lediglich Umbenennen) dauern stets > 5 sec.

Wie kann ich hier den Flaschenhals finden, der bremst?

Content-ID: 71749342304

Url: https://administrator.de/contentid/71749342304

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

NordicMike
NordicMike 05.07.2024 um 12:02:43 Uhr
Goto Top
Die Firewall in der VM mal deaktivieren.

Hat die VM genügend RAM und vCPUs?
CH3COOH
CH3COOH 05.07.2024 aktualisiert um 12:14:28 Uhr
Goto Top
Moin,
welcher Hersteller bei der Netzwerkkarte? 1 Gbit Karte? Nutzt du den VM Switch als externen Switch?
Gruss
ArnoNymous
ArnoNymous 05.07.2024 um 14:08:19 Uhr
Goto Top
Moin,

schau mal, ob bei deiner lokalen Netzwerkkarte Virtual Maschine Queue deaktiviert ist. Falls nicht, deaktiviere es.

Gruß
MysticFoxDE
MysticFoxDE 06.07.2024 um 06:56:42 Uhr
Goto Top
Moin @StefanMUC,

ich habe auf dem Win11Pro-Host (AMD Ryzen9 7950X3D, 64 GB, mehrere M.2 NVMe-SSDs PCIe4) zusätzlich als HyperV-Virtualisierung ebenfalls Win11Pro laufen und habe im Host ein Netzlaufwerk angelegt, das sich originär im virtualisierten Client befindet.

OK, du hast einen W11 HV und eine W11 VM, sprich, ähnliche Umgebung wie auch mit Server 2019, da selber Kernel.

Auslastung im Taskmanager: CPU immer unter 20%, alle SSDs: 0%

Das Arbeiten in diesem Netzlaufwerk ist eine Tortur, Dateiänderungen innerhalb des Netzlaufwerks (z. B. lediglich Umbenennen) dauern stets > 5 sec.

Das kommt mir irgendwie sehr bekannt vor. 🙃

Wie kann ich hier den Flaschenhals finden, der bremst?

Wahrscheinlich mach dir das RSC (🤢🤮) auf dem vSwitch die Performance zunichte.

Um das auszuschalten, musst du PowerShell als Administrator öffnen und den folgenden Befehl abfeuern.

Get-VMSwitch | Set-VMSwitch -EnableSoftwareRsc $false

Diesen Befehl kann ich übrigens jedem Hyper-V Admin nur wärmstens empfehlen, vor allem wenn auf den VM's Datenbanken & Co laufen. 😉

Gruss Alex
MysticFoxDE
MysticFoxDE 06.07.2024 um 07:09:22 Uhr
Goto Top
Moin @ArnoNymous,

schau mal, ob bei deiner lokalen Netzwerkkarte Virtual Maschine Queue deaktiviert ist. Falls nicht, deaktiviere es.

meine Kristallkugel sagt mir, dass du wahrscheinlich mit Broadcom NIC's der BCM54xxx oder BCM57xxx Serie und Hyper-V schon schlechte Erfahrungen machen musstest. 🙃

Wenn ja, dann ist das Auschalten von VMQ nicht wirklich die beste Lösung, den dadurch bekommst du vor allem bei >= 10G Uplinks, keine Performance/Durchsatz mehr hin. Die bessere Lösung wäre es, SR-IOV im BIOS der Broadcom NIC's zu aktivieren und auch richtig zu konfigurieren, was per Default leider nicht der Fall ist. 😭
Und wenn man das gemacht hat, dann funktioniert auch VMQ 1A auf Broadcom NIC's. 😉

Übrigens, auch wenn du VM seitig weder SR-IOV noch VMQ einsetzt, muss bei einem Hyper-V auf der entsprechenden Uplink-NIC, sowohl VMQ als auch SR-IOV als auch VRSS und auch RSS auf der NIC aktiviert und auch korrekt konfiguriert sein, damit der entsprechende vSwitch auch halbwegs korrekt/performant läuft.

Gruss Alex
StefanMUC
StefanMUC 08.07.2024 um 02:20:56 Uhr
Goto Top
Sind die Anpassungen auf dem Host oder auf der VM nötig?

Auf dem Host:
PS C:\Windows\system32> Get-NetAdapterRsc

Name                           IPv4Enabled  IPv6Enabled  IPv4Operational IPv6Operational IPv4FailureReason IPv6FailureR
                                                         State           State                             eason
----                           -----------  -----------  --------------- --------------- ----------------- ------------
vEthernet (vSwitch extern)     True         True         True            True            NoFailure         NoFailure

PS C:\Windows\system32> netsh int tcp set global rsc=disabled
OK.

PS C:\Windows\system32> Get-NetAdapterRsc

Name                           IPv4Enabled  IPv6Enabled  IPv4Operational IPv6Operational IPv4FailureReason IPv6FailureReason
                                                         State           State
----                           -----------  -----------  --------------- --------------- ----------------- -----------------
vEthernet (vSwitch extern)     True         True         False           False           NetOffloadGlob... NetOffloadGlob...

PS C:\Windows\system32> Get-NetAdapterRsc | Disable-NetAdapterRsc

PS C:\Windows\system32> Get-VmSwitch | Set-VMSwitch -EnableSoftwareRsc $false
Set-VMSwitch : Fehler beim Ändern der Verbindungseinstellungen für den virtuellen Ethernet-Switch.
Der automatische Switch für die gemeinsame Nutzung der Internetverbindung kann nicht geändert werden.
In Zeile:1 Zeichen:16
+ Get-VmSwitch | Set-VMSwitch -EnableSoftwareRsc $false
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-VMSwitch], VirtualizationException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.SetVMSwitch

Warum läuft der PS-Befehl auf einen Fehler?
ArnoNymous
ArnoNymous 08.07.2024 um 09:03:04 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @ArnoNymous,

schau mal, ob bei deiner lokalen Netzwerkkarte Virtual Maschine Queue deaktiviert ist. Falls nicht, deaktiviere es.

meine Kristallkugel sagt mir, dass du wahrscheinlich mit Broadcom NIC's der BCM54xxx oder BCM57xxx Serie und Hyper-V schon schlechte Erfahrungen machen musstest. 🙃

Wenn ja, dann ist das Auschalten von VMQ nicht wirklich die beste Lösung, den dadurch bekommst du vor allem bei >= 10G Uplinks, keine Performance/Durchsatz mehr hin. Die bessere Lösung wäre es, SR-IOV im BIOS der Broadcom NIC's zu aktivieren und auch richtig zu konfigurieren, was per Default leider nicht der Fall ist. 😭
Und wenn man das gemacht hat, dann funktioniert auch VMQ 1A auf Broadcom NIC's. 😉

Übrigens, auch wenn du VM seitig weder SR-IOV noch VMQ einsetzt, muss bei einem Hyper-V auf der entsprechenden Uplink-NIC, sowohl VMQ als auch SR-IOV als auch VRSS und auch RSS auf der NIC aktiviert und auch korrekt konfiguriert sein, damit der entsprechende vSwitch auch halbwegs korrekt/performant läuft.

Gruss Alex


Hey, danke für den Hinweis. Das werde ich mir mal anschauen.
Wobei ich schon länger keine Performanceprobleme mehr in Hyper-V hatte.
Das war tatsächlich eine "Erinnerung aus alten Tagen".

Gruß
StefanMUC
StefanMUC 16.10.2024 um 15:50:05 Uhr
Goto Top
Danke für die Infos und Tipps. Jetzt bin ich endlich wieder auf diese noch offene Baustelle wieder gestoßen:

Mein Host A hat eine Realtec 2,5Gb Netzwerkkarte, die unter Systemsteuerung/System/Geräte-Manager/Netzwerkadapter unter Einstellungen/Erweitert keine VMQ-Einstellungsmöglichkeiten hat.
Die VM selbst bekommt ja immer einen MS Hyper-V Network Adapter, der auch keine VMQ-Einstellungen hat.

Host B (mit dem sich gleich anfühlenden Problem) hat in der Tat eine 10G-Broadcom-Netzwerkkarte mit VMQ default enabled. Beim nächsten Reboot (aktuell nicht möglich), werde ich im BIOS mal die Einstellung SR-IOV suchen.