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-Key: 71749342304

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

Printed on: July 8, 2024 at 12:07 o'clock

Member: NordicMike
NordicMike Jul 05, 2024 at 10:02:43 (UTC)
Goto Top
Die Firewall in der VM mal deaktivieren.

Hat die VM genügend RAM und vCPUs?
Member: CH3COOH
CH3COOH Jul 05, 2024 updated at 10:14:28 (UTC)
Goto Top
Moin,
welcher Hersteller bei der Netzwerkkarte? 1 Gbit Karte? Nutzt du den VM Switch als externen Switch?
Gruss
Member: ArnoNymous
ArnoNymous Jul 05, 2024 at 12:08:19 (UTC)
Goto Top
Moin,

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

Gruß
Member: MysticFoxDE
MysticFoxDE Jul 06, 2024 at 04:56:42 (UTC)
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
Member: MysticFoxDE
MysticFoxDE Jul 06, 2024 at 05:09:22 (UTC)
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
Member: StefanMUC
StefanMUC Jul 08, 2024 at 00:20:56 (UTC)
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?
Member: ArnoNymous
ArnoNymous Jul 08, 2024 at 07:03:04 (UTC)
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ß