nepomuk00
Goto Top

Performanceprobleme Terminalserver Windows Server 2022

Hallo Community,

aktuell habe ich hier ein Problem.
Wir haben einen mit Hyper-V virtualisierten Terminalserver unter Windows Server 2022 (Host und VM).
Darauf greifen maximal 10 Benutzer gleichzeitig zu.
Nun ist es sporadisch so, dass die Benutzer sich über kurze Hänger/Ruckler beschweren.

Das ganze ist nicht auf die Auslastung der Hardware zurückzuführen, die VM hat momentan folgende Konfiguration:
- 24 vCPUs (AMD EPYC 73F3 @ 3,50 GHz)
- 128 GB RAM
- 1 TB SSD Storage (Raid 10 mit SAS SSDs)
- 10 Gbit/s Netzwerkanbindung

Auf den Server läuft nichts außergewöhnliches, M365 Business Premium mit Word, Excel, Outlook, Edge als Browser und einer Branchensoftware.
Benutzerprofile liegen auf einer separaten Daten Partition der VM (kein FSLogix oder Profile VHDs)

Folgendes habe ich bereits probiert:
- Hardwareressourcen erweitert (Anfangs lief die VM mit 8 vCPUs und 64 GB RAM)
- die RSC Geschichte auf der Netzwerkkarte deaktiviert, leider ohne Veränderung
- Hypervisor sowie VM laufen auf Höchstleistung in den Energieoptionen
- Virenschutz ist (noch) keiner installiert


Ich habe bereits recherchiert, unter anderen auch diesen Artikel gefunden: Terminalserver - Performanceprobleme auf neuer Hardware, leider scheint hier dass das Problem durch das Deaktivieren von RSC beseitigt worden ist, was hier leider nicht geholfen hat face-sad

Habt Ihr eine Idee an was es liegen könnte? Das Problem ist auch schonmal aufgetreten als nur zwei Personen angemeldet waren, dadurch kann man meiner Meinung nach, die Grafikleistung ausschließen? Was meint Ihr?
Falls Ihr weitere Infos benötigt, diese liefere ich gerne nach. face-smile

Bin über jeden Tipp/Antwort dankbar.

VG Nepomuk

Content-ID: 670885

Url: https://administrator.de/forum/performanceprobleme-terminalserver-windows-server-2022-670885.html

Ausgedruckt am: 28.02.2025 um 04:02 Uhr

LauneBaer
LauneBaer 22.01.2025 um 14:56:26 Uhr
Goto Top
Moin,

schraub mal die vCPUs und den RAM runter. Für 10 User reichen auch 4 - 8 vCPUs und 32GB RAM.
Und dann schau mal ob sich was ändert.

Grüße
support-m
support-m 22.01.2025 aktualisiert um 15:14:47 Uhr
Goto Top
Moin,
stelle den RDP-Zugriff von UDP (Standard) auf TCP only um. Entweder per Gruppenrichtlinie hostseitig oder bei den Clients clientseitig oder in der Windows Firewall des Hosts die UDP Regel deaktivieren. Und sieh zu, dass auf den Server baldmöglichst ein AV Programm kommt!
Ich rechne bei Standardinstallationen bei den Ressourcen mit 1 vCPU und 6 GB RAM pro User, allerdings versuche ich maximal die "echten" Cores zu zuweisen, also in deinem Fall maximal 16 vCPUs und bei höherem Bedarf sollte ein 2. Server (kann sogar aufs gleiche Blech) in Betracht gezogen werden. Wie kommst du bei einem AMD EPYC 73F3 auf 24 vCPUs? Laut AMD hat der 16C/32T oder verwechsle ich hier ertwas?
https://www.amd.com/de/products/processors/server/epyc/7003-series/amd-e ...

MfG
nepomuk00
nepomuk00 22.01.2025 um 16:09:05 Uhr
Goto Top
Moin,

danke für deine Antwort, anfangs lief der TS mit 8 vCPUs und 64 GB RAM und zeigte das gleiche Verhalten. Daraufhin habe ich das testweise erweitert. Kann es gerne nochmal testen, aber ich denke das wird keine Veränderung bringen.

Gruß Nepomuk
nepomuk00
nepomuk00 22.01.2025 um 16:13:44 Uhr
Goto Top
Moin support-m,

danke auch dir für deinen Kommentar.
Habe gerade eben nochmal nachgeschaut, die RDP Sitzungen laufen schon über TCP, das ist im Ressourcenmonitor unter "TCP-Verbindungen" ersichtlich. Was mir hier aufgefallen ist dass die Prozesse (svchost.exe termsvcs) bei der Latenz in ms ziemlich stark schwanken, normalerweise im 1 ms Bereich, aber auf einmal springt ein Client auch gut und gerne mal auf 40 ms siehe Screenshot. Evtl. muss ich doch noch mal bei der Netzwerkkarte schauen, nicht dass hier doch noch irgendwo dieser RSC Murks werkelt.

Zu dem Teil mit den Kernen, sorry habe ich vergessen zu erwähnen, ich habe einen Dual CPU Server, sprich insgesamt 32 "echte" Kerne zu verteilen.

Gruß Nepomuk
clipboard-image
support-m
support-m 22.01.2025 um 18:36:57 Uhr
Goto Top
Zitat von @nepomuk00:
Habe gerade eben nochmal nachgeschaut, die RDP Sitzungen laufen schon über TCP, das ist im Ressourcenmonitor unter "TCP-Verbindungen" ersichtlich.
Das ist gut

Zitat von @nepomuk00:
Was mir hier aufgefallen ist dass die Prozesse (svchost.exe termsvcs) bei der Latenz in ms ziemlich stark schwanken, normalerweise im 1 ms Bereich, aber auf einmal springt ein Client auch gut und gerne mal auf 40 ms siehe Screenshot. Evtl. muss ich doch noch mal bei der Netzwerkkarte schauen, nicht dass hier doch noch irgendwo dieser RSC Murks werkelt.
Interessante Beobachtung. Auf unserem internen Host sehe ich maximal ~27 ms. Wir virtualisieren allerings auf einem ESXi mit einem Windows Server 2019. RSC bzw. LRO usw habe ich sowohl auf dem Host als auch in der VM deaktiviert (heißt in Windows "Large Send Offload"), auch im Software-Stack des OS. Wichtig, dass es an allen Stellen deaktiviert wird.
Was sagt denn
Get-NetOffloadGlobalSetting
in einer Powershell sowohl beim Hyper-V als auch in der VM?

Hast du aufgrund der 10G Thematik irgendwo einen MTU missmatch oder ist das alles Standard 1500?

Wie greifen die User auf den TS zu? Lokal oder via VPN? Treten die Probleme in beiden Fällen auf?

Wie äußern sich die "Hänger"? Werden Eingaben wirklich "verschluckt" oder werden alle Eingaben ausgeführt und nur ruckelartig korrekt "nachgeholt"? Läuft auf dem Ding TEAMS?

MfG
Globetrotter
Globetrotter 22.01.2025 um 19:13:24 Uhr
Goto Top
Moin..

klingt komisch aber kann u.U. auch an der FW liegen - hast Dir mal die Logs angeschaut ?
Hast Du Dir auch u.U. mal die Logs der Switche angeschaut ?
M$ treibt zur Zeit auch komische Sachen...
Ich würde mal sämtliche Logs anschauen oder generieren..

Gruss Globe!
jsysde
jsysde 22.01.2025 um 21:27:45 Uhr
Goto Top
Moin.

Welche NICs sind denn verbaut, Broadcom? Intel? Und welches Model/welche Serie?
LACP-Trunk konfiguriert unter Windows und dem HyperV-Switch?
Wenn ja, welcher Switch auf der Gegenseite?

Cheers,
jsysde
MysticFoxDE
MysticFoxDE 23.01.2025 aktualisiert um 00:36:07 Uhr
Goto Top
Moin @nepomuk00,

Nun ist es sporadisch so, dass die Benutzer sich über kurze Hänger/Ruckler beschweren.

ist bei ab Server 2019 leider nichts ungewöhnliches, weil die Defaulteinstellungen an diversesten ecken schlichtweg für die Katz sind. 😔

Das ganze ist nicht auf die Auslastung der Hardware zurückzuführen, die VM hat momentan folgende Konfiguration:
- 24 vCPUs (AMD EPYC 73F3 @ 3,50 GHz)
- 128 GB RAM
- 1 TB SSD Storage (Raid 10 mit SAS SSDs)
- 10 Gbit/s Netzwerkanbindung

Sieht soweit ganz gut aus.
Welche NIC(s) stecken den genau in diesem Server?


Folgendes habe ich bereits probiert:
- Hardwareressourcen erweitert (Anfangs lief die VM mit 8 vCPUs und 64 GB RAM)

Mehr als 8vCPU's und 64GB RAM, benötigt man für 10 User normalerweise auch nicht wirklich.
Die TS unserer Kunden, müssen mit diesen Ressourcen meist um die 25 User je SH händeln.

- die RSC Geschichte auf der Netzwerkkarte deaktiviert, leider ohne Veränderung

Nix nur Netzwerkkarte, du musst das auch insbesondere auf den vSwitchen auch deaktivieren.

Get-VMSwitch | Set-VMSwitch -EnableSoftwareRsc $false

- Hypervisor sowie VM laufen auf Höchstleistung in den Energieoptionen

Hast du auch schon das BIOS auf Hochleistung getrimmt?

- Virenschutz ist (noch) keiner installiert

Aber sicher und zwar der Defender, der übrigens auch gerne solche Probleme verursacht.

Mit ...

Remove-WindowsFeature -Name Windows-Defender

... kann man diesen bei den Server zumindest, relativ schnell deinstallieren, danach ist jedoch ein Reboot nötig.

Habt Ihr eine Idee an was es liegen könnte?

Ja und nicht nur eine. 🙃

Das Problem ist auch schonmal aufgetreten als nur zwei Personen angemeldet waren, dadurch kann man meiner Meinung nach, die Grafikleistung ausschließen? Was meint Ihr?

Das hat nichts mit der GPU zu tun, sondern meiner Kristallkugel nach eher mit den NIC's, dem RAM oder dem Defender. 😉

Kann es sein, dass das Problem ein paar Tage lang nicht auftritt, wenn die entsprechende VM neu gebootet wurde?

Bin über jeden Tipp/Antwort dankbar.

Schalte mal auf allen vNIC's VMQ aus, welches per Default leider immer aktiv ist.

Get-VM | Get-VMNetworkAdapter | Set-VMNetworkAdapter -VmqWeight 0

Das kann solche Probleme auch verursachen, da viele und vor allem => 10G NIC's für VMQ oder SR-IOV oder RDMA, per Default nicht wirklich richtig konfiguriert sind. 😔

Gruss Alex
nepomuk00
nepomuk00 23.01.2025 um 08:43:27 Uhr
Goto Top
Interessante Beobachtung. Auf unserem internen Host sehe ich maximal ~27 ms. Wir virtualisieren allerings auf einem ESXi mit einem Windows Server 2019. RSC bzw. LRO usw habe ich sowohl auf dem Host als auch in der VM deaktiviert (heißt in Windows "Large Send Offload"), auch im Software-Stack des OS. Wichtig, dass es an allen Stellen deaktiviert wird.

Alles klar, dann könnte die Latenz natürlich auch noch normal sein, was aber sein könnte, dass in dem Moment wo die Hänger auftreten die Latenz viel höher ist, aber das genau in dem Moment zu sehen, ist natürlich schwierig.

Was sagt denn
Get-NetOffloadGlobalSetting
in einer Powershell sowohl beim Hyper-V als auch in der VM?

Ich hänge dir gerne Screenshots an face-smile

Hast du aufgrund der 10G Thematik irgendwo einen MTU missmatch oder ist das alles Standard 1500?

Das ist alles Standard, wie könnte ich das feststellen?

Wie greifen die User auf den TS zu? Lokal oder via VPN? Treten die Probleme in beiden Fällen auf?

Wir greifen nur lokal im selben Subnetz auf den TS zu.

Wie äußern sich die "Hänger"? Werden Eingaben wirklich "verschluckt" oder werden alle Eingaben ausgeführt und nur ruckelartig korrekt "nachgeholt"? Läuft auf dem Ding TEAMS?

Die Eingaben werden schon nachgeholt, z.B. in Word --> ein User schreibt einen Satz, dazwischen wird einfach nicht mehr weitergeschrieben (am Bildschirm) aber wenn der User ganz normal weiterschreibt wird der Satz vollständig "nachgeholt".

MfG
VG
clipboard-image
clipboard-image
nepomuk00
nepomuk00 23.01.2025 um 08:45:40 Uhr
Goto Top
Zitat von @jsysde:

Welche NICs sind denn verbaut, Broadcom? Intel? Und welches Model/welche Serie?

Es ist eine Intel X710-2

LACP-Trunk konfiguriert unter Windows und dem HyperV-Switch?
Wenn ja, welcher Switch auf der Gegenseite?
Nein, ist einfach an den Switch per SFP+ (10 Gbit/s) angebunden.

Cheers,
jsysde

VG
Nepomuk
nepomuk00
nepomuk00 23.01.2025 um 09:01:03 Uhr
Goto Top


Sieht soweit ganz gut aus.
Welche NIC(s) stecken den genau in diesem Server?

eine Intel X710 SFP+

Nix nur Netzwerkkarte, du musst das auch insbesondere auf den vSwitchen auch deaktivieren.
Get-VMSwitch | Set-VMSwitch -EnableSoftwareRsc $false
Ja ich habe das mit den Befehl
Set-VMSwitch -Name v-switch1 -EnableSoftwareRsc $false
abgeschaltet

Hast du auch schon das BIOS auf Hochleistung getrimmt?

Hier konnte ich auf Anhieb nichts finden, allerdings habe ich hier nicht sehr lange geschaut.

- Virenschutz ist (noch) keiner installiert

Aber sicher und zwar der Defender, der übrigens auch gerne solche Probleme verursacht.

Mit ...

Remove-WindowsFeature -Name Windows-Defender

... kann man diesen bei den Server zumindest, relativ schnell deinstallieren, danach ist jedoch ein Reboot nötig.

Das probiere ich aus. face-smile

Kann es sein, dass das Problem ein paar Tage lang nicht auftritt, wenn die entsprechende VM neu gebootet wurde?

Das ist durchaus möglich, die Beschwerden kommen "sporadisch" face-smile

Schalte mal auf allen vNIC's VMQ aus, welches per Default leider immer aktiv ist.

Get-VM | Get-VMNetworkAdapter | Set-VMNetworkAdapter -VmqWeight 0

Ich habe VMQ bereits in den Hyper-V VM Einstellungen unter Netzwerkkarte --> Hardwarebeschleunigung --> "Warteschlange für virtuelle Computer aktivieren" deaktiviert, entspricht das dem gleichen wie der Powershell Befehl?

Das kann solche Probleme auch verursachen, da viele und vor allem => 10G NIC's für VMQ oder SR-IOV oder RDMA, per Default nicht wirklich richtig konfiguriert sind. 😔

Gruss Alex
Gruß Nepomuk
MysticFoxDE
MysticFoxDE 23.01.2025 um 09:56:00 Uhr
Goto Top
Moin @nepomuk00,

eine Intel X710 SFP+

oh, eine X710, sehr gut, denn die bereiten beim Hyper-V die wenigsten Probleme.
Hast du auf dieser auch die zu der jetzt verwendeten Treiberversion passende NVM Version installiert?

Nix nur Netzwerkkarte, du musst das auch insbesondere auf den vSwitchen auch deaktivieren.
Get-VMSwitch | Set-VMSwitch -EnableSoftwareRsc $false
Ja ich habe das mit den Befehl
Set-VMSwitch -Name v-switch1 -EnableSoftwareRsc $false
abgeschaltet

OK, dann ist das schon mal abgehakt.

Hast du auch schon das BIOS auf Hochleistung getrimmt?

Hier konnte ich auf Anhieb nichts finden, allerdings habe ich hier nicht sehr lange geschaut.

Welches Board steckt denn in den Servern, resperktive was sind das genau für Gerättle?

Kann es sein, dass das Problem ein paar Tage lang nicht auftritt, wenn die entsprechende VM neu gebootet wurde?

Das ist durchaus möglich, die Beschwerden kommen "sporadisch" face-smile

Bitte genauer beobachten, diese Info wäre schon sehr wichtig.
Wenn das Problem erst nach ein paar Tagen auftritt, dann hat es nichts mit den NIC's sondern eher etwas mit der RAM belegung zu tun. 😉

Schalte mal auf allen vNIC's VMQ aus, welches per Default leider immer aktiv ist.

Get-VM | Get-VMNetworkAdapter | Set-VMNetworkAdapter -VmqWeight 0

Ich habe VMQ bereits in den Hyper-V VM Einstellungen unter Netzwerkkarte --> Hardwarebeschleunigung --> "Warteschlange für virtuelle Computer aktivieren" deaktiviert, entspricht das dem gleichen wie der Powershell Befehl?

Jup, der Befehl macht dasselbe.

Gruss Alex
MysticFoxDE
MysticFoxDE 23.01.2025 aktualisiert um 10:00:38 Uhr
Goto Top
Moin @nepomuk00,

kannst du mal bitte das Folgende auf dem HV Node ausführen und die Ausgabe hier posten, danke.

Get-VMSwitch -Name v-switch1 | Select *

Gruss Alex
MysticFoxDE
MysticFoxDE 23.01.2025 aktualisiert um 10:51:06 Uhr
Goto Top
Moin @nepomuk00,

Habe gerade eben nochmal nachgeschaut, die RDP Sitzungen laufen schon über TCP, das ist im Ressourcenmonitor unter "TCP-Verbindungen" ersichtlich.

ähm, ja, wie schreibe ich das jetzt nur. 🤔

Also ja, im Ressourcenmonitor steht zwar etwas von "TCP-Verbindungen" was jedem normaldenkenden Menschen auch suggeriert, dass hier nur TCP-Verbindungen angezeigt werden, aber, diese Microsoftians sind mittlerweile nix wirklich normaldenkend, daher werden beim Ressourcenmonitor unter "TCP-Verbindungen" nicht nur TCP sondern auch UDP Verbindungen angezeigt. 🙃

Wenn du wirklich wissen möchtest ob die Verbindung über TCP oder UDP läuft, dann solltest du es eher mit …

netstat -an

… versuchen. 😉

Was mir hier aufgefallen ist dass die Prozesse (svchost.exe termsvcs) bei der Latenz in ms ziemlich stark schwanken, normalerweise im 1 ms Bereich, aber auf einmal springt ein Client auch gut und gerne mal auf 40 ms siehe Screenshot. Evtl. muss ich doch noch mal bei der Netzwerkkarte schauen, nicht dass hier doch noch irgendwo dieser RSC Murks werkelt.

Ähm, ja, diese Murks kommt nicht vom RSC sondern eher vom „Delayed ACK“ und zwar in dem Fall Clientseitig.
Solltest du testweise mal auf dem Server und auch den Clients deaktivieren, was jedoch insbesondere auf den Clients, nicht wirklich ganz einfach ist. 😔🤮

Ich muss mit meinem 21 Jahre altem Kater jetzt aber dringend zum Tierarzt flitzen, daher kann ich dir was das angeht, zumindest jetzt kurzfristig nicht weiterhelfen.

Wenn alles gut geht, dann kann ich heute Nachmittag, diesbezüglich noch ein paar Zeilen mehr schreiben.

Gruss Alex
nepomuk00
nepomuk00 23.01.2025 um 15:04:37 Uhr
Goto Top
Hallo Alex,

danke für deine Kommentare.

oh, eine X710, sehr gut, denn die bereiten beim Hyper-V die wenigsten Probleme.
Hast du auf dieser auch die zu der jetzt verwendeten Treiberversion passende NVM Version installiert?

Ich denke tatsächlich nicht, dass diese aktuell ist, das Ganze hat folgenden Hintergrund:
Der Server ist von Thomas Krenn, Treiber/Firmware werden hier für das individuelle System zur Verfügung gestellt, allerdings nur die Treiberversionen, welche von Thomas-Krenn auch getestet wurden mit den Betriebssystem. Das heißt hier kann es manchmal ewig dauern, bis neue Treiber zur Verfügung gestellt werden.
Der Treiber von der Netzwerkkarte ist von 2019, NVM wird bei Thomas Krenn mit Version 8.50 angeboten, ebenfalls von 2019 face-sad
Ich habe gerade auf der Intel Downloadseite geschaut, hier gibt es bereits NVM Version 9.53. Treiber dann vermutlich dasselbe, sollte ich wahrscheinlich mal testen oder was meinst du?


Hast du auch schon das BIOS auf Hochleistung getrimmt?

Hier konnte ich auf Anhieb nichts finden, allerdings habe ich hier nicht sehr lange geschaut.

Welches Board steckt denn in den Servern, resperktive was sind das genau für Gerättle?

Board ist von Supermicro, genaue Bezeichnung müsste ich nachliefern.
Hab nur bei TK im Downloadbereich gesehen, dass seit 2 Tagen ein neues BIOS Update verfügbar ist. Das muss ich dann auch mal installieren.


Gruss Alex

Gruß Nepomuk
nepomuk00
nepomuk00 23.01.2025 um 15:05:41 Uhr
Goto Top
Zitat von @MysticFoxDE:

kannst du mal bitte das Folgende auf dem HV Node ausführen und die Ausgabe hier posten, danke.

Get-VMSwitch -Name v-switch1 | Select *


clipboard-image
nepomuk00
nepomuk00 23.01.2025 um 15:08:34 Uhr
Goto Top
Zitat von @MysticFoxDE:

Habe gerade eben nochmal nachgeschaut, die RDP Sitzungen laufen schon über TCP, das ist im Ressourcenmonitor unter "TCP-Verbindungen" ersichtlich.

ähm, ja, wie schreibe ich das jetzt nur. 🤔

Also ja, im Ressourcenmonitor steht zwar etwas von "TCP-Verbindungen" was jedem normaldenkenden Menschen auch suggeriert, dass hier nur TCP-Verbindungen angezeigt werden, aber, diese Microsoftians sind mittlerweile nix wirklich normaldenkend, daher werden beim Ressourcenmonitor unter "TCP-Verbindungen" nicht nur TCP sondern auch UDP Verbindungen angezeigt. 🙃

Wenn du wirklich wissen möchtest ob die Verbindung über TCP oder UDP läuft, dann solltest du es eher mit …

netstat -an

… versuchen. 😉

Das habe ich eben noch gemacht, laufen tatsächlich über TCP ;) Aber faszinierend dass MS hier bei TCP Verbindungen auch UDP Verbindungen anzeigt - sehr sinnvoll. Aber anderes Thema :D
MysticFoxDE
MysticFoxDE 23.01.2025 aktualisiert um 19:49:49 Uhr
Goto Top
Moin @nepomuk00,

Ich denke tatsächlich nicht, dass diese aktuell ist, das Ganze hat folgenden Hintergrund:
Der Server ist von Thomas Krenn, Treiber/Firmware werden hier für das individuelle System zur Verfügung gestellt, allerdings nur die Treiberversionen, welche von Thomas-Krenn auch getestet wurden mit den Betriebssystem. Das heißt hier kann es manchmal ewig dauern, bis neue Treiber zur Verfügung gestellt werden.
Der Treiber von der Netzwerkkarte ist von 2019, NVM wird bei Thomas Krenn mit Version 8.50 angeboten, ebenfalls von 2019 face-sad

na ja, Treiber von 2019, passen nicht wirklich gut zu einem Server 2022. 🙃

Ich habe gerade auf der Intel Downloadseite geschaut, hier gibt es bereits NVM Version 9.53. Treiber dann vermutlich dasselbe, sollte ich wahrscheinlich mal testen oder was meinst du?

Bitte die neusten Treiber und auch NVM Versionen verwenden.

Dasselbe gilt auch für die Chipset-Treiber & Co.

Für die NIC benötigst du somit ...

https://www.intel.de/content/www/de/de/download/18190/non-volatile-memor ...

+

https://www.intel.de/content/www/de/de/download/706171/intel-network-ada ...

Board ist von Supermicro, genaue Bezeichnung müsste ich nachliefern.
Hab nur bei TK im Downloadbereich gesehen, dass seit 2 Tagen ein neues BIOS Update verfügbar ist. Das muss ich dann auch mal installieren.

Finde lieber heraus welches Board in dem Server genau verbaut ist und schau dann bei S. ... ähm ja, das kürzen ich jetzt lieber doch nicht so ab, also bei Supermicro direkt nach, welche aktuellen BIOS und Treiberstände die für das entsprechende Board anbieten.

Gruss Alex
MysticFoxDE
MysticFoxDE 02.02.2025 um 21:27:33 Uhr
Goto Top
Moin @nepomuk00,

clipboard-image

😧 ... ähm Moment, ich muss mal zuerst einen kräftigen Schluck nehmen, natürlich nur Kaffee, obwohl noch ein guter Schuss Whiskey, hier durchaus sehr angemessen wäre. 🙃

Wo fange ich jetzt nur an. 😬

Also …

x710

… du hast ja geschrieben, …

Ich habe VMQ bereits in den Hyper-V VM Einstellungen unter Netzwerkkarte --> Hardwarebeschleunigung --> "Warteschlange für virtuelle Computer aktivieren" deaktiviert

… dass du bei allen VMs VMQ deaktiviert hast.

Laut deinem Screenshot, werden an diesem vSwitch jedoch 3 VMQueues dennoch von irgendeiner vNIC verwendet.

Mit dem folgenden Befehl …

Get-NetAdapterVMQQueue 

… solltest du jedoch herausfinden können, bei welchen vNICs VMQ noch aktiviert ist. 😉

Ferner wurde dieser vSwitch eigentlich ohne SR-IOV Support erstellt, was man sehr gut an „IovEnabled: False“ erkennen kann. Dennoch werden bei dir von irgendwelchen vNICs, 20 IOVQueuePairs und zwar ohne jegliche IovVirtualFunctions benutzt. 😭🙈🤮 (Die gelten übrigens Microsoft)

Zudem werden bei „DefaultQueueVmmqQueuePairsRequested“ und „DefaultQueueVrssMaxQueuePairsRequested“ mit 16 QueuePairs per Default viel zu viele Ressourcen per Default reserviert, die so nur einen unnützen Overhead verursachen. 😔
Für einen 10G vSwitch reichen normalerweise schon 2-4 QueuePairs vollkommen aus.

Sprich, der vSwitch ist per Default leider für die Katz und sollte neu erstellt werden und zwar per Power-Shell und richtiger Parametrisierung.

Bevor man jedoch den vSwitch korrekt erstellt, sollte man im Vorfeld die Uplink-NIC(s) korrekt konfigurieren, vor allem RSS, VMQ und SR-IOV technisch.

Kannst du mal auf dem HV-Node die folgenden Befehle ausführen und die Ausgabe hier posten.
Aber bitte einen nach dem anderen Ausführen und nicht gleichzeitig abfeuern.

Get-NetAdapterRss
Get-NetAdapterRss | Select *

Get-NetAdapterSriov
Get-NetAdapterSriov | Select * 

Get-NetAdapterVmq
Get-NetAdapterVmq | Select *


Gruss Alex
nepomuk00
nepomuk00 03.02.2025 um 10:11:40 Uhr
Goto Top
Moin @MysticFoxDE,

danke für deine Antwort.

Wo fange ich jetzt nur an. 😬

Also …

x710

… du hast ja geschrieben, …

Ich habe VMQ bereits in den Hyper-V VM Einstellungen unter Netzwerkkarte --> Hardwarebeschleunigung --> "Warteschlange für virtuelle Computer aktivieren" deaktiviert

… dass du bei allen VMs VMQ deaktiviert hast.

Laut deinem Screenshot, werden an diesem vSwitch jedoch 3 VMQueues dennoch von irgendeiner vNIC verwendet.

Ja, allerdings habe ich nur beim Terminalserver VMQ in der Hardwarebeschleunigung deaktiviert.
Ich habe aber nun bei allen anderen VMs auf den Hyper-V auch VMQ deaktiviert.
Hier eine erneute Ausgabe von
Get-VMSwitch -Name v-switch1 | Select *
clipboard-image
Seltsam ist, dass trotzdem noch immer bei NumberVMQAllocated 1 steht 🤔

Kannst du mal auf dem HV-Node die folgenden Befehle ausführen und die Ausgabe hier posten.
Aber bitte einen nach dem anderen Ausführen und nicht gleichzeitig abfeuern.

Get-NetAdapterRss
clipboard-image

clipboard-image


Get-NetAdapterRss | Select *

clipboard-image
clipboard-image
clipboard-image
clipboard-image
clipboard-image

Get-NetAdapterSriov
clipboard-image

Get-NetAdapterSriov | Select *

clipboard-image
clipboard-image
clipboard-image

Get-NetAdapterVmq
clipboard-image
Get-NetAdapterVmq | Select *
clipboard-image
clipboard-image
clipboard-image

Gruss Alex
Gruss Nepomuk
MysticFoxDE
MysticFoxDE 03.02.2025, aktualisiert am 04.02.2025 um 08:20:19 Uhr
Goto Top
Moin @nepomuk00,

ähm ... ja ... ich sehe schon, das wird eine etwas längere Geschichte, weil so gut wie nirgends die Konfiguration korrekt ist. 😭
Mach dir deshalb jedoch keinen Vorwürfe, denn diesen Murks haben definitiv die Hersteller mit ihren absolut beschissener Default-Konfiguration zu verantworten. 😡

Also, das erste Problem um welches du dich als nächstes kümmern solltest ist das hier.

no global sr-iov

Laut dieser Anzeige, steht SR-IOV auf keinem der vier 10G NIC's hardwaretechnisch zur Verfügung. 😬

Das ist alles andere als gut, denn ohne vollständigen SR-IOV Support, funktioniert sowohl SR-IOV, als auch VMQ und VMMQ und VRSS und auch RDMA nicht wirklich. 😭

Ohne die oben genannten Features, kannst man die Performance einer >=10G NIC, vor allem bei einer virtualisierten Umgebung, jedoch nicht mal ansatzweise ausreizen. 😔

Es ist sogar das Gegenteil der Fall. Denn durch die komplett vermurkste Default-Konfiguration dieser 10G NIC's, laufen viele Anwendungen über diese viel langsamer, als über eine 0815 1G NIC.

Na ja wie auch immer, ich sehe aus dem oberen Screenshot, dass bei deinem System mindestens "Global SR-IOV" im BIOS des Mainboards nicht aktiviert ist.

Denn wäre dies korrekt aktiviert, dann müsste mindestens bei den X710er Ports „SriovSupport“ auf „Supported“ stehen, da man bei diesen NIC’s in deren NIC-BIOS nichts weiter für SR-IOV konfigurieren muss.

Die Supermicro 10GBASE-T NIC’s sind vermutlich Broadcom NIC’s.
Wenn ja, dann sieht die Sache bei diesen etwas anders als bei den X710, den bei den Broadcom NIC’s muss auch das NIC-BIOS korrekt eingestellt werden, damit über diese SR-IOV & Co, wenigstens halwegs korrekt funktioniert.

Welche Supermicro Kiste ist das denn genau?

Wenn ich die Info habe, dann kann ich mal im entsprechenden Handbuch nachschauen, was du im BIOS alles einstellen musst, damit als nächstes Global SR-IOV korrekt aktiviert ist.

Den Rest würde ich dann nach und nach durchgehen, sobald dieses Problem beseitigt ist.

Gruss Alex
nepomuk00
nepomuk00 04.02.2025 um 19:58:25 Uhr
Goto Top
Moin @MysticFoxDE,

danke für deine Antwort.
Habe eben mal den Server durchgestartet und SR-IOV im BIOS aktiviert. Die Ausgabe des Powershell Befehls meldet nun folgendes:
clipboard-image

Sieht also schonmal besser aus als vorher, mal schauen ob das was bringt 🤔
Die RJ45 Supermicro onboard NICs nutze ich sowieso nicht, also halb so wild 😉

Gruß Nepomuk
MysticFoxDE
MysticFoxDE 05.02.2025 um 12:32:48 Uhr
Goto Top
Moin @nepomuk00,

Habe eben mal den Server durchgestartet und SR-IOV im BIOS aktiviert. Die Ausgabe des Powershell Befehls meldet nun folgendes:
clipboard-image

Das sieht doch schon mal um einiges besser aus. 😁
Wenn du nun auch noch verraten könntest was für ein System du genau hast und auch welche Eistellungen du auf diesem dazu im BIOS alles anpassen musstest, können andere leidende das auch etwas besser nachvollziehen. 😉

Sieht also schonmal besser aus als vorher, mal schauen ob das was bringt 🤔

Nicht so schnell, wir sind leider noch so ziemlich am Anfang. 😬

Die RJ45 Supermicro onboard NICs nutze ich sowieso nicht, also halb so wild 😉

Wie du siehst, reicht es bei diesen auch nicht wirklich nur das Global SR-IOV im Mainboard-BIOS zu aktivieren, bei diesen müssen auch noch diverse andere Einstellungen im NIC-Bios korrekt gesetzt werden, damit SR-IOV oder VMQ oder RDMA hardwareseitig überhaupt zur Verfügung steht. 😔😭

Na ja, ich bin jetzt nicht wirklich unglücklich darüber, dass ich das Kapitel mit dem NIC-Bios, bei dir jetzt überspringen kann. Ich muss die nächsten Wochen jedoch mal den schon vor längerem versprochenem Artikel dennoch verfassen, da es da draussen tausende von Systemen gibt, die nicht wirklich korrekt konfiguriert sind.
Und wie du vielleicht schon selber erkannt hast, ist alleine schon nur das herausfinden der entsprechenden Fehlkonfiguration, alles andere als einfach und auch extrem systemspezifisch. 😔

Gruss Alex
MysticFoxDE
MysticFoxDE 05.02.2025 aktualisiert um 13:57:34 Uhr
Goto Top
Moin @nepomuk00,

gut, nun zum nächsten Punkt.

Get-NetAdapterRss | Select *

clipboard-image
clipboard-image
clipboard-image

gemäss den oberen Screenshots, steht bei der NIC mit dem Alias „Ethernet“, also einem der X710 Ports, kein MsiX zur Verfügung (MsiXEnabled:False) und bei dem anderen, also „Enternet 2“, ist MsiX wiederum verfügbar … 😖 … das sollte so aber nicht wirklich sein. 😔

Kannst du als nächstes bitte den folgenden Befehl ausführen und dessen Ausgabe hier zurückposten, danke.

Get-NetAdapterHardwareInfo | Select * 

Gruss Alex

Nachtrag:
Was ich auch noch etwas schräg finde ist, dass beim der „Ethernet“ NIC, also dem Port ohne MsiX, 32 "NumberOfInterruptMessages" und bei dem „Enternet 2“ Port, also dem Port mit MsiX, nur 8 "NumberOfInterruptMessages" zur Verfügung stehen ... 😖 ... WTF ... 😵‍💫.
nepomuk00
nepomuk00 05.02.2025 um 14:03:13 Uhr
Goto Top
Moin @MysticFoxDE,

Das sieht doch schon mal um einiges besser aus. 😁
Wenn du nun auch noch verraten könntest was für ein System du genau hast und auch welche Eistellungen du auf diesem dazu im BIOS alles anpassen musstest, können andere leidende das auch etwas besser nachvollziehen. 😉
Das Board ist ein Supermicro H12DSi-NT6 und im BIOS gab es einen Punkt unter Advanced --> PCI-E... "Global SR-IOV" enabled/disabled. Mehr habe ich nicht eingeschaltet. 😁

Gruss Alex
Gruss Nepomuk
nepomuk00
nepomuk00 05.02.2025 um 14:07:37 Uhr
Goto Top
gemäss den oberen Screenshots, steht bei der NIC mit dem Alias „Ethernet“, also einem der X710 Ports, kein MsiX zur Verfügung (MsiXEnabled:False) und bei dem anderen, also „Enternet 2“, ist MsiX wiederum verfügbar … 😖 … das sollte so aber nicht wirklich sein. 😔

Kannst du als nächstes bitte den folgenden Befehl ausführen und dessen Ausgabe hier zurückposten, danke.

Get-NetAdapterHardwareInfo | Select * 
PS C:\Users\Administrator> Get-NetAdapterHardwareInfo | Select *


SriovSupport                      : Supported
PcieLinkSpeed                     : 8.0 GT/s
PcieMaxLinkSpeed                  : 8.0 GT/s
Version                           : 1.1
DeviceType                        : PCI Express endpoint
CurrentSpeedAndMode               : NA
ifAlias                           : Ethernet
InterfaceAlias                    : Ethernet
ifDesc                            : Intel(R) Ethernet Converged Network Adapter X710
Segment                           : 0
Bus                               : 97
Device                            : 0
Function                          : 1
Slot                              : 1
PcieLinkWidth                     : 8
Caption                           : MSFT_NetAdapterHardwareInfoSettingData 'Intel(R) Ethernet Converged Network  
                                    Adapter X710'  
Description                       : Intel(R) Ethernet Converged Network Adapter X710
ElementName                       : Intel(R) Ethernet Converged Network Adapter X710
InstanceID                        : {DE15F193-7C49-4E3A-9832-F99EE7462B95}
InterfaceDescription              : Intel(R) Ethernet Converged Network Adapter X710
Name                              : Ethernet
Source                            : 2
SystemName                        : srv-hyperv01
BusNumber                         : 97
DeviceNumber                      : 0
Dma64BitSupported                 : True
FunctionNumber                    : 1
LineBasedInterrupts               : False
LineBasedInterruptSupported       : True
LocationInformationString         : PCI-Bus 97, Gerät 0, Funktion 1
MaxInterruptMessages              : 129
MsiEnabled                        : True
MsiInterruptSupported             : True
MsiSupported                      : True
MsiXEnabled                       : True
MsiXInterruptSupported            : True
MsixMessageAffinityArray          : {MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity,
                                    MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity...}
MsiXSupported                     : True
NoInterrupt                       : False
NumaNode                          : 0
NumMsiMessages                    : 33
NumMsixTableEntries               : 129
PciCurrentSpeedAndMode            :
PciDeviceLabelID                  :
PciDeviceLabelString              :
PciDeviceType                     : 2
PciExpressCurrentLinkSpeedEncoded : 3
PciExpressCurrentLinkWidth        : 8
PciExpressCurrentPayloadSize      : 512
PciExpressMaxLinkSpeedEncoded     : 3
PciExpressMaxLinkWidth            : 8
PciExpressMaxPayloadSize          : 2048
PciExpressMaxReadRequestSize      : 512
PciExpressVersion                 : 2
PciXCurrentSpeedAndMode           :
S0WakeupSupported                 : True
SegmentNumber                     : 0
SlotNumber                        : 1
PSComputerName                    :
CimClass                          : ROOT/StandardCimv2:MSFT_NetAdapterHardwareInfoSettingData
CimInstanceProperties             : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties               : Microsoft.Management.Infrastructure.CimSystemProperties

SriovSupport                      : NotSupported
PcieLinkSpeed                     : 8.0 GT/s
PcieMaxLinkSpeed                  : 8.0 GT/s
Version                           : 1.1
DeviceType                        : PCI Express endpoint
CurrentSpeedAndMode               : NA
ifAlias                           : Ethernet 3
InterfaceAlias                    : Ethernet 3
ifDesc                            : Supermicro 10GBASE-T Ethernet Controller
Segment                           : 0
Bus                               : 2
Device                            : 0
Function                          : 1
Slot                              :
PcieLinkWidth                     : 4
Caption                           : MSFT_NetAdapterHardwareInfoSettingData 'Supermicro 10GBASE-T Ethernet Controller'  
Description                       : Supermicro 10GBASE-T Ethernet Controller
ElementName                       : Supermicro 10GBASE-T Ethernet Controller
InstanceID                        : {B151CAF3-3F27-47C6-8636-DFC9FDD1FD81}
InterfaceDescription              : Supermicro 10GBASE-T Ethernet Controller
Name                              : Ethernet 3
Source                            : 2
SystemName                        : srv-hyperv01
BusNumber                         : 2
DeviceNumber                      : 0
Dma64BitSupported                 : True
FunctionNumber                    : 1
LineBasedInterrupts               : False
LineBasedInterruptSupported       : True
LocationInformationString         : PCI-Bus 2, Gerät 0, Funktion 1
MaxInterruptMessages              : 74
MsiEnabled                        : True
MsiInterruptSupported             : True
MsiSupported                      : True
MsiXEnabled                       : True
MsiXInterruptSupported            : True
MsixMessageAffinityArray          : {MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity,
                                    MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity...}
MsiXSupported                     : True
NoInterrupt                       : False
NumaNode                          : 0
NumMsiMessages                    : 32
NumMsixTableEntries               : 74
PciCurrentSpeedAndMode            :
PciDeviceLabelID                  :
PciDeviceLabelString              :
PciDeviceType                     : 2
PciExpressCurrentLinkSpeedEncoded : 3
PciExpressCurrentLinkWidth        : 4
PciExpressCurrentPayloadSize      : 512
PciExpressMaxLinkSpeedEncoded     : 3
PciExpressMaxLinkWidth            : 8
PciExpressMaxPayloadSize          : 512
PciExpressMaxReadRequestSize      : 512
PciExpressVersion                 : 2
PciXCurrentSpeedAndMode           :
S0WakeupSupported                 : True
SegmentNumber                     : 0
SlotNumber                        :
PSComputerName                    :
CimClass                          : ROOT/StandardCimv2:MSFT_NetAdapterHardwareInfoSettingData
CimInstanceProperties             : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties               : Microsoft.Management.Infrastructure.CimSystemProperties

SriovSupport                      : Supported
PcieLinkSpeed                     : 8.0 GT/s
PcieMaxLinkSpeed                  : 8.0 GT/s
Version                           : 1.1
DeviceType                        : PCI Express endpoint
CurrentSpeedAndMode               : NA
ifAlias                           : Ethernet 2
InterfaceAlias                    : Ethernet 2
ifDesc                            : Intel(R) Ethernet Converged Network Adapter X710-2
Segment                           : 0
Bus                               : 97
Device                            : 0
Function                          : 0
Slot                              : 1
PcieLinkWidth                     : 8
Caption                           : MSFT_NetAdapterHardwareInfoSettingData 'Intel(R) Ethernet Converged Network  
                                    Adapter X710-2'  
Description                       : Intel(R) Ethernet Converged Network Adapter X710-2
ElementName                       : Intel(R) Ethernet Converged Network Adapter X710-2
InstanceID                        : {780480C9-A10D-4B18-81A2-14BDBB9C396F}
InterfaceDescription              : Intel(R) Ethernet Converged Network Adapter X710-2
Name                              : Ethernet 2
Source                            : 2
SystemName                        : srv-hyperv01
BusNumber                         : 97
DeviceNumber                      : 0
Dma64BitSupported                 : True
FunctionNumber                    : 0
LineBasedInterrupts               : False
LineBasedInterruptSupported       : True
LocationInformationString         : PCI-Bus 97, Gerät 0, Funktion 0
MaxInterruptMessages              : 129
MsiEnabled                        : True
MsiInterruptSupported             : True
MsiSupported                      : True
MsiXEnabled                       : True
MsiXInterruptSupported            : True
MsixMessageAffinityArray          : {MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity,
                                    MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity...}
MsiXSupported                     : True
NoInterrupt                       : False
NumaNode                          : 0
NumMsiMessages                    : 33
NumMsixTableEntries               : 129
PciCurrentSpeedAndMode            :
PciDeviceLabelID                  :
PciDeviceLabelString              :
PciDeviceType                     : 2
PciExpressCurrentLinkSpeedEncoded : 3
PciExpressCurrentLinkWidth        : 8
PciExpressCurrentPayloadSize      : 512
PciExpressMaxLinkSpeedEncoded     : 3
PciExpressMaxLinkWidth            : 8
PciExpressMaxPayloadSize          : 2048
PciExpressMaxReadRequestSize      : 512
PciExpressVersion                 : 2
PciXCurrentSpeedAndMode           :
S0WakeupSupported                 : True
SegmentNumber                     : 0
SlotNumber                        : 1
PSComputerName                    :
CimClass                          : ROOT/StandardCimv2:MSFT_NetAdapterHardwareInfoSettingData
CimInstanceProperties             : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties               : Microsoft.Management.Infrastructure.CimSystemProperties

SriovSupport                      : NotSupported
PcieLinkSpeed                     : 8.0 GT/s
PcieMaxLinkSpeed                  : 8.0 GT/s
Version                           : 1.1
DeviceType                        : PCI Express endpoint
CurrentSpeedAndMode               : NA
ifAlias                           : Ethernet 5
InterfaceAlias                    : Ethernet 5
ifDesc                            : Supermicro 10GBASE-T Ethernet Controller #2
Segment                           : 0
Bus                               : 2
Device                            : 0
Function                          : 0
Slot                              :
PcieLinkWidth                     : 4
Caption                           : MSFT_NetAdapterHardwareInfoSettingData 'Supermicro 10GBASE-T Ethernet Controller  
                                    #2'  
Description                       : Supermicro 10GBASE-T Ethernet Controller #2
ElementName                       : Supermicro 10GBASE-T Ethernet Controller #2
InstanceID                        : {06D3B517-E750-4A71-A444-C77F6AB29785}
InterfaceDescription              : Supermicro 10GBASE-T Ethernet Controller #2
Name                              : Ethernet 5
Source                            : 2
SystemName                        : srv-hyperv01
BusNumber                         : 2
DeviceNumber                      : 0
Dma64BitSupported                 : True
FunctionNumber                    : 0
LineBasedInterrupts               : False
LineBasedInterruptSupported       : True
LocationInformationString         : PCI-Bus 2, Gerät 0, Funktion 0
MaxInterruptMessages              : 74
MsiEnabled                        : True
MsiInterruptSupported             : True
MsiSupported                      : True
MsiXEnabled                       : True
MsiXInterruptSupported            : True
MsixMessageAffinityArray          : {MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity,
                                    MSFT_NetAdapter_Group_Affinity, MSFT_NetAdapter_Group_Affinity...}
MsiXSupported                     : True
NoInterrupt                       : False
NumaNode                          : 0
NumMsiMessages                    : 32
NumMsixTableEntries               : 74
PciCurrentSpeedAndMode            :
PciDeviceLabelID                  :
PciDeviceLabelString              :
PciDeviceType                     : 2
PciExpressCurrentLinkSpeedEncoded : 3
PciExpressCurrentLinkWidth        : 4
PciExpressCurrentPayloadSize      : 512
PciExpressMaxLinkSpeedEncoded     : 3
PciExpressMaxLinkWidth            : 8
PciExpressMaxPayloadSize          : 512
PciExpressMaxReadRequestSize      : 512
PciExpressVersion                 : 2
PciXCurrentSpeedAndMode           :
S0WakeupSupported                 : True
SegmentNumber                     : 0
SlotNumber                        :
PSComputerName                    :
CimClass                          : ROOT/StandardCimv2:MSFT_NetAdapterHardwareInfoSettingData
CimInstanceProperties             : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties               : Microsoft.Management.Infrastructure.CimSystemProperties

Gruss Alex
Gruss Nepomuk