mysticfoxde
Goto Top

Wie man das Windows 10 und 11 TCP-Handling wieder desuboptimieren kann

Moin Zusammen,

ich möchte euch in diesem Beitrag von einer kleinen Saurei berichten, über die ich, dank der folgenden Diskussion gestolpert bin.

Remote Desktop Services unter 2022 - Erfahrungen?

Und zwar hat Microsoft so ab Windows 10, sehr kräftig an der TCP Verarbeitung herumgefummelt und das nicht nur an einer, sondern an diversesten Stellen. 😭
Ich möchte heute jedoch nicht alle durchkauen, sondern lediglich auf eine davon, die jedoch meiner Ansicht nach ganz besonders schlimm verfummelt wurde, eingehen/hinweisen.

Macht bitte bei euren Windows 10/11 Rechner/Workstations/Laptops mal eine Power-Shell Konsole auf und gibt dort den folgenden Befehl ein.

Get-NetTCPConnection

Schaut euch nun genau die Ausgabe dieses Befehls an und achtet insbesondere auf das was in der Spalte „AppliedSetting“ steht.

Ihr werdet feststellen, dass euer Windows 10/11 sämtliche ausgehenden TCP Verbindungen, wie unten abgebildet über das Internet TCP-Profil händelt …

w11-wrong-networktraficcategory

Und mit alle meine ich auch alle und zwar nicht nur die, die ins Internet, sondern auch die, die ins Intranet/LAN gehen. 😬
Das sorgt wiederum dafür, dass z.B. unter anderem sämtliche ACK-Pakete und zwar auch die des LAN-Verkehrs betreffend, absolut unnötig verzögert werden.😬

Siehe auch den folgenden Kommentar von Dan Cuomo, einem der Netzwerk-Chefentwickler bei Microsoft.

https://techcommunity.microsoft.com/t5/networking-blog/tcp-templates-for ...

„The Datacenter template is designed for low-latency LAN environments and the Internet template is designed for higher latency WAN environments.“

Somit ist das Internetprofil für niederlatente LAN-Verbindungen, so gesehen und auch laut Microsoft selbst, nicht wirklich geeignet. 😔

Jetzt kommt noch ein besonderes bitterer „Schmankerl“ noch hinzu.
Das meisten Einstellungen des Internet und auch des Datacenter TCP-Profils der aktuellen Windows Versionen, wurden zu Zeiten vom Server 2012 definiert und zwar gemäss den Internetanschlusseigenschaften, die damals halt üblich waren.
Wir schreiben heute jedoch das Jahr 2023 und viele der Internetanschlüsse von heute, ähneln sich in ihren Eigenschaften schon eher dem, was man 2012 noch unter Datacenter Datenverkehr verstanden hat. 😉

Und anstelle das Microsofts hergeht und für die heutigen Internet und oder LAN Geschwindigkeiten eher pauschal das schnellere und somit passendere Datacenter TCP-Profil als Default TCP-Profil von Windows hinterlegt, machen die genau das Gegenteil und hinterlegen bei aktuellen Windows Versionen (10&11), pauschal das lahmere Internet Profil. 🙈🤢🤮

Und dann nageln die die Betriebssysteme auch noch so zu, dass ein Normalsterblicher User das auch nicht mehr umstellen kann. 😭😡🤬

Aber ja, ein 🦊 muss bei so einem solchen Murks halt auch das tun, was ein 🦊 eben tun.
Und so habe ich durchaus einen Weg gefunden, beim Windows 10/11 diesen Murks auch wieder rauszurupfen. 😁

Folgend die Version 0.9 meines „WINDOWS10AND11-NETWORK-TCP-DESUBUPTIMIZATION“ Scripts.


---
Update 27.01.2023:
!!! Die aktuellste Version des Skripts findet Ihr unter dem folgenden Link. !!!
https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...
Bitte nicht mehr die unten abgebildete verwenden, danke.
---


#Get-NetTCPSetting
#Get-NetTCPConnection
#netsh int tcp show global

# DISABLE RSS
netsh int tcp set global RSS=Disabled
Set-NetOffloadGlobalSetting -ReceiveSideScaling Disabled
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RSS" -RegistryValue 0  
Get-Netadapter -Physical | Disable-NetAdapterRss


# DISABLE RSC 
netsh int tcp set global RSC=Disabled
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RscIPv4" -RegistryValue 0  
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RscIPv6" -RegistryValue 0  
Get-Netadapter -Physical | Disable-NetAdapterRsc -IPv4 -IPv6

# DISABLE PACKET COALESCING
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Disabled
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*PacketCoalescing" -RegistryValue 0  

# DISABLE FLOW CONTROL
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*FlowControl" -RegistryValue 0  

# DISABLE INTERRUPT MODERATION
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*InterruptModeration" -RegistryValue 0  

# DISABLE ENERGY-EFFICIENT-ETHERNET
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*EEE" -RegistryValue 0  

# OPTIMIZE TCP CONGESTION CONTROL
netsh int tcp set supplemental template=Datacenter congestionprovider=DCTCP
netsh int tcp set supplemental template=Datacentercustom congestionprovider=DCTCP
netsh int tcp set global ECN=Enabled

# OPTIMIZE SEND- & RECEIVEBUFFERS
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*ReceiveBuffers" -RegistryValue 2048  
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*TransmitBuffers" -RegistryValue 2048  


# ENABLE DATACENTERCUSTOM TCP PROFILE
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -PropertyType Binary -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff)))  
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff)))  


# OPTIMIZE TCPACKFREQUENCY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Value '1' -PropertyType DWORD  
  }


# DISABLE TCPDELAY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1' -PropertyType DWORD  
  }

Bitte das Skript als Administrator ausführen, sonst funktioniert es nicht und bringt nur noch mehr Fehler.
Ja, auch als Administrator ausgeführt wird es immer noch Fehler ausspucken, aber diese sind vollkommen irrelevant und auch nicht schädlich. Ich habe bisher nur keine Zeit gehabt das Fehlerhandling zu verfeinern, daher auch V0.9.

!! Ferner, dieses Skript ist nur für die Optimierung von Windows 10 &11 gedacht, bitte nicht auf einem Serverbetriebssystem ausführen. !!

Nach dem Ausführen muss der Rechner noch neugestartet werden, damit auch alle Einstellungen sauber übernommen werden.

Und danach müsste ihr schon eine deutliche Performanceverbesserung insbesondere bei lokalen Anwendungen spüren, aber auch eine Performanceverbesserung beim Zugriff von Daten im Internet (z.B. schnelleres Surfen), ist wie gesagt alles andere als ausgeschlossen. 😉
Eine Verschlechterung hingegen, habe noch bei keinem einzigen Arbeitsplatz gesehen, den ich bisher entsprechend angepasst habe. 😁

Nun habe ich nur noch eine Bitte.
Hinterlasst hier bitte kräftig und möglichst genauen Feedback, inwieweit diese Änderungen bei euch etwas bewirkt haben, danke.

Damit kann ich zum einen MS effektiver in den Hintern treten und zum anderen hilft dieses bestimmt auch das Script noch weiter zu optimieren.

Beste Grüsse aus BaWü
Alex

Content-ID: 5529700198

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

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

DerWoWusste
DerWoWusste 21.01.2023 um 14:36:10 Uhr
Goto Top
Hallo!

Das klingt interessant. Deinem Wunsch nach genauem Feedback würde ich an deiner Stelle noch ein eigenes vorausschicken (Messungen.vorher/nachher, am besten von 2 leeren VMs, eine mit Skript, eine ohne) - fände ich besser als gespürte Unterschiede aufzuzählen.
MysticFoxDE
MysticFoxDE 21.01.2023 um 16:11:37 Uhr
Goto Top
Moin @DerWoWusste,

Das klingt interessant. Deinem Wunsch nach genauem Feedback würde ich an deiner Stelle noch ein eigenes vorausschicken (Messungen.vorher/nachher, am besten von 2 leeren VMs, eine mit Skript, eine ohne) - fände ich besser als gespürte Unterschiede aufzuzählen.

nein, ich möchte ausdrücklich ein "gesprrürtes" Feedback haben.
Laborfeedback's (Labormessungen) kann ich selbst genügend erzeugen, die ein mehr als positives Ergebnis beweisen.
Jedoch akzeptiert Microsoft genau diese Laborergebnisse nicht wirklich und begründet dies damit, dass die Messungen Labormessungen sind und mit dem "real Live" nichts zu tun haben.

Und genau deswegen kommt es mir hier primär nicht auf Laboerergebnisse an, sondern eher auf die bei der täglichen Arbeit spürbaren Dingen.

Beispiel.
Nachdem ich beim letzten User die oberen Einstellungen vorgenommen habe, startete das ERP-System auf dem entsprechenden Client schon mal deutlich schneller wie zuvor. Davor hat der infor:COM Client nur zum Starten > 20 Sekunden benötigt, nach der Optimierung waren es weniger als 10. Und auch das Surfen im Internet ging pauschal um einiges flotter, wie vorher.

Beste Grüsse aus BaWü
Alex
Cloudrakete
Cloudrakete 21.01.2023 um 16:27:48 Uhr
Goto Top
Servus,

vielen dank für die Mühe.
Ich verstehe ehrlich gesagt nicht, was du MS hier beweisen willst, dass du ein nicht existentes Problem gelöst hast?

Der verlinkte TechNet Artikel hat einen Kommentar und 3 Likes bei 19.000 Ansichten. Scheint jetzt irgendwie niemanden so wirklich zu betreffen.
Ich selbst war / bin auf Win10 / 11 unterwegs. In meinem Unternehmen sind auch alle mit Win10 unterwegs und dort sind mir solche (sorry) Spielerein nicht bekannt.

Deinen Artikel könnte man ggf. unter "Feintuning" verbuchen, ich denke aber, dass hier kein Administrator das Skript ab Montag auf seine Clients ausrollen wird. Dazu fehlt tatsächlich das reale Problem.
MysticFoxDE
MysticFoxDE 21.01.2023 um 16:31:05 Uhr
Goto Top
Moin @DerWoWusste,

am besten von 2 leeren VMs, eine mit Skript, eine ohne.

dieses Optimierungsskript ist eigentlich nur für normale Baremetale Clients gedacht und nicht für eine Hypervisorumgebung. Beim Tests mit VM's reicht es bei weitem nicht aus, die entsprechenden Features/Funktionen nur in der VM selbst zu optimieren/deaktivieren. Diese müssen auch auf dem Hypervisornode angepasst werden und auch das SDN muss entsprechend optimiert sein.

Sprich, ja, bei einer VM wirst du zwar auch eine Verbesserung spüren, aber ohne weitere, zum Teil noch komplexere Anpassungen, bei weitem keine so grosse, wie auf einem Baremetale System.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 21.01.2023 aktualisiert um 16:48:42 Uhr
Goto Top
Moin @Cloudrakete,

vielen dank für die Mühe.
Ich verstehe ehrlich gesagt nicht, was du MS hier beweisen willst, dass du ein nicht existentes Problem gelöst hast?

versuchs einfach mal aus und dann wirst du sehen, dass du mindestens ein Problem bisher wohl übersehen hast.

Der verlinkte TechNet Artikel hat einen Kommentar und 3 Likes bei 19.000 Ansichten. Scheint jetzt irgendwie niemanden so wirklich zu betreffen.
Ich selbst war / bin auf Win10 / 11 unterwegs. In meinem Unternehmen sind auch alle mit Win10 unterwegs und dort sind mir solche (sorry) Spielerein nicht bekannt.

Nur weil dir etwas nicht bekannt ist, heisst es noch lange nicht, dass es auch nicht existiert.

Deinen Artikel könnte man ggf. unter "Feintuning" verbuchen.

Mit Feintuning bezeichnet man Optimierungen, die eine Verbesserung im einstelligen Prozentbereich mit sich bringen. Ich spreche hier jedoch von Verbesserungen um Faktoren.

ich denke aber, dass hier kein Administrator das Skript ab Montag auf seine Clients ausrollen wird.

Und auch bei diesem Punkt täuscht du dich gewaltig, den genau das ist bereits schon geschehen.

Dazu fehlt tatsächlich das reale Problem.

Oder du möchtest mit Gewalt ein nun offensichtliches einfach nicht wahrhaben.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 21.01.2023 aktualisiert um 17:17:55 Uhr
Goto Top
Moin @Cloudrakete,

vielleicht bringt dich das folgende etwas zum Nachdenken.

Die meisten SSD's liefern mittlerweile einen 4K IO in < 0,1ms.
Wird es nun einen Unterschied machen, wenn die Quittierung der Übertragung (ACK) dieses IO's übers Netzwerk, nun entweder 40ms (Internet Profile) oder nur 10ms (Datacenter Profile) dauert? 🤨

Such mal gezielt bei Google nach "Delayed ACK Performance", dann siehst du sofort was ich meine. 😉

Ist so gesehen auch nicht nur ein reines Microsoft Problem.
https://kb.vmware.com/s/article/1002598

Ich klopfe jedoch lieber die Performance bei den Microsoftianer wieder raus weil ich auf deren Lösungen eher spezialisiert bin. Das Herausklopfen der Performance aus den Pinguinen, darf von mir aus gerne jemand anders übernehmen. 🤪

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 21.01.2023 aktualisiert um 17:41:34 Uhr
Goto Top
Moin Zusammen,

folgend noch ein paar interessante Informationen zu diesem Thema.

Delayed ACK’s und TCPDelay (Tinygram-Prävention/Nagle-Algorithmus) wurden beide in den frühen 1980 Jahren entwickelt, jedoch beide vollkommen unabhängig voneinander.

Irgendwann ist ein Neunmalkluger Kopf jedoch auf die Idee gekommen, diese beiden TCP-Features gleichzeitig zu Benutzen und hat so wie es aussieht noch nicht mal deren Entwickler gefragt, ob das wirklich eine gute Idee ist. 😔

Folgend könnt ihr nachlesen, was „John Nagle“ der Erfinder des TCPDelay’s von dieser Idee selbst hält.

https://news.ycombinator.com/item?id=10608356

EN:
„The combination of the two is awful.“

DE:
„Die Kombination aus beidem ist schrecklich.“

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 21.01.2023 aktualisiert um 20:27:47 Uhr
Goto Top
Moin Zusammen,

für die Zweifler vielleicht noch ein weiterer Punkt zum Nachdenken.
Laut dem Mooreschen Gesetz, steht uns alle ~2 Jahre die doppelte Rechenleistung zur Verfügung.
Demzufolge sollte die Rechenleistung der aktuellen Systeme, verglichen zu 2012 nun um ca. 1000% höher liegen.

Mal im Ernst, merkt das einer von euch auch tatsächlich auch bei der täglichen Anwendungsperformance?

Ich zumindest merkte davon in letzter Zeit nicht wirklich etwas und auch unsere Kunden merkten das ohne ähnliche Optimierungen wie oben angesprochen, auch nicht besonders und das zum Teil nach Wechsel auf neuere und laut den Herstellern, viel schnellerer Hardware. 😔

Den der Grossteil der zugekommenen Rechenleistung, wird schlichtweg durch neue und für die meisten Anwender absolut unnützen Features, schlichtweg verheizt. So dass am Ende des Tages, heute aus neuer Hardware oft weniger Endperformance rauskommt, wie noch aus der vor 10 Jahren, die jedoch weniger durch Murksfeatures verseucht war.

Das was mich jedoch am allermeisten an diesem Murks aufregt ist, dass sehr viele der heutigen (angeblichen) IT-Experten, das auch noch für vollkommen OK halten und diesen Murks, ohne die Materie dahinter auch nur annähernd zu verstehen, auch noch verteidigen.

Meiner Ansicht nach, hinterlassen wir aktuell durch unsere Nachlässigkeit und Gemütlichkeit, unseren Nachkommen nicht nur ein Umwelt.- sondern ebenfalls auch ein absolutes Digitalisierungschaos! 😔

Beste Grüsse aus BaWü
Alex
dertowa
dertowa 21.01.2023 um 23:52:49 Uhr
Goto Top
Da isses ja. :D
Na ich werde mir kommende Woche mal ein paar Systeme rauspicken die vorher ein Image bekommen und dann mal das "Feintuning" erhalten.

Schauen wir was sich ergibt.
Vielen Dank schon mal für die Mühen.

Grüße
ToWa
MysticFoxDE
MysticFoxDE 22.01.2023 aktualisiert um 10:12:23 Uhr
Goto Top
Moin @DerWoWusste,

Das klingt interessant. Deinem Wunsch nach genauem Feedback würde ich an deiner Stelle noch ein eigenes vorausschicken (Messungen.vorher/nachher, am besten von 2 leeren VMs, eine mit Skript, eine ohne) - fände ich besser als gespürte Unterschiede aufzuzählen.

folgend ein paar Labormessergebnisse.

Wie ich schon im folgenden Beitrag gepostet hatte ...

Remote Desktop Services unter 2022 - Erfahrungen?

war die Performance zwischen zwei bei mir momentan stehenden W11 Powerworkstations mit den Default-Einstellungen und einem bestimmten Workload folgend.

testresult-10g-default

Und nun, nachdem ich beide Workstation mit dem oberen Skript optimiert habe, sieht es folgend aus ...

testresult-optimizedv.09

Das sind alleine bei diesem Workload, schon 72% mehr Leistung wie per default. 😉
Schau dir auch die Maximallatenzen mal genauer an.

Und auch dieser Optimierungsstand ist nicht ganz optimal, den die meisten IO's gehen nun zwar mit ~0,107ms durch, ein paar schaffen es aber in 0,070ms.

Warum nur ein paar und nicht alle, was frisst nun die 0,040ms dazwischen? 🤔

Beste Grüsse aus BaWü
Alex
HeinzH
HeinzH 22.01.2023 aktualisiert um 12:26:16 Uhr
Goto Top
Hallo Alex,

habe es bei mir auf einem NUC WIN 10 (i7-1185G7, 16 GB RAM, 10 GB USB Ethernet Adapter) und einer Workstation (i9-13900, 64 GB RAM, WIN 11 (10GB auf Board) getestet. Auf den 1 Eindruck bringt es einen signifikanten Performance Gewinn bei Client Server Anwendungen. Getestet mit Lexware Professional Business und ecodms. Lexware startet ca. 2 Sekunden schneller. vorher 5-6 Sekunden nachher 3-4. Gleiches bei ecodms. Die MAsken öffnen sich gefühlt schneller.
Surfen scheint auch gefühlt flüssiger zu sein.
Habe hier ein 10GB Netzwerk intern von Clients zu Servern und eine symetrische 50Mbit Anbindung an M-Net.

Gruß
Heinz
Tobi-2001
Tobi-2001 22.01.2023 um 16:29:37 Uhr
Goto Top
bringt es auch bessere Latenzteit beim gaming?
HeinzH
HeinzH 22.01.2023 um 16:34:57 Uhr
Goto Top
Hallo Tobi-2001,
"Gamingtechnisch" mache ich nix, Sorry.
Gruß
Heinz
MysticFoxDE
MysticFoxDE 22.01.2023 um 16:59:25 Uhr
Goto Top
Moin Heinz,

habe es bei mir auf einem NUC WIN 10 (i7-1185G7, 16 GB RAM, 10 GB USB Ethernet Adapter) und einer Workstation (i9-13900, 64 GB RAM, WIN 11 (10GB auf Board) getestet. Auf den 1 Eindruck bringt es einen signifikanten Performance Gewinn bei Client Server Anwendungen. Getestet mit Lexware Professional Business und ecodms. Lexware startet ca. 2 Sekunden schneller. vorher 5-6 Sekunden nachher 3-4. Gleiches bei ecodms. Die MAsken öffnen sich gefühlt schneller.
Surfen scheint auch gefühlt flüssiger zu sein.
Habe hier ein 10GB Netzwerk intern von Clients zu Servern und eine symetrische 50Mbit Anbindung an M-Net.

das ist ein Tipp Top Feedback ... 👍👍👍
Sogar inclusive der Uplink-Geschwindigkeiten zum LAN und WAN, ich bin absolut begeistert, danke.

Und diese Verbesserung hast du jetzt erreicht, indem du NUR Clientseitig das TCP etwas zurückoptimiert hast.
Wenn du jetzt hergehst und noch dasselbe Serverseitig optimierts, was jedoch wie ich schon geschrieben habe, etwas aufwändiger ist und auch noch SMB Client- und Serverseitig optimierst, dann ist sogar noch um einiges mehr drin, vor allem was die Performance der lokalen Anwendungen angeht. 😉

Glaub mir, die aktuellen Windows Versionen tun durch ihre unnützen Features so viel Performance fressen, dass es einfach nur zum 😭 ist.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 22.01.2023 aktualisiert um 17:07:12 Uhr
Goto Top
Moin @Tobi-2001,

bringt es auch bessere Latenzteit beim gaming?

ich lehne mich mal etwas aus dem Fernster und behaupte mal, dass diese Optimierungen insbesondere für die Online-Gamer mit am wertvollsten sind. 😉
Denn ich kenne so gut wie keine anderen IT-Nutzer-Gruppe, die zickiger auf schlechte Netzwerklatenzen reagieren, als die Online-Gamer. 🤪

Ich kann das selbst jedoch nicht ausprobieren, da ich online nur auf der PS zocke.

Beste Grüsse aus BaWü

Alex
spec1re
spec1re 22.01.2023, aktualisiert am 14.02.2023 um 15:15:41 Uhr
Goto Top
Zitat von @Tobi-2001:

bringt es auch bessere Latenzzeit beim gaming?

Hab das Script gestern mal laufen lassen und ein bisschen Battlefield 2042 gespielt, konnte jetzt nicht wirklich einen Unterschied merken.

Gruß Spec.
transocean
transocean 22.01.2023 um 20:22:28 Uhr
Goto Top
Moin spec1re,

das erging mir nach einem Test auf einem Rechner, der mal zum Spielen und ansonsten nur zum Surfen verwendet wird, so wie Dir.

@alex: Bei mir produziert das Script bei der Ausführung jede Menge rote Zeilen in der Powershell.

Gruß

Uwe
MysticFoxDE
MysticFoxDE 22.01.2023 um 20:26:40 Uhr
Goto Top
Moin Spec,

Hab das Script gestern mal laufen lassen und ein bisschen Battlefield 2042 gespielt, konnte jetzt nicht wirklich einen Unterschied merken.

dein Kommentar hat mich nun doch veranlasst etwas auf mein Workstation zu zocken. 🤪
Ich habe jedoch zum "online" Zocken nur Star Trek Online installiert.
Nach ein paar Runden kann ich durchaus signifikante Verbesserungen feststellen.
Das Laden der einzelnen Onlineevents ist viel schneller und auch beim Zocken hatte ich keinen einzigen Ausreißer gesehen.
Ja, OK, meine W Taste hat einen Schuss, das hat mir das Zocken dann doch etwas vermiest, das ist jedoch ein anderes Problem.

Was mir aber aufgefallen ist, ist das seit dem immer wieder mal das Spiel für 5 - 6 Sekunden eingefroren und danach konnte man einfach normal weiterspielen.

🤔 ... interessant und ich kann mir auch gut vorstellen was daran das Problem sein könnte.
Durch das abschalten von RSS, wird sämtlicher Datenverkehr der NIC's über den ersten Kern der CPU abgewickelt und wenn dieser Kern durch andere Sachen ausgelastet ist, kann es durchaus zu dem von dir beschriebenen Phänomen kommen.

Das sollte man beobachten.
Wenn das Problem auch bei anderen vorkommt, dann kann ich das Skript gerne so umschreiben,
das RSS an bleibt und dennoch etwas effektiver läuft als per default. 😁

Also heute wieder per Image auf den Stand davor und das Problem war wieder weg.

Warum den das, sämtliche Einstellungen lassen sich sehr einfach wieder rückgängig machen.

Ja, OK, sobald ich etwas mehr Zeit habe, schreibe ich ein SUBUPTIMIZATION Skript, das die Einstellungen wieder auf default zurück bügelt.

Beste Grüsse aus BaWü

Alex
MysticFoxDE
MysticFoxDE 22.01.2023 um 20:33:53 Uhr
Goto Top
Moin Uwe,

das erging mir nach einem Test auf einem Rechner, der mal zum Spielen und ansonsten nur zum Surfen verwendet wird, so wie Dir.

🤔 ... interessant, danke für das Feedback.

Welcher Energiesparplan ist auf diesem Rechner den gewählt?

@alex: Bei mir produziert das Script bei der Ausführung jede Menge rote Zeilen in der Powershell.

Ja, ich weis. Nicht alle NIC's haben auch alle Features die durch das Skript deaktiviert werden und genau bei sowas meckert das Skript. Ist aber wie ich im Einleitungspost geschrieben habe, nicht wirklich schlimm, da in dem Fall eh nichts verändert wird.

Ich schau mal das ich das bis zu der V1.0 behoben bekomme, aber jetzt mache ich mal eine kleine Sonderversion, gegen das von dir und Spec angesprochenen Problem. 😉😁

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 22.01.2023 um 20:36:49 Uhr
Goto Top
Moin Spec,
Moin Uwe,

welche NIC's habt ihr den genau in den Rechnern verbaut?

Gruss Alex
transocean
transocean 22.01.2023 um 20:46:51 Uhr
Goto Top
Moin Alex,

siehe Bild.
screenshot 2023-01-22 204528
MysticFoxDE
MysticFoxDE 22.01.2023 um 21:06:00 Uhr
Goto Top
Moin Uwe,

OK, ne Realtek, mit diesen kennen ich mich nicht wirklich super aus, ist aber nicht schlimm.

Ich habe für euch beide gerade eine V.0.9.1 geschrieben, die RSS nicht deaktiviert aber dafür etwas optimiert. 😉

WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION V0.9.1 (RSS-ON) SKRIPT
#Get-NetTCPSetting
#Get-NetTCPConnection
#netsh int tcp show global

# ENABLE RSS AND OPTIMIZATION
#Get-NetAdapterRss
netsh int tcp set global RSS=Enabled
Set-NetOffloadGlobalSetting -ReceiveSideScaling Enabled
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RSS" -RegistryValue 1  
Get-Netadapter -Physical | Enable-NetAdapterRss
Get-Netadapter -Physical | Set-NetAdapterRss -NumberOfReceiveQueues 2 -MaxProcessors 2 -Profile Closest


# DISABLE RSC 
netsh int tcp set global RSC=Disabled
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RscIPv4" -RegistryValue 0  
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RscIPv6" -RegistryValue 0  
Get-Netadapter -Physical | Disable-NetAdapterRsc -IPv4 -IPv6

# ENABLE PACKET COALESCING (DEFAULT)
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Enabled
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*PacketCoalescing" -RegistryValue 1  

# DISABLE FLOW CONTROL
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*FlowControl" -RegistryValue 0  

# DISABLE INTERRUPT MODERATION
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*InterruptModeration" -RegistryValue 0  

# DISABLE ENERGY-EFFICIENT-ETHERNET
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*EEE" -RegistryValue 0  

# OPTIMIZE TCP CONGESTION CONTROL
netsh int tcp set supplemental template=Datacenter congestionprovider=DCTCP
netsh int tcp set supplemental template=Datacentercustom congestionprovider=DCTCP
netsh int tcp set global ECN=Enabled

# OPTIMIZE SEND- & RECEIVEBUFFERS
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*ReceiveBuffers" -RegistryValue 2048  
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*TransmitBuffers" -RegistryValue 2048  


# ENABLE DATACENTERCUSTOM TCP PROFILE
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -PropertyType Binary -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff)))  
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff)))  


# OPTIMIZE TCPACKFREQUENCY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Value '1' -PropertyType DWORD  
  }


# DISABLE TCPDELAY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1' -PropertyType DWORD  
  }

was spuckt danach bei dir ...
Get-NetAdapterRss
aus?

Gruss Alex
transocean
transocean 22.01.2023 um 21:38:48 Uhr
Goto Top
Das hier:
screenshot 2023-01-22 213756
MysticFoxDE
MysticFoxDE 22.01.2023 aktualisiert um 22:23:56 Uhr
Goto Top
Moin Uwe,

Das hier:

ja, deine Realtek kann noch RSS ... interessant. 🤔
Intel hat z.B. RSS bei so gut wie allen seinen < 10G Consumer-NIC's, nachträglich wieder herausgeschmissen.

Nur der Neugierde halber.
Hast du bei dir eigentlich mit Absicht Hyperthreading deaktiviert oder kann deine CPU das nicht?

Gruss Alex
transocean
transocean 22.01.2023 um 21:56:25 Uhr
Goto Top
Die Energieeinstellungen stehen übrigens auf Höchstleistung. Warum Hyperthreading auf der Kiste inaktiv ist, vermag ich im Moment nicht zu sagen. Schau ich morgen mal nach. Angenehme Nachtruhe aus HE nach BaWü.

Gruß

Uwe
MysticFoxDE
MysticFoxDE 22.01.2023 um 21:58:18 Uhr
Goto Top
Moin Zusammen,

der Vollständigkeit halber.
Das folgende "WINDOWS10AND11-NETWORK-BACKSUBOPTIMIZATION" Skript, setzt alle vom oberen Skript angefassten Einstellungen, wieder auf die Betriebssystem-Standardwerte zurück.

#Get-NetTCPSetting
#Get-NetTCPConnection
#netsh int tcp show global

#SET ALL NIC ADVANCED SETTINGS TO DEFAULT
Get-Netadapter -Physical | Reset-NetAdapterAdvancedProperty -DisplayName "*"  

# SET RSS TO DEFAULT
netsh int tcp set global RSS=Enabled
Set-NetOffloadGlobalSetting -ReceiveSideScaling Enabled

# SET RSC TO DEFAULT
netsh int tcp set global RSC=Enabled
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Enabled

# SET PACKET COALESCING TO DEFAULT
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Enabled

# SET TCP CONGESTION CONTROL TO DEFAULT
netsh int tcp set supplemental template=Datacenter congestionprovider=CUBIC
netsh int tcp set supplemental template=Datacentercustom congestionprovider=CUBIC
netsh int tcp set global ECN=Disabled

# SET TCP PROFILE TO DEFAULT (Internet)
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -PropertyType Binary -Value (([byte[]](0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff)))  
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -Value (([byte[]](0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff)))  


# SET TCPACKFREQUENCY TO DEFAULT
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream  
    Remove-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency'  
  }


# SET TCPDELAY TO DEFAULT
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream  
        Remove-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay'  
  }
spec1re
spec1re 23.01.2023 aktualisiert um 05:40:33 Uhr
Goto Top
Moin Alex,
Intel(R) Ethernet Controller I225-V
Gruß
MysticFoxDE
MysticFoxDE 23.01.2023 um 07:35:20 Uhr
Goto Top
Moin Spec,

Intel(R) Ethernet Controller I225-V

bei dieser NIC sollte RSS eigentlich nicht mehr verfügbar sein.

Was spuckt bei dir ...
(Bitte zum Ausführen Power-Shell/ISE als Administrator starten)
Get-NetAdapterRss
aus?

Gruss Alex
spec1re
spec1re 23.01.2023 um 08:11:13 Uhr
Goto Top
Zitat von @MysticFoxDE:
bei dieser NIC sollte RSS eigentlich nicht mehr verfügbar sein.

Was spuckt bei dir ...
Get-NetAdapterRss
aus?

Genau, nix.
MysticFoxDE
MysticFoxDE 23.01.2023 aktualisiert um 08:41:34 Uhr
Goto Top
Moin Spec,

Genau, nix.

schlecht, da solltest du eigentlich das folgende sehen.
get-netadapterrss-i219v


bitte Power-Shell oder ISE als Administrator starten (mit der rechten Maustaste auf das entsprechende Icon klicken und dann "Als Administrator ausführen" wählen), dann solltest du auch eine Ausgabe sehen. 😉

Genau so sollte übrigens auch mein Skript ausgeführt werden, sonst bewirkt es nicht wirklich etwas.

Beste Grüsse aus BaWü
Alex

P.S. Ist aber nicht ganz so wild. Wenn dein Adapter mit dem Befehl nicht aufgelistet wird, wenn Power-Shell oder ISE nicht als Administrator gestartet sind, dann bedeutet das schlichtweg, dass diese NIC überhaupt nicht RSS fähig ist.

Wie ich schon erwähnt habe, hat Intel bei allen Consumer NIC's <10G, RSS vor längeren nachträglich herausgeschmissen.

Daher hätte die RSS Deaktivierung, bei dir auch nichts verschlechtern aber auch nichts verbessern können.

Hast du das Optimierungsskript vorher ganz sicher als Administrator ausgeführt?
spec1re
spec1re 23.01.2023 aktualisiert um 08:47:15 Uhr
Goto Top
screenshot 2023-01-23 084221

Nix.

PS C:\> netsh int tcp show global
Der aktive Status wird abgefragt...

Globale TCP-Parameter
----------------------------------------------
Zustand der empfangsseitigen Skalierung          : enabled
Autom. Abstimmungsgrad Empfangsfenster    : normal
Add-On "Überlastungssteuerungsanbieter"  : default  
ECN-Funktion                      : disabled
RFC 1323-Zeitstempel                 : allowed
RTO (anfänglich)                         : 1000
Zustand der Empfangssegmentzusammenfügung    : enabled
Nicht-SACK-RTT-Widerstandsfähigkeit             : disabled
Maximale SYN-Neuübertragungen             : 4
Fast Open                           : enabled
Fast Open-Fallback                  : enabled
HyStart                             : enabled
Proportionale Ratenreduzierung         : enabled
Schrittsteuerungsprofil                      : off

PS C:\> Get-NetTCPSetting


SettingName                     : Automatic
MinRto(ms)                      :
InitialCongestionWindow(MSS)    :
CongestionProvider              :
CwndRestart                     :
DelayedAckTimeout(ms)           :
DelayedAckFrequency             :
MemoryPressureProtection        :
AutoTuningLevelLocal            :
AutoTuningLevelGroupPolicy      :
AutoTuningLevelEffective        :
EcnCapability                   :
Timestamps                      :
InitialRto(ms)                  :
ScalingHeuristics               :
DynamicPortRangeStartPort       :
DynamicPortRangeNumberOfPorts   :
AutomaticUseCustom              :
NonSackRttResiliency            :
ForceWS                         :
MaxSynRetransmissions           :
AutoReusePortRangeStartPort     :
AutoReusePortRangeNumberOfPorts :

SettingName                     : InternetCustom
MinRto(ms)                      : 300
InitialCongestionWindow(MSS)    : 10
CongestionProvider              : CUBIC
CwndRestart                     : False
DelayedAckTimeout(ms)           : 40
DelayedAckFrequency             : 2
MemoryPressureProtection        : Enabled
AutoTuningLevelLocal            : Normal
AutoTuningLevelGroupPolicy      : NotConfigured
AutoTuningLevelEffective        : Local
EcnCapability                   : Disabled
Timestamps                      : Allowed
InitialRto(ms)                  : 1000
ScalingHeuristics               : Disabled
DynamicPortRangeStartPort       : 49152
DynamicPortRangeNumberOfPorts   : 16384
AutomaticUseCustom              : Disabled
NonSackRttResiliency            : Disabled
ForceWS                         : Enabled
MaxSynRetransmissions           : 4
AutoReusePortRangeStartPort     : 0
AutoReusePortRangeNumberOfPorts : 0

SettingName                     : DatacenterCustom
MinRto(ms)                      : 60
InitialCongestionWindow(MSS)    : 10
CongestionProvider              : CUBIC
CwndRestart                     : False
DelayedAckTimeout(ms)           : 10
DelayedAckFrequency             : 2
MemoryPressureProtection        : Enabled
AutoTuningLevelLocal            : Normal
AutoTuningLevelGroupPolicy      : NotConfigured
AutoTuningLevelEffective        : Local
EcnCapability                   : Disabled
Timestamps                      : Allowed
InitialRto(ms)                  : 1000
ScalingHeuristics               : Disabled
DynamicPortRangeStartPort       : 49152
DynamicPortRangeNumberOfPorts   : 16384
AutomaticUseCustom              : Disabled
NonSackRttResiliency            : Disabled
ForceWS                         : Enabled
MaxSynRetransmissions           : 4
AutoReusePortRangeStartPort     : 0
AutoReusePortRangeNumberOfPorts : 0

SettingName                     : Compat
MinRto(ms)                      : 300
InitialCongestionWindow(MSS)    : 4
CongestionProvider              : NewReno
CwndRestart                     : False
DelayedAckTimeout(ms)           : 200
DelayedAckFrequency             : 2
MemoryPressureProtection        : Enabled
AutoTuningLevelLocal            : Normal
AutoTuningLevelGroupPolicy      : NotConfigured
AutoTuningLevelEffective        : Local
EcnCapability                   : Disabled
Timestamps                      : Allowed
InitialRto(ms)                  : 1000
ScalingHeuristics               : Disabled
DynamicPortRangeStartPort       : 49152
DynamicPortRangeNumberOfPorts   : 16384
AutomaticUseCustom              : Disabled
NonSackRttResiliency            : Disabled
ForceWS                         : Enabled
MaxSynRetransmissions           : 4
AutoReusePortRangeStartPort     : 0
AutoReusePortRangeNumberOfPorts : 0

SettingName                     : Datacenter
MinRto(ms)                      : 60
InitialCongestionWindow(MSS)    : 10
CongestionProvider              : CUBIC
CwndRestart                     : False
DelayedAckTimeout(ms)           : 10
DelayedAckFrequency             : 2
MemoryPressureProtection        : Enabled
AutoTuningLevelLocal            : Normal
AutoTuningLevelGroupPolicy      : NotConfigured
AutoTuningLevelEffective        : Local
EcnCapability                   : Disabled
Timestamps                      : Allowed
InitialRto(ms)                  : 1000
ScalingHeuristics               : Disabled
DynamicPortRangeStartPort       : 49152
DynamicPortRangeNumberOfPorts   : 16384
AutomaticUseCustom              : Disabled
NonSackRttResiliency            : Disabled
ForceWS                         : Enabled
MaxSynRetransmissions           : 4
AutoReusePortRangeStartPort     : 0
AutoReusePortRangeNumberOfPorts : 0

SettingName                     : Internet
MinRto(ms)                      : 300
InitialCongestionWindow(MSS)    : 10
CongestionProvider              : CUBIC
CwndRestart                     : False
DelayedAckTimeout(ms)           : 40
DelayedAckFrequency             : 2
MemoryPressureProtection        : Enabled
AutoTuningLevelLocal            : Normal
AutoTuningLevelGroupPolicy      : NotConfigured
AutoTuningLevelEffective        : Local
EcnCapability                   : Disabled
Timestamps                      : Allowed
InitialRto(ms)                  : 1000
ScalingHeuristics               : Disabled
DynamicPortRangeStartPort       : 49152
DynamicPortRangeNumberOfPorts   : 16384
AutomaticUseCustom              : Disabled
NonSackRttResiliency            : Disabled
ForceWS                         : Enabled
MaxSynRetransmissions           : 4
AutoReusePortRangeStartPort     : 0
AutoReusePortRangeNumberOfPorts : 0

PS C:\> 
MysticFoxDE
MysticFoxDE 23.01.2023 aktualisiert um 08:54:41 Uhr
Goto Top
Moin Spec,

screenshot 2023-01-23 084221
Nix.

😮 ... 😖 ... 😵‍💫

So sieht das bei mir aus.
get-netadapterrss-i219v

Sieht für mich so aus, als ob dein Windows an dieser Stelle wohl einen ordentlichen Knacks abbekommen hat. 😬

OK ... das habe ich so auch noch nicht gesehen, das ist echt gruselig.
Welche Windows Version hast du den genau?

Gruss Alex
Cleanairs
Cleanairs 23.01.2023 um 08:59:23 Uhr
Goto Top
Hi.
Stell das aktuelle Skript doch bei Github rein.
Den Link dorthin einfach ganz oben in den Thread packen. Sonst wirds hier bald recht unübersichtlich.
LG
John
spec1re
spec1re 23.01.2023 um 09:00:47 Uhr
Goto Top
screenshot 2023-01-23 090010
MysticFoxDE
MysticFoxDE 23.01.2023 um 09:13:30 Uhr
Goto Top
Moin John,

Stell das aktuelle Skript doch bei Github rein.
Den Link dorthin einfach ganz oben in den Thread packen. Sonst wirds hier bald recht unübersichtlich.

das habe ich mir auch schon überlegt.
Damit möchte ich aber noch bis V1.0 (incl. Fehlerhandling) warten, sonst bekomme ich bei Github nur noch mehr Haue. 🤪

Gruss Alex
MysticFoxDE
MysticFoxDE 23.01.2023 um 09:14:56 Uhr
Goto Top
Moin Spec,

screenshot 2023-01-23 090010

OK, Windows 11 PRO 22H2, damit sollte es auf jeden Fall funktionieren.
Komisch, sehr komisch.

Hat sonst noch jemand dieses Phänomen?

Gruss Alex
dertowa
dertowa 23.01.2023 um 09:26:19 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin Spec,

screenshot 2023-01-23 084221
Nix.
So sieht das bei mir aus.
get-netadapterrss-i219v

Salut ihr zwei,
Spec versucht das mit dem Terminal, nicht mit der Powershell, nur um die Abweichung in euren Bildern nachzuvollziehen.
Ggf. ist das Terminal nicht aktuell?
Denn grundlegend funktionieren die Powershell Befehle im Terminal, siehe meine Ausgabe:

term

Grüße
ToWa
MysticFoxDE
MysticFoxDE 23.01.2023 aktualisiert um 10:06:49 Uhr
Goto Top
Moin ToWa,

So sieht das bei mir aus.
get-netadapterrss-i219v

deine Killer scheint aber auch kein RSS zu machen, obwohl es bei dieser aktiviert ist. 🤔
Oder ist auf dieser kein Link drauf?

Und die ASUS ist RSS technisch absolut suboptimal konfiguriert, default eben. 🤮
Bei der ASUS würde ich auf jeden Fall mal das testweise das folgende Empfehlen. 😉

 Set-NetAdapterRss -Name "NICNAME" -NumberOfReceiveQueues 1 -MaxProcessors 1 -Profile Conservative  
(Bitte NIC-Name entsprechend anpassen.)

Wenn die IndirrectionTable danach leer bleibt, was bedeutet das RSS nicht funktionsfähig ist, dann versuchs mal damit.
Set-NetAdapterRss -Name "NICNAME" -NumberOfReceiveQueues 2 -MaxProcessors 2 -Profile Conservative
</code

Manche NIC's können mit nur einem RSS-Prozessor und einer RSS-Queue, warum auch immer nicht umgehen.

Spec versucht das mit dem Terminal, nicht mit der Powershell, nur um die Abweichung in euren Bildern nachzuvollziehen.

👍, danke, guter Hinweis.

Gruss Alex
spec1re
spec1re 23.01.2023 aktualisiert um 11:21:35 Uhr
Goto Top
Alte PowerShell = Neue PowerShell

screenshot 2023-01-23 101112

Macht aber keinen Unterschied.

10631551a6a88b9495b4deb0ead7c0b0

rss gibt es hier irgendwie nicht!?
MysticFoxDE
MysticFoxDE 23.01.2023 um 10:41:31 Uhr
Goto Top
Moin Spec,

rss gibt es hier irgendwie nicht!?

RSS gibt's nur auf LAN/WLAN NIC's und bei den beiden die du von Intel verbaut hast,
hat Intel RSS vor einer Weile schon per Treiber deaktiviert, da es bei diesen Geschwindigkeitsklassen schlichtweg keinen Sinn macht, respektive sogar mehr Unsinn mit sich bringt.

Daher kannst du es auch getrost im TCP-Stack von Windows deaktivieren, da es in deinem Fall eh nicht verwendet wird. 😉

Die von dir beschrieben Aussetzer müssten somit eigentlich eine andere Ursache haben. 🤔

Gruss Alex
dertowa
dertowa 23.01.2023 um 16:16:50 Uhr
Goto Top
Zitat von @MysticFoxDE:
deine Killer scheint aber auch kein RSS zu machen, obwohl es bei dieser aktiviert ist. 🤔
Oder ist auf dieser kein Link drauf?
Korrekt, kein Link drauf. face-smile

Und die ASUS ist RSS technisch absolut suboptimal konfiguriert, default eben. 🤮
Naja nicht ganz, die läuft auf Default wie ein Sack Nüsse.
Aber so wie sie aktuell steht ist es OK, kein Grund zu Klagen (natürlich Raum für Optimierung ist immer). face-smile

Grüße
support-m
support-m 23.01.2023 um 16:47:38 Uhr
Goto Top
Hallo MystixFox,
vielen Dank für deinen Beitrag. Ich habe das Script auf meinem Windows 10 22H2 installiert, habe eben meinen Rechner neugestartet und ich muss sagen, es fühlt sich deutlich schneller an; das Outlook ist schneller gestartet (lokaler Exchange, ging vorher etwa 4-5s, nun 2-3s), mein Broweser ging schneller auf und auch unsere 3CX-App war schneller geladen (statt 1,5s etwa 0,5s). Top!

Ich habe das Script nun auf dem PC einer Mitarbeiterin aus der Buchhaltung installiert, (die ist es morgen wieder da, wird dann diverse Buchhaltungssoftware testen können), sie weiß noch nichts von ihrem möglichen Glück :D

Ich gebe dann morgen Rückmeldung, vielen Dank!

MfG
MysticFoxDE
MysticFoxDE 23.01.2023, aktualisiert am 24.01.2023 um 12:54:58 Uhr
Goto Top
Moin Zusammen,

anbei die V1.0 des Optimierungsskripts mit verbessertem Fehlerhandling. 😁

<# 
.SYNOPSIS
    This Script desuboptimize a lot W10 & W11 TCP Settings.   
 
 .NOTES 
    Version:        1.0
    Author:         MysticFoxDE (Alexander Fuchs)
    Creation Date:  23.01.2023

.LINK 
    [content:5529700198#5584260697]
    https://community.spiceworks.com/topic/post/10299845
#>

#Get-NetTCPSetting
#Get-NetTCPConnection
#netsh int tcp show global
#Get-NetConnectionProfile
#Get-NetTransportFilter

# DISABLE RSS
#Get-NetAdapterRss
Set-NetOffloadGlobalSetting -ReceiveSideScaling Disabled
$NICs = Get-NetAdapter -Physical | Select-Object Name
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    $NICRSSSTATUS = Get-NetAdapterRss -Name "$NICNAME" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select-Object Enabled | Select Enabled -ExpandProperty Enabled | Out-String -Stream   
    if ($NICRSSSTATUS -eq "True")  
      {Disable-NetAdapterRss -Name "$NICNAME"}  
  }

# DISABLE RSC
#Get-NetAdapterRsc
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled
$NICs = Get-NetAdapter -Physical | Select-Object Name
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    $NICRSCIPV4STATUS = Get-NetAdapterRsc -Name "$NICNAME" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select-Object IPv4Enabled | Select IPv4Enabled -ExpandProperty IPv4Enabled | Out-String -Stream  
    $NICRSCIPV6STATUS = Get-NetAdapterRsc -Name "$NICNAME" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select-Object IPv6Enabled | Select IPv6Enabled -ExpandProperty IPv6Enabled | Out-String -Stream   
    if ($NICRSCIPV4STATUS -eq "True")  
      {Disable-NetAdapterRsc -Name "$NICNAME" -IPv4}  
    if ($NICRSCIPV6STATUS -eq "True")  
      {Disable-NetAdapterRsc -Name "$NICNAME" -IPv6}  
  }

# DISABLE PACKET COALESCING
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Disabled

# DISABLE FLOW CONTROL
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*FlowControl"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*FlowControl"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*FlowControl" -RegistryValue 0  
  }

# DISABLE INTERRUPT MODERATION
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*InterruptModeration"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*InterruptModeration"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*InterruptModeration" -RegistryValue 0  
  }

# DISABLE ENERGY-EFFICIENT-ETHERNET
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*EEE"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*EEE"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*EEE" -RegistryValue 0  
  }

# OPTIMIZE TCP CONGESTION CONTROL
netsh int tcp set supplemental template=Datacenter congestionprovider=DCTCP
netsh int tcp set supplemental template=Datacentercustom congestionprovider=DCTCP
netsh int tcp set global ECN=Enabled

# OPTIMIZE SEND- & RECEIVEBUFFERS
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*ReceiveBuffers"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*ReceiveBuffers"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*ReceiveBuffers" -RegistryValue 2048  
  }

# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*TransmitBuffers"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*TransmitBuffers"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*TransmitBuffers" -RegistryValue 2048  
  }

# ENABLE DATACENTERCUSTOM TCP PROFILE
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -PropertyType Binary -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff))) -ErrorAction SilentlyContinue -WarningAction SilentlyContinue  
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff))) -ErrorAction SilentlyContinue -WarningAction SilentlyContinue  

# OPTIMIZE TCPACKFREQUENCY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Value '1' -PropertyType DWORD  
  }

# DISABLE TCPDELAY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1' -PropertyType DWORD  
  }

Ich schau mal das ich es diese Woche bei Github unterbringe.

Beste Grüsse aus BaWü

Alex
spec1re
spec1re 23.01.2023 um 18:44:18 Uhr
Goto Top
Muss man jetzt zuerst "WINDOWS10AND11-NETWORK-BACKSUBOPTIMIZATION" laufen lassen oder kann man direkt mit V1.0 weitermachen?

Gruß Spec
MysticFoxDE
MysticFoxDE 23.01.2023 um 18:52:36 Uhr
Goto Top
Moin Spec,

Muss man jetzt zuerst "WINDOWS10AND11-NETWORK-BACKSUBOPTIMIZATION" laufen lassen oder kann man direkt mit V1.0 weitermachen?

die V1.0 mach genau dasselbe wie V0.9, nur hoffentlich ohne die ganzen Fehlermeldungen. 😁

Gruss Alex
spec1re
spec1re 23.01.2023 um 19:02:48 Uhr
Goto Top
Zitat von @MysticFoxDE:
die V1.0 mach genau dasselbe wie V0.9, nur hoffentlich ohne die ganzen Fehlermeldungen. 😁

Das kann ich hier bestätigen. 👍

Danke.
support-m
support-m 23.01.2023 aktualisiert um 22:54:21 Uhr
Goto Top
Moin,
ich habe mal eine Frage. Ich habe mir jetzt "in Ruhe" das Script angeschaut und eine Frage, vor allem in Hinblick auf die RSC-Thematik, die in letzter Zeit hier immer wieder zu sehen war.

Wie lässt sich das erklären?

rss

Ich habe bei einem Server 2016 (virtualisiert auf Proxmox) in den Adaptereinstellungen das RSC für IPv4+6 deaktiviert, der Befehl Get-NetOffloadGlobalSetting aus deinem Script sagt aber, RSC wäre noch aktiv? Wie unterscheiden sich die Einstellungen bzgl. Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled? Und ist RSC jetzt deaktiviert oder aktiviert?
Die RSC Eisntellungen habe im Adapter gesetzt und den Server neugestartet, dann den Befhel ausgeführt.

Danke!
MysticFoxDE
MysticFoxDE 24.01.2023 aktualisiert um 07:53:25 Uhr
Goto Top
Moin @support-m.

Moin,
ich habe mal eine Frage. Ich habe mir jetzt "in Ruhe" das Script angeschaut und eine Frage, vor allem in Hinblick auf die RSC-Thematik, die in letzter Zeit hier immer wieder zu sehen war.

Wie lässt sich das erklären?

🤔 ... bin gerade aufgestanden, lass mich für diese Erklärung erstmal etwas fitter werden.
Sonst schreibe ich jetzt wieder einen Roman, den am Ende keiner so richtig versteht. 🤪

rss

Ich habe bei einem Server 2016 (virtualisiert auf Proxmox) in den Adaptereinstellungen das RSC für IPv4+6 deaktiviert, der Befehl Get-NetOffloadGlobalSetting aus deinem Script sagt aber, RSC wäre noch aktiv? Wie unterscheiden sich die Einstellungen bzgl. Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled? Und ist RSC jetzt deaktiviert oder aktiviert?

Die meisten der hier angesprochenen Features müssen sowohl Hardwareseitig als auch Softwareseitig implementiert sein und lassen sich dementsprechend, auch meistens von beiden Seiten aktivieren/konfigurieren.

Sprich, die folgenden Befehle, die im übrigen dasselbe machen ...

netsh int tcp set global RSC=Disabled
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled


deativieren RSC softwareseitig im Netzwerkstack vom Windows selbst.

und diese Befehle ...

Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RscIPv4" -RegistryValue 0  
Get-Netadapter -Physical | Set-NetAdapterAdvancedProperty -RegistryKeyword "*RscIPv6" -RegistryValue 0  
Get-Netadapter -Physical | Disable-NetAdapterRsc -IPv4 -IPv6

deaktivieren RSC Hardwareseitig. Die untere Zeile macht hier übrigens dasselbe wie die beiden darüber,
was du übrigens auch über die GUI konfigurieren kannst, so wie in deinem letzten Screenshot abgebildet.

Damit RSC funktioniert, muss es quasi auf beiden Seiten (Software/Hardware) korrekt aktiviert sein.
Damit RSC aus ist, reicht es normalerweise dieses entweder Hardwareseitig oder Softwareseitig zu deaktivieren.
Und ich deaktiviere eben gerne immer sauber beidseitig. 😁

Die RSC Eisntellungen habe im Adapter gesetzt und den Server neugestartet, dann den Befhel ausgeführt.

Ähm, ich hatte doch ausdrücklich geschrieben, dass dieses Skript nicht auf auf einem Server ausgeführt werden sollte!

Der Hintergrund ist, dass das Hauptproblem welches ich hier im Hauptbeitrag anspreche, nämlich das pauschale taggen des Datenverkehrs als Internetdatenverkehr, nur auf den Clientbetriebssystemen der Fall ist. Die Server hingegen können per Autoermittlung selbst das korrekte Profil wählen.

Ja, das meiste aus dem Skript funktioniert auch auf einem Server, aber eben nicht alles.
Gedulde dich noch ein wenig, auf den Gegenpart im Server werde ich mit einem eigenständigen Beitrag, demnächst auch noch eingehen. 😉

Auch beim Server muss einiges optimiert werden, ist aber vor allem wenn Virtualisierung dazwischen kommt, um einiges komplexer und damit auch aufwändiger, als auf dem Client. 😔

So jetzt noch ne Runde Morgensport ...
https://media.tenor.com/BLZI1MKmuocAAAAC/play-fox.gif

Und dann kann es mit dem nächsten IT-Wahnsinn-Tag, auch schon wieder richtig losgehen. 🤪

Beste Grüsse aus BaWü
Alex

P.S. Ob RSC betriebsbereit ist, bekommst du mit dem folgenden Befehl heraus ...

Get-NetadapterRSC

und wenn in der Ausgabe in den Spalten "IPv4Operational State" & "IPv6Operational State" True steht, dann ist RSC vollständig betriebsbereit, wenn nicht dann eben nicht.
Centlucky
Centlucky 24.01.2023 um 08:20:46 Uhr
Goto Top
Yes. GreatJob
SQL Client-Server CRM/ERP Lösung läuft gefühlt doppelt so schnell
Der SQL-Server ist eine VM auf einem HV 2022.
Stellt sich die Frage was man noch Serverseitig optimieren kann.
Du bist mein Held der Woche, nee Quatsch Held des Jahres
TomTomBon
TomTomBon 24.01.2023 um 08:34:24 Uhr
Goto Top
Moin Moin,

großartiges Skript face-smile

Ich habe es getestet auf meiner Testkiste.
Älteres System mit
i5-7400, 16GB RAM
Win 11 Pro 22H1 22000.1516

Kleine Vorbemerkungen:
Ich füge imme einen kleinen Header bei mir hinzu mit Titel und öffnen des Links wo Ich es gefunden habe face-wink
Damit geht das Skript 1.0 erst mit Zeile 6 los.

Ich habe die Version 0.9 vorher schon laufen gelassen. Deswegen denke Ich das die Rückmeldung interessant sind:

Set-NetAdapterAdvancedProperty : Value must be within the range 1 - 512
At line:89 char:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...D0DA955BE}:...):ROOT/StandardCi...ertySettingData) [Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
 
Set-NetAdapterAdvancedProperty : Value must be within the range 1 - 128
At line:97 char:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...D0DA955BE}:...):ROOT/StandardCi...ertySettingData) [Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
 
New-ItemProperty : The property already exists.
At line:113 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Val ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand
 
New-ItemProperty : The property already exists.
At line:123 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1 ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand

Auf dem System läuft HyperV.
Zudem habe Ich einen Realtek PCIe GbE Family Controller
PCI\VEN_10EC&DEV_8168&SUBSYS_310217AA&REV_0C

Vielleicht hilft es ja zum Abfangen der Meldung.
MysticFoxDE
MysticFoxDE 24.01.2023 um 08:48:55 Uhr
Goto Top
Moin @Centlucky,

Yes. GreatJob
SQL Client-Server CRM/ERP Lösung läuft gefühlt doppelt so schnell

danke für dein Feedback.
Hast du das Skript etwa auch auf dem Server schon ausgeführt?

Der SQL-Server ist eine VM auf einem HV 2022.
Stellt sich die Frage was man noch Serverseitig optimieren kann.

Na ja, sehe die Optimierungen am Client als eine sehr kleine Aufwärmrunde für den Server an. 😔
Sprich, ja, beim Server , vor allem noch mit einem Hyper-Visor dazwischen, wird di Sache zum Teil richtig kompliziert,
da die Anpassungen zum Teil gemäss der verbauten Hardware vorgenommen werden müssen. 😭

Du bist mein Held der Woche, nee Quatsch Held des Jahres

Danke, ich fürchte jedoch, das ich dadurch mittlerweile in Redmond auf dem schwarzen Brett der Microsoftianer, auf den ersten zehn Plätzen gelistet bin. 😬
Ist mir aber sowas von egal, denn ich habe euch Microsoftianer trotzdem noch lieb, aber eben nicht immer, vor allem dann nicht wenn ihr solchen Murks baut. 🤪

Beste Grüsse aus BaWü
Alex
Centlucky
Centlucky 24.01.2023 um 08:59:50 Uhr
Goto Top
Nee, das Skript habe ich nicht auf dem Server ausgeführt.
Ich hatte aber schon mal das "THE HOLLY WINDOWS 10 NO CUBIC SCRIPT"
angewendet
support-m
support-m 24.01.2023 aktualisiert um 09:33:37 Uhr
Goto Top
Zitat von @MysticFoxDE:

Ähm, ich hatte doch ausdrücklich geschrieben, dass dieses Skript nicht auf auf einem Server ausgeführt werden sollte!

Der Hintergrund ist, dass das Hauptproblem welches ich hier im Hauptbeitrag anspreche, nämlich das pauschale taggen des Datenverkehrs als Internetdatenverkehr, nur auf den Clientbetriebssystemen der Fall ist. Die Server hingegen können per Autoermittlung selbst das korrekte Profil wählen.

Ja, das meiste aus dem Skript funktioniert auch auf einem Server, aber eben nicht alles.
Gedulde dich noch ein wenig, auf den Gegenpart im Server werde ich mit einem eigenständigen Beitrag, demnächst auch noch eingehen. 😉

Auch beim Server muss einiges optimiert werden, ist aber vor allem wenn Virtualisierung dazwischen kommt, um einiges komplexer und damit auch aufwändiger, als auf dem Client. 😔

Danke für die Erklärung,
ich habe das Script nicht auf einem Server ausgeführt, sondern lediglich dem allgemeinen Tipp "RSC deaktivieren". Und dann habe ich eben dein Script genauer gelesen und nachverfolgt, was es tut und den Befehl in deinem Script gesehen und festgestellt, dass der Befehl sagt, RSC wäre noch aktiv.

Gehen wir mal davon aus, dass der Server nicht bereits virtualisiert ist. Sprich, über die GUI des Adapters ändere ich das hardwareseitig und über Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled softwareseitig?

Ich freue mich auf den Server Gegenpart.

Danke face-smile
MysticFoxDE
MysticFoxDE 24.01.2023 um 11:50:18 Uhr
Goto Top
Moin @support-m.

Gehen wir mal davon aus, dass der Server nicht bereits virtualisiert ist. Sprich, über die GUI des Adapters ändere ich das hardwareseitig und über Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled softwareseitig?

jup, so ist es.
Hardwareseitig kannst du RSC entweder über die GUI konfigurieren oder per ..

Set-NetAdapterAdvancedProperty -Name "NICNAME" -RegistryKeyword "*RscIPv4" -RegistryValue 0  
Set-NetAdapterAdvancedProperty -Name "NICNAME"  -RegistryKeyword "*RscIPv6" -RegistryValue 0  

oder ...
Disable-NetAdapterRsc -Name "NICNAME" -IPv4 -IPv6  

deaktivieren.

Und softwareseitig entweder per ...
netsh int tcp set global RSC=Disabled
oder ...
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled

Ich freue mich auf den Server Gegenpart.

Ich mich nicht wirklich, weil dieser um einiges komplizierter ist wie der Client Part, vor allem mit Hyper-V & Co. dazwischen und dann auch noch so, dass es auf unterschiedlichen Hardwareumgebungen fehlerfrei funktioniert.
Das wird ein Spass. 😩

Aber was muss, das muss. 😁

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 24.01.2023 um 13:01:12 Uhr
Goto Top
Moin @TomTomBon,

Kleine Vorbemerkungen:
Ich füge imme einen kleinen Header bei mir hinzu mit Titel und öffnen des Links wo Ich es gefunden habe face-wink
Damit geht das Skript 1.0 erst mit Zeile 6 los.

danke für den Tipp, hab's gleich bei der V1.0 umgesetzt. 😁

Ich habe die Version 0.9 vorher schon laufen gelassen. Deswegen denke Ich das die Rückmeldung interessant sind:

Set-NetAdapterAdvancedProperty : Value must be within the range 1 - 512
At line:89 char:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...D0DA955BE}:...):ROOT/StandardCi...ertySettingData) [Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
 
Set-NetAdapterAdvancedProperty : Value must be within the range 1 - 128
At line:97 char:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...D0DA955BE}:...):ROOT/StandardCi...ertySettingData) [Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty

😮 ... an welcher Stelle kommt den dieser Fehler?

New-ItemProperty : The property already exists.
At line:113 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Val ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand
 
New-ItemProperty : The property already exists.
At line:123 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1 ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand

Ja, an dieser Stelle ist das Fehlerhandlich noch etwas suboptimal. 😬
Biege ich bei der V1.1 gerade. 😁

Auf dem System läuft HyperV.

Ist das ein Server oder ein Client?

Beste Grüsse aus BaWü

Alex
TomTomBon
TomTomBon 24.01.2023 aktualisiert um 14:13:19 Uhr
Goto Top
Hyper-V als Server.
OS ist wie geschrieben Win 11 Pro 21H2, hatte Ich mich extra für entschieden weil immer mehr anfragen von Kunden in die Richtung kommen face-wink
(Win 11 Pro, nicht 21H2, da muss Ich mal schauen das upgedatet zu bekommen. Zickt weil HW zu alt face-smile )

Ich führe es in ISE aus, da Ich Powershell nicht produktiv verwende.

Die Ausgabe sagt:
PS D:\Administrative Tools> #WINDOWS--CLIENT--10AND11-NETWORK-DESUBOPTIMIZATION V1.0

Start-Process "[content:5529700198]"  


#Get-NetTCPSetting
#Get-NetTCPConnection
#netsh int tcp show global
#Get-NetConnectionProfile
#Get-NetTransportFilter


# DISABLE RSS
#Get-NetAdapterRss
Set-NetOffloadGlobalSetting -ReceiveSideScaling Disabled

$NICs = Get-NetAdapter -Physical | Select-Object Name
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    $NICRSSSTATUS = Get-NetAdapterRss -Name "$NICNAME" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select-Object Enabled | Select Enabled -ExpandProperty Enabled | Out-String -Stream   
    if ($NICRSSSTATUS -eq "True")  
      {Disable-NetAdapterRss -Name "$NICNAME"}  
  }


# DISABLE RSC
#Get-NetAdapterRsc
Set-NetOffloadGlobalSetting -ReceiveSegmentCoalescing Disabled

$NICs = Get-NetAdapter -Physical | Select-Object Name
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    $NICRSCIPV4STATUS = Get-NetAdapterRsc -Name "$NICNAME" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select-Object IPv4Enabled | Select IPv4Enabled -ExpandProperty IPv4Enabled | Out-String -Stream  
    $NICRSCIPV6STATUS = Get-NetAdapterRsc -Name "$NICNAME" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Select-Object IPv6Enabled | Select IPv6Enabled -ExpandProperty IPv6Enabled | Out-String -Stream   
    if ($NICRSCIPV4STATUS -eq "True")  
      {Disable-NetAdapterRsc -Name "$NICNAME" -IPv4}  
    if ($NICRSCIPV6STATUS -eq "True")  
      {Disable-NetAdapterRsc -Name "$NICNAME" -IPv6}  
  }


# DISABLE PACKET COALESCING
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Disabled


# DISABLE FLOW CONTROL
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*FlowControl"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*FlowControl"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*FlowControl" -RegistryValue 0  
  }


# DISABLE INTERRUPT MODERATION
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*InterruptModeration"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*InterruptModeration"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*InterruptModeration" -RegistryValue 0  
  }


# DISABLE ENERGY-EFFICIENT-ETHERNET
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*EEE"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*EEE"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*EEE" -RegistryValue 0  
  }


# OPTIMIZE TCP CONGESTION CONTROL
netsh int tcp set supplemental template=Datacenter congestionprovider=DCTCP
netsh int tcp set supplemental template=Datacentercustom congestionprovider=DCTCP
netsh int tcp set global ECN=Enabled

# OPTIMIZE SEND- & RECEIVEBUFFERS
# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*ReceiveBuffers"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*ReceiveBuffers"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*ReceiveBuffers" -RegistryValue 2048  
  }

# Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*TransmitBuffers"}   
$NICs = Get-Netadapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*TransmitBuffers"}   
foreach ($adapter in $NICs) 
  {
    $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
    Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword "*TransmitBuffers" -RegistryValue 2048  
  }



# ENABLE DATACENTERCUSTOM TCP PROFILE
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -PropertyType Binary -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff))) -ErrorAction SilentlyContinue -WarningAction SilentlyContinue  
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\27\" -Name "06000000" -Value (([byte[]](0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff))) -ErrorAction SilentlyContinue -WarningAction SilentlyContinue  


# OPTIMIZE TCPACKFREQUENCY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Value '1' -PropertyType DWORD  
  }


# DISABLE TCPDELAY
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID
foreach ($adapter in $NICs) 
  {
    $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
    $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream   
    New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1' -PropertyType DWORD  
  }
Ok.

Ok.

Ok.

Set-NetAdapterAdvancedProperty : Value must be within the range 1 - 512
At line:89 char:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...D0DA955BE}:...):ROOT/StandardCi...ertySettingData) [Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
 
Set-NetAdapterAdvancedProperty : Value must be within the range 1 - 128
At line:97 char:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...D0DA955BE}:...):ROOT/StandardCi...ertySettingData) [Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
 
New-ItemProperty : The property already exists.
At line:113 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Val ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand
 
New-ItemProperty : The property already exists.
At line:123 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1 ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand



In Rot sind wie gesagt nur die letzten 4 Objekte.
Wobei 3 & 4 für mich nur false flag ist, da einfach nur rot gemeldet ist "Ich bin schon da".

Ich bin nicht tief genug in der Materie ob bei 1, ReceiveBuffers, durch die alte HW so beschränkt ist.
Und bei 2, bei TransmitBuffers, ist die Beschränkung ja noch extremer.
transocean
transocean 24.01.2023 um 14:54:57 Uhr
Goto Top
Moin Alex,

auch die aktialisierte Version läuft hier nicht ohne die folgenden Fehlermeldungen:

Disable-NetAdapterRsc : Failed to set 'RSCIPv4' of 'RSC' configuration of adapter 'Ethernet'  
In Zeile:7 Zeichen:8
+       {Disable-NetAdapterRsc -Name "$NICNAME" -IPv4}  
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...78B42F7DF93F}"):ROOT/StandardCi...rRscSettingData)  
   [Disable-NetAdapterRsc], CimException
    + FullyQualifiedErrorId : Windows System Error 50,Disable-NetAdapterRsc

Disable-NetAdapterRsc : Failed to set 'RSCIPv6' of 'RSC' configuration of adapter 'Ethernet'  
In Zeile:9 Zeichen:8
+       {Disable-NetAdapterRsc -Name "$NICNAME" -IPv6}  
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...78B42F7DF93F}"):ROOT/StandardCi...rRscSettingData)  
   [Disable-NetAdapterRsc], CimException
    + FullyQualifiedErrorId : Windows System Error 50,Disable-NetAdapterRsc



Set-NetAdapterAdvancedProperty : Value must be within the range 32 - 512, in increments of 8
In Zeile:4 Zeichen:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...42F7DF93F}:...):ROOT/StandardCi...ertySettingData) [
   Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty


Set-NetAdapterAdvancedProperty : Value must be within the range 32 - 128, in increments of 8
In Zeile:4 Zeichen:5
+     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...42F7DF93F}:...):ROOT/StandardCi...ertySettingData) [
   Set-NetAdapterAdvancedProperty], CimException
    + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
Gruß

Uwe
MysticFoxDE
MysticFoxDE 24.01.2023 aktualisiert um 20:13:22 Uhr
Goto Top
Moin @TomTomBon,

Hyper-V als Server.
OS ist wie geschrieben Win 11 Pro 21H2, hatte Ich mich extra für entschieden weil immer mehr anfragen von Kunden in die Richtung kommen face-wink

habe aus dem gleichen Grund vor Monaten auch auf W11 umgestellt.

(Win 11 Pro, nicht 21H2, da muss Ich mal schauen das upgedatet zu bekommen. Zickt weil HW zu alt face-smile )

Dieses Sinnlose Zicken über die Hardware, kannst du W11 ganz einfach abgewöhnen.
Musst nur die aktuellste ISO ziehen und diese mit der aktuellen Rufus Version auf einen Stick schreiben.
Und bei Rufus kannst du seit ein paar Versionen dann direkt den Hacken setzen, das es diesen Hardwareprüfmurks dem Windows gleich wieder abgewöhnt. 😉

In Rot sind wie gesagt nur die letzten 4 Objekte.
Wobei 3 & 4 für mich nur false flag ist, da einfach nur rot gemeldet ist "Ich bin schon da".

Ja, dieses Problem kennen ich, hier habe ich das Fehlerhandling noch nicht wirklich sauber implementiert, kommt aber noch.

Ich bin nicht tief genug in der Materie ob bei 1, ReceiveBuffers, durch die alte HW so beschränkt ist.
Und bei 2, bei TransmitBuffers, ist die Beschränkung ja noch extremer.

Oh, ja, verflixt, die alten 1G NIC's unterstützen 1MB nicht als Sende- oder Empfangspuffer. 😬
Na ja, ich habe da schon eine Idee wie ich das hinbekommen könnte.
Kommt auch in die nächste Version rein. 😁

Besten Dank für das Feedback

Gruss Alex
MysticFoxDE
MysticFoxDE 25.01.2023, aktualisiert am 21.02.2023 um 16:26:23 Uhr
Goto Top
Moin Uwe,

auch die aktialisierte Version läuft hier nicht ohne die folgenden Fehlermeldungen:

auch dir danke für das Feedback.

Disable-NetAdapterRsc : Failed to set 'RSCIPv4' of 'RSC' configuration of adapter 'Ethernet'  
> In Zeile:7 Zeichen:8
> +       {Disable-NetAdapterRsc -Name "$NICNAME" -IPv4}  
> +        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...78B42F7DF93F}"):ROOT/StandardCi...rRscSettingData)  
>    [Disable-NetAdapterRsc], CimException
>     + FullyQualifiedErrorId : Windows System Error 50,Disable-NetAdapterRsc
> 
> Disable-NetAdapterRsc : Failed to set 'RSCIPv6' of 'RSC' configuration of adapter 'Ethernet'  
> In Zeile:9 Zeichen:8
> +       {Disable-NetAdapterRsc -Name "$NICNAME" -IPv6}  
> +        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...78B42F7DF93F}"):ROOT/StandardCi...rRscSettingData)  
>    [Disable-NetAdapterRsc], CimException
>     + FullyQualifiedErrorId : Windows System Error 50,Disable-NetAdapterRsc

🤔 ... OK, ich glaub ich weis woher das kommt.
Du hast in deinem Rechner überhaupt keine NIC die RSC unterstützt und in dem Fall knirscht es wohl noch etwas. 😬

Ausserdem habe ich gerade Live bei einem Kunden festgestellt, dass wenn das Skript mittendrin auf einen Fehler läuft, der Rest davon nicht mehr sauber ausgeführt wird. 😭
Das würde auch erklären, warum es bei manchen so wie bei dir, nicht 100% fruchtet.
Sieht wohl so aus, als ob ich ASAP eine V1.01 rausbringen muss. 😩

Set-NetAdapterAdvancedProperty : Value must be within the range 32 - 512, in increments of 8
> In Zeile:4 Zeichen:5
> +     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
> +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...42F7DF93F}:...):ROOT/StandardCi...ertySettingData) [
>    Set-NetAdapterAdvancedProperty], CimException
>     + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty
> 
> 
> Set-NetAdapterAdvancedProperty : Value must be within the range 32 - 128, in increments of 8
> In Zeile:4 Zeichen:5
> +     Set-NetAdapterAdvancedProperty -Name "$NICNAME" -RegistryKeyword  ...  
> +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidArgument: (MSFT_NetAdapter...42F7DF93F}:...):ROOT/StandardCi...ertySettingData) [
>    Set-NetAdapterAdvancedProperty], CimException
>     + FullyQualifiedErrorId : Windows System Error 87,Set-NetAdapterAdvancedProperty

Diese Problem kennen ich, wird in der V1.01 auch behoben.

Beste Grüsse aus BaWü
Alex
TomTomBon
TomTomBon 25.01.2023 um 14:59:02 Uhr
Goto Top
Moin Alex,
Um solche Sachen die man selbst nicht im Zugriff hat abzufrühstücken sind diese Rückmeldungen ja wichtig face-smile
Ja, wir haben keine sonderlichen PCs.
Aber sie laufen ganz vernünftig. Und im Gegensatz zu vielen anderen IT-Dienstleistungs Abteilungen haben wir wenigstens Test-PCs.
Die interne IT will komplett auf Terminal umziehen.
Was ja auch seine Vorteile hat.
Aber nicht wenn man Kunden-Szenarien nachstellen / Software testen soll.
Dafür haben wir ja einen ESX Server bekommen..
Wo man Test-Server über den Bestell-Weg bestellen kann und begründen muss...
Aber es gibt auch Unternehmen wo das richtig ** ist.
Dazu gehören wir nicht und der Chef und die Abteilung ist gut, kompetent und aufgeschlossen face-smile

Also lieber nicht zu viel meckern face-wink
MysticFoxDE
MysticFoxDE 25.01.2023 um 19:30:44 Uhr
Goto Top
Moin Zusammen,

das Optimierungsskript ist nun bei Github online. 😁

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Das sind jetzt meine allerersten github Schritte ... hoffe jetzt nur, dass ich beim Anlegen keinen all zu grossen Humbug gebaut habe. 🤪

Beste Grüsse aus BaWü

Alex
dertowa
dertowa 26.01.2023 um 09:14:54 Uhr
Goto Top
Zitat von @MysticFoxDE:
Das sind jetzt meine allerersten github Schritte ...

Ein kleiner Schritt für den Fuchs, ein großer für die Menschheit. face-smile
Wird mit Interesse fleißig verfolgt.

Grüße
ToWa
MysticFoxDE
MysticFoxDE 26.01.2023 um 09:21:53 Uhr
Goto Top
Moin ToWa,

Ein kleiner Schritt für den Fuchs, ein großer für die Menschheit. face-smile

😂🤣😂🤣 made my day 👍👍👍

Gruss Alex
MysticFoxDE
MysticFoxDE 26.01.2023 um 09:26:19 Uhr
Goto Top
Moin Zusammen,

kleines Update.
Ich habe soeben bei github die Version 1.01 veröffentlicht.

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Diese Version hat im Bereich der Transmit- und Receivebufferoptimierung kräftig dazugelernt, sowohl was die funktion an sich angeht als auch das zurückquasseln. 😉🤪

Zudem habe ich in diesem Bereich auch das Fehlerhandling kräftig verbessert und die Ausgaben auch etwas bunter gestaltet. 😁

Die restlichen Bereiche werde ich sobald ich dazu komme, auch noch ähnlich umbauen.

Beste Grüsse aus BaWü
Alex
TomTomBon
TomTomBon 26.01.2023 um 10:51:07 Uhr
Goto Top
Moin Alex,

kleine Rückmeldung zur 1.01 von Github:
Ich habe es analog zur 0.9 und 1.0 ausgeführt.

Das was noch Rot und für NormalNutzer nicht einordnenbar war, sind die "alreadyexist" Meldungen.

Ansonsten sieht es für mich gut aus.

Wie gesagt, VNC zB fliegt geradezu face-wink

Ok.

Ok.

Ok.

Start Receive-Buffer Optimization
Oops, the NIC Phys-Controller does not accept a receive buffer size of 8192KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a receive buffer size of 8184KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a receive buffer size of 4096KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a receive buffer size of 2048KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a receive buffer size of 1024KB ... :-( ... never mind ... try with a smaller buffer next.
Nice, the receive buffer size of NIC Phys-Controller was successfully configured to 512KB. :-)
Receive-Buffer Optimization is complitly finished.
Start Transmit-Buffer Optimization
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 8192KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 8184KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 4096KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 2048KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 1024KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 512KB ... :-( ... never mind ... try with a smaller buffer next.
Oops, the NIC Phys-Controller does not accept a transmit buffer size of 256KB ... :-( ... never mind ... try with a smaller buffer next.
Nice, the transmit buffer size of NIC Phys-Controller was successfully configured to 128KB. :-)
Transmit-Buffer Optimization is complitly finished.
New-ItemProperty : The property already exists.
At line:160 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpAckFrequency' -Val ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand
 
New-ItemProperty : The property already exists.
At line:169 char:5
+     New-ItemProperty -Path "$REGKEYPATH" -Name 'TcpNoDelay' -Value '1 ...  
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (HKEY_LOCAL_MACH...-805D0DA955BE}\:String) [New-ItemProperty], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.NewItemPropertyCommand
 
goscho
goscho 27.01.2023 um 11:31:04 Uhr
Goto Top
Moin Alex,

ich habe dein Script bei mir auf der Workstation auch ausgeführt in der Hoffnung, alles zu beschleunigen.
Es hat sich aber nichts geändert.
Netzwerkbusinessanwendungen, wie bspw. SFIRM4 oder das SQL-basierte CRM starten genauso langsam oder schnell wie zuvor.
Bei lokalen Anwendungen erkenne ich auch keinen wirklichen Unterschied.
Ich habe aber nix gemessen, sind nur "gefühlte" Werte.

Meine Umgebung:
  • HP Z2G4 Workstation mit Xeon E-2274 CPU, 64GB RAM, Intel I219-LM Netzwerkadapter, Windows 10 22H2
  • Server sind W2019-VMs auf einem W2019-HyperV
MysticFoxDE
MysticFoxDE 27.01.2023 um 19:13:25 Uhr
Goto Top
Moin @TomTomBon,

kleine Rückmeldung zur 1.01 von Github:
Ich habe es analog zur 0.9 und 1.0 ausgeführt.

Das was noch Rot und für NormalNutzer nicht einordnenbar war, sind die "alreadyexist" Meldungen.

ich habe bei Github mittlerweile die V1.03 veröffentlicht, mit dieser sollten die von dir Angesprochenen Fehlermeldungen der Vergangenheit angehören, zudem gibt es mehr Feedback. 😁

Ansonsten sieht es für mich gut aus.

Wie gesagt, VNC zB fliegt geradezu face-wink

jup, gerade Programme die kleine viele kleine Pakete und keine riesigen Datensequenzen verschicken, profitieren mit am meisten von dieser Optimierung.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 27.01.2023 um 19:23:34 Uhr
Goto Top
Moin @goscho,

ich habe dein Script bei mir auf der Workstation auch ausgeführt in der Hoffnung, alles zu beschleunigen.
Es hat sich aber nichts geändert.

welches Version des Skripts hast du bei dir den genau ausgeführt?
Wenn es noch die ursprüngliche V0.9 war, dann lass mal bitte die aktuelle Version 1.3 von Github nochmals drüber laufen.

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Netzwerkbusinessanwendungen, wie bspw. SFIRM4 oder das SQL-basierte CRM starten genauso langsam oder schnell wie zuvor.
Bei lokalen Anwendungen erkenne ich auch keinen wirklichen Unterschied.
Ich habe aber nix gemessen, sind nur "gefühlte" Werte.

Meine Umgebung:
  • HP Z2G4 Workstation mit Xeon E-2274 CPU, 64GB RAM, Intel I219-LM Netzwerkadapter, Windows 10 22H2
  • Server sind W2019-VMs auf einem W2019-HyperV

😬... Server 2019 ... hast du hier schon irgendetwas optimiert?
Die Dinger sind per default auch sehr zäh.

Gruss Alex
TomTomBon
TomTomBon 27.01.2023 um 21:40:30 Uhr
Goto Top
Hmm
Ich fand die 2019 flotter als die 2016.
Ich wollte mir aber auch jetzt die 2022 zu Gemüte führen.
Allerdings bin Ich von W11 nicht begeistert, deswegen war Ich nicht hinter S2022 her face-smile
spec1re
spec1re 28.01.2023 um 09:18:15 Uhr
Goto Top
unbenannt-1

Sieht gut aus. 👍
MysticFoxDE
MysticFoxDE 28.01.2023 um 09:45:42 Uhr
Goto Top
Moin @TomTomBon,

Ich fand die 2019 flotter als die 2016.

echt, hast du die 2019er auf derselben Hardware wie die 2016er laufen?

Ich wollte mir aber auch jetzt die 2022 zu Gemüte führen.

Ist was die Anforderungen der Normalsterblichen angeht, der gleiche Murks wie auch der 2019er.
Na ja, nicht ganz, der 2022er hat noch ein paar mehr meist unnütze und ausbremsende Features verbaut wie seine Vorgänger. 😔

Allerdings bin Ich von W11 nicht begeistert, deswegen war Ich nicht hinter S2022 her face-smile

Ein aktuelles W11 ist von innen gesehen 1:1 derselbe Murks wie ein aktuelles W10, es hat nur von aussen gesehen, ein etwas hässlicheres und nicht ganz für den Bussinessalltag taugliches iOS-Kleidchen spendiert bekommen. 🤢😭

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 28.01.2023 um 09:48:12 Uhr
Goto Top
Moin Spec,

Sieht gut aus. 👍

danke für das Feedback.
Hast du das Optimierungsskript (müsste >=V1.3 sein) auf diesem Rechner das erste mal laufen lassen oder hast du davor auf derselben Maschine schon eine ältere Version durchlaufen lassen?

Gruss Alex
spec1re
spec1re 28.01.2023 um 11:31:59 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin Spec,

Sieht gut aus. 👍

danke für das Feedback.
Hast du das Optimierungsskript (müsste >=V1.3 sein) auf diesem Rechner das erste mal laufen lassen oder hast du davor auf derselben Maschine schon eine ältere Version durchlaufen lassen?

Gruss Alex

Ist immer die selbe Kiste.

Ich lass immer zuerst mal
WINDOWS10AND11-NETWORK-BACKSUBOPTIMIZATION.ps1
laufen und dann die neue Version, sonnst gibt es ein Haufen Fehler.

Gruß Spec
spec1re
spec1re 28.01.2023 um 11:38:10 Uhr
Goto Top
Kleiner Verbesserung Vorschlag, fände es nice to have, wenn am Ende noch mal eine kurze Zusammenfassung aufgelistet wird, z.B. Infos über das System, Netzwerkkarten und was optimiert wurde, Werte die gesetzt wurden usw. und was halt eben nicht ging.

Danke für deine Mühen.

Gruß Spec
MysticFoxDE
MysticFoxDE 28.01.2023 aktualisiert um 11:46:21 Uhr
Goto Top
Moin Spec,

laufen und dann die neue Version, sonnst gibt es ein Haufen Fehler.

das sollte seit V1.3 eigentlich nicht mehr der Fall sein.

Und spätestens mit der gerade bei Github veröffentlichten V1.5, kannst du das Skript mehrfach durchlaufen lassen ohne Fehler/Abbrüche zu sehen. 😁

Das Skript hat dafür aber nun auch so +- 1-2 Zeilen zugelegt, aber so ist das mit dem meist sehr aufwendigem halbautomatischem Fehlerhandling. 🤪

Gruss Alex
MysticFoxDE
MysticFoxDE 28.01.2023 um 11:43:57 Uhr
Goto Top
Moin Spec,

Kleiner Verbesserung Vorschlag, fände es nice to have, wenn am Ende noch mal eine kurze Zusammenfassung aufgelistet wird, z.B. Infos über das System, Netzwerkkarten und was optimiert wurde, Werte die gesetzt wurden usw. und was halt eben nicht ging.

schau dir mal wie gesagt die aktuellste V1.5 an. 😉

Die geht glaube ich schon eher in die gewünschte Richtung. 😁

Gruss Alex
MysticFoxDE
MysticFoxDE 28.01.2023 um 11:51:44 Uhr
Goto Top
Main Spec,

eventuell kommen noch aus den RSS und RSC Änderungsblöcken Fehler.
Aber auch diese sind bis spätestens V1.6, sprich bis spätestens Morgen überarbeitet.

Gruss Alex
Centlucky
Centlucky 28.01.2023 um 12:05:46 Uhr
Goto Top
Hi,
bei mir läuft es nach ein paar Anpassungen am HV-Host und an den VM,s solangsam wie ich es mir vorstelle, Danke der Top Arbeit von Dir mein lieber Alex.

-10 GB Netzwerk Ubiquiti Ökosystem
- Windows HV 2022 mit VM 2022 , SQL und Fileserver, DC

Jetzt erreiche ich mal eine Dateiübertragung von 1000 MB/s, und das flüssig ohne gezicke und gezappel.

Nochmal TopJob !
kevsei
kevsei 28.01.2023 aktualisiert um 16:29:58 Uhr
Goto Top
Heyho,

hatte die v0.9 schon drauf und jetzt die 1.5 getestet. folgendes kommt raus. Er scheint noch eins zwei dinge nicht machen zu können oder interpretiere ich das falsch? Hab Win 11 Pro 22H2.

fehler1


Grüße
MysticFoxDE
MysticFoxDE 28.01.2023 um 18:38:35 Uhr
Goto Top
Moin @kevsei,

hatte die v0.9 schon drauf und jetzt die 1.5 getestet. folgendes kommt raus. Er scheint noch eins zwei dinge nicht machen zu können oder interpretiere ich das falsch? Hab Win 11 Pro 22H2.

fehler1

😯 ... OK ... interessant.
Was genau steckt den hinter der "LAN-Verbindung" NIC?

Beste Grüsse aus BaWü
Alex
kevsei
kevsei 28.01.2023 um 18:44:35 Uhr
Goto Top
Moin,

Lan-Verbindung ist bei mir die Onboardlankarte (Realtek Gaming 2.5GbE Family Controller)
MysticFoxDE
MysticFoxDE 28.01.2023 um 19:10:01 Uhr
Goto Top
Moin @Centlucky,

bei mir läuft es nach ein paar Anpassungen am HV-Host und an den VM,s solangsam wie ich es mir vorstelle,

ja, mit Anpassungen kann man das auch auf den Servern laufen lassen.
Auf den Servern lassen sich einige Dinge jedoch einfacher umstellen und es sind im Vergleich zum Client,
noch viel tiefergehendere Anpassungen notwendig. 😔
Und manche Systeme lassen sich überhaupt nicht gut zurück optimieren, weil deren NIC's überhaupt nicht mit dem SDN ab Server 2019 zurechtkommen. 🤢
Ich habe erst diese Woche einen Fall gehabt, wo sich die NIC eines Servers einer österreichischen Firma,
nicht wirklich zu einem sauberen Betrieb überreden wollte. 😭

-10 GB Netzwerk Ubiquiti Ökosystem
- Windows HV 2022 mit VM 2022 , SQL und Fileserver, DC

Jetzt erreiche ich mal eine Dateiübertragung von 1000 MB/s, und das flüssig ohne gezicke und gezappel.

👍
Und was hattest du davor erreicht?

Danke der Top Arbeit von Dir mein lieber Alex.
Nochmal TopJob !

Sehr gerne. 😀

Ich bin mir jedoch ganz sicher, das viele Microsoftianer das nicht so sehen möchten.
Ist mir aber schnuppe, habt sie dennoch auch noch lieb, zumindest die, die noch halbwegs etwas von Performance verstehen. 🤪

Jetzt sind die Microsoftianer ja etwas weniger geworden, vielleicht tut das Windows nun auch etwas weniger Performance fressen. 😬
Ja, ich weis, ist leicht böse, aber das was MS da mit den aktuellen Betriebssystemen treibt, ist es definitiv auch.

Beste Grüsse von BaWü
MysticFoxDE
MysticFoxDE 28.01.2023 um 19:25:44 Uhr
Goto Top
Moin @kevsei,

Lan-Verbindung ist bei mir die Onboardlankarte (Realtek Gaming 2.5GbE Family Controller)

kannst du mal bitte im Skript die Zeile 16 folgend ändern ...

$DEDAILEDDEBUG = "ON"  

und das Skript danach nochmals laufen lassen.
Dann sollte theoretisch eine etwas detailiertere Fehlermeldung kommen.

Gruss Alex
kevsei
kevsei 28.01.2023 aktualisiert um 23:28:28 Uhr
Goto Top
Hey,

er hat wohl nen Problem mit dem Pfad:

fehler

Ich weiß ehrlich gesagt auch nicht wo er sich die "ID" herzieht. Meine Lankarte hat aufjedenfall eine andere:

6d66518c-f55a-4515-8be4-abdf7655048d (mit netsh lan show interfaces ausgelesen, den Pfad gibt es dann auch in der Reg).

Edit2: Ok hab was gefunden:

fehler2

Ethernet ist in dem Fall korrekt. Was LAN-Verbindung ist, kann ich nicht sagen. Die gibts aktuell nicht.

Edit3:

ok gefunden. Hab noch einen XBOX Controller dran der Lan-Verbindung heißt. Dessen ID nimmt dein Script sich. Kannst du das ggf. wegoptimieren?

fehler3

Grüße
TomTomBon
TomTomBon 28.01.2023 um 23:32:17 Uhr
Goto Top
Moin Alex,

wir kriegen wie gesagt keine Hardware zum Spielen.
Selbst unsere ältere wollen sie nehmen. Sie versuchen es, aber ohne funktionierende Alternative kommen die nicht am Chef vorbei face-wink
Aber Ich nutze verschieden Server via VM. Von 2012R2 zur Schulung Azubis bis 2019, und wie gesagt jetzt mal 2022.
Und da fand Ich bisher 2019 noch am "besten". Nicht mehr in der neuen Win 10 Welt wie 2016, aber auch nicht ganz so überdreht wie 2022. Was mein Eindruck vom kurzen Test war.

Ich teste Systeme die mich interessieren auch immer als Trial auf meiner privaten alten Test-Möhre.
Und dadurch habe Ich einen 1zu1 Vergleich. face-smile


Für mich war und ist, und Ich sage das auch den alten Technikern die mich zu meiner Meinung zu W11 fragen, W11 ein aufgemotztes W10.
Vor allem von der Optik anders, ansonsten wie der Schritt von 1511 auf 1809.
Andere Optik und Verhalten, aber gleiche Grundlage.
Ich kann es absolut nicht empfehlen, aber auch nicht verteufeln.
Es ist halt noch etwas mehr bunt, etwas mehr aufgebläht, aber auch etwas aktueller.
Was die Probleme / Bugs betrifft, sehe Ich keinen echten Unterschied zwischen W10 21H2 und W11 21H2.
Ich nutze beide parallel.


Ich habe nicht ohne Grund meine Schwiegermutter zu Linux überredet face-wink
Sie hat Probleme, ja.
SOOOO gigantisch sind die Unterschiede ja auch nicht mehr.
Aber sie ist zufrieden. Und unter Windows hatte sie früher mehr Probleme face-smile

Jetzt will Ihr Mint nicht immer sich selbst zerschießen, sondern es kommen neue Anforderungen die sie hat.
Oder das in Mint selbst auch Probleme sind.
Und das "in Mint selbst" kann Ich zu 70% auf Fehler/nicht genug Wissen meinerseits zurückführen beim einrichten face-wink
Die restlichen 30% kann Ich nicht zurückführen. Wieviel davon trotzdem mein Fehler sind... face-smile

Und DAS war meine Hoffnung. Das sie arbeiten kann.
(Als Rentnerin..)
Das sie Mails, Internet, Zoom Meeting, Videos schauen kann ohne das Ich alle Nase lang mich drauf schalten muss weil Irgendein Update was mit Ihrem Verhalten nicht kompatibel war.
Sie nutzt PC erst seit 8 Jahren. Deswegen verwende Ich sie als mein gedankliches "Modell" was die Leute in so einer Gruppe, älter ohne viel Erfahrung und wirkliches Interesse an der Technik dahinter, wollen / können / brauchen face-smile
MysticFoxDE
MysticFoxDE 29.01.2023 um 07:30:34 Uhr
Goto Top
Moin @kevsei,

Edit3:

ok gefunden. Hab noch einen XBOX Controller dran der Lan-Verbindung heißt. Dessen ID nimmt dein Script sich.

fehler3

sehr interessant.
Jeder Netzwerkadapter Adapter hat einen entsprechenden Eintrag mit der Device ID unter ...
"Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
und auch dein "XBOX Wireles Adapter for Windows" müsste dort einen Eintrag mit seiner Device-ID haben.
Kannst du das mal bitte mit regedit manuel prüfen, danke.
Was ich mir vorstellen kann ist, dass der Benutzer mit dem du das Skript ausführst, aufgrund fehlender Berechtigung, diesen Schlüssel nicht ändern darf.
Das ist ein Microsoft Adapter, wahrscheinlich haben die Microsoftianer diesen Schlüssel so zugenagelt, das nur der SYSTEM und oder INSTALLER Benutzer hier was ändern dürfen. 🤢

Kannst du das ggf. wegoptimieren?

Ja, aber ich würde viel lieber wissen, warum ich dort nicht reinschreiben kann.

Die Fehlermeldungen sind zudem nicht wirklich schlimm, denn bis auf diese beiden Dinge, hat das Skript alles andere sauber desuboptimiert. 😁

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 29.01.2023 aktualisiert um 09:33:56 Uhr
Goto Top
Moin Zusammen,

und am +- 7 Tag denkt der 🦊, dass das Skript nun halbwegs gut ist. 🤪
Sprich, habe soeben die Skriptversion 1.07 bei github veröffentlicht.

Diese gibt nun bei jedem Optimierungsschritt ein Feedback und hat ein nochmals verbessertes Fehlerhandling. 😁

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Wünsche allen einen entspannten und erholsamen Sonntag.

Beste Grüsse aus BaWü
Alex
kevsei
kevsei 29.01.2023 um 10:09:36 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @kevsei,

Edit3:

ok gefunden. Hab noch einen XBOX Controller dran der Lan-Verbindung heißt. Dessen ID nimmt dein Script sich.

fehler3

sehr interessant.
Jeder Netzwerkadapter Adapter hat einen entsprechenden Eintrag mit der Device ID unter ...
"Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
und auch dein "XBOX Wireles Adapter for Windows" müsste dort einen Eintrag mit seiner Device-ID haben.
Kannst du das mal bitte mit regedit manuel prüfen, danke.
Was ich mir vorstellen kann ist, dass der Benutzer mit dem du das Skript ausführst, aufgrund fehlender Berechtigung, diesen Schlüssel nicht ändern darf.
Das ist ein Microsoft Adapter, wahrscheinlich haben die Microsoftianer diesen Schlüssel so zugenagelt, das nur der SYSTEM und oder INSTALLER Benutzer hier was ändern dürfen. 🤢

Kannst du das ggf. wegoptimieren?

Ja, aber ich würde viel lieber wissen, warum ich dort nicht reinschreiben kann.

Die Fehlermeldungen sind zudem nicht wirklich schlimm, denn bis auf diese beiden Dinge, hat das Skript alles andere sauber desuboptimiert. 😁

Beste Grüsse aus BaWü
Alex

Hey,

Ich glaube das Problem ist, dass der Xbox Wireless Controller keine Lanverbindung ist. Das ist nen Bluetooth-Empfänger für Controller, daher gibt es auch den Eintrag in der reg nicht. der ist schlicht nicht vorhanden.

Aber wenn er die andere Verbindung trotzdem optimiert kann mir das ja egal sein face-smile.

Danke dir. Übrigens auf der Arbeit an einem Testrechner läuft es ohne Probleme durch. Einige Programme und auch SQL abfragen von Servern laufen deutlich besser.

Grüße
transocean
transocean 29.01.2023 um 10:34:26 Uhr
Goto Top
Moin Alex,

habe es nochmla laufen lassen und stelle nun auch eine merkliche Geschwindigkeitszunahme fest.
Aber es gibt einen sich 5x wiederholenden Fehler. Else ist unbekannt. face-smile

Gruß

Uwe

else : Die Benennung "else" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines
ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:3
+   else
+   ~~~~
    + CategoryInfo          : ObjectNotFound: (else:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
MysticFoxDE
MysticFoxDE 29.01.2023 um 16:06:20 Uhr
Goto Top
Moin @kevsei,

Ich glaube das Problem ist, dass der Xbox Wireless Controller keine Lanverbindung ist. Das ist nen Bluetooth-Empfänger für Controller, daher gibt es auch den Eintrag in der reg nicht. der ist schlicht nicht vorhanden.

Bluetooth mit 600 MBit/s ... 😯 ... was habe ich den jetzt schon wieder verpasst.
Das sieht mir eher nach einem WiFi Adapter aus.

Kannst du mal den folgenden Befehl ausführen und dessen Ausgabe hier posten, danke.

(Power-Shell oder ISE bitte als Administrator starten)
Get-NetAdapterAdvancedProperty -Name "LAN-Verbindung" | FT -AutoSize  

Aber wenn er die andere Verbindung trotzdem optimiert kann mir das ja egal sein face-smile.

😂🤣😂🤣 ... mir auch

Danke dir. Übrigens auf der Arbeit an einem Testrechner läuft es ohne Probleme durch. Einige Programme und auch SQL abfragen von Servern laufen deutlich besser.

Sehr gerne und danke für das Feedback.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 29.01.2023 aktualisiert um 16:11:43 Uhr
Goto Top
Moin Uwe,

habe es nochmla laufen lassen und stelle nun auch eine merkliche Geschwindigkeitszunahme fest.

auch dir, vielen Dank für das Feedback.

Aber es gibt einen sich 5x wiederholenden Fehler. Else ist unbekannt. face-smile

😬
Welche Version des Scripts verwendest du den genau?
Und an welcher Stelle kommt dieser Fehler genau?

Für detailliertere Fehlerbeschreibungen bitte das folgende im Skript (Zeile 16) aktivieren ...

$DEDAILEDDEBUG = "ON"  

Gruss Alex
kevsei
kevsei 29.01.2023 um 17:45:53 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @kevsei,

Ich glaube das Problem ist, dass der Xbox Wireless Controller keine Lanverbindung ist. Das ist nen Bluetooth-Empfänger für Controller, daher gibt es auch den Eintrag in der reg nicht. der ist schlicht nicht vorhanden.

Bluetooth mit 600 MBit/s ... 😯 ... was habe ich den jetzt schon wieder verpasst.
Das sieht mir eher nach einem WiFi Adapter aus.

Kannst du mal den folgenden Befehl ausführen und dessen Ausgabe hier posten, danke.

(Power-Shell oder ISE bitte als Administrator starten)
Get-NetAdapterAdvancedProperty -Name "LAN-Verbindung" | FT -AutoSize  

Aber wenn er die andere Verbindung trotzdem optimiert kann mir das ja egal sein face-smile.

😂🤣😂🤣 ... mir auch

Danke dir. Übrigens auf der Arbeit an einem Testrechner läuft es ohne Probleme durch. Einige Programme und auch SQL abfragen von Servern laufen deutlich besser.

Sehr gerne und danke für das Feedback.

Beste Grüsse aus BaWü
Alex

Hey,

darfst mir vertrauen ;)
Das dingen verbindet meine tollen Xbox One Controller mit meinem PC face-big-smile
Ich hab hier kein Wlan dran.

Hier die Ausgabe:

ausgabe1

Grüße
MysticFoxDE
MysticFoxDE 29.01.2023 um 20:31:28 Uhr
Goto Top
Moin @kevsei,

Das dingen verbindet meine tollen Xbox One Controller mit meinem PC face-big-smile

ja schon, aber es ist dennoch kein Bluetooth-Stick sondern eher ein W-LAN-Stick auf Basis von "Wifi-Direct".

Gruss Alex
exitsys
exitsys 30.01.2023 aktualisiert um 08:47:56 Uhr
Goto Top
Moin Alex. @MysticFoxDE

Zeile 60 fragst du ab

$STATUSRSS = Get-NetOffloadGlobalSetting | Select-Object ReceiveSideScaling | Select ReceiveSideScaling -ExpandProperty ReceiveSideScaling | Out-String -Stream

Zeile 61 hast du eine if anweisung allerdings mit
if ($STATUSPCF -eq "Disabled")  

Ich denke das ist ein Copy/Paste Fehler

Variable vertauscht? face-smile

Grüße Andreas
MysticFoxDE
MysticFoxDE 30.01.2023 um 08:57:01 Uhr
Goto Top
Moin Andreas,

Zeile 60 fragst du ab

$STATUSRSS = Get-NetOffloadGlobalSetting | Select-Object ReceiveSideScaling | Select ReceiveSideScaling -ExpandProperty ReceiveSideScaling | Out-String -Stream

Zeile 61 hast du eine if anweisung allerdings mit
if ($STATUSPCF -eq "Disabled")  

Ich denke das ist ein Copy/Paste Fehler

Variable vertauscht? face-smile

😬 ... ups ... schon korrigiert ... danke.

Gruss Alex
kevsei
kevsei 30.01.2023 um 09:31:25 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @kevsei,

Das dingen verbindet meine tollen Xbox One Controller mit meinem PC face-big-smile

ja schon, aber es ist dennoch kein Bluetooth-Stick sondern eher ein W-LAN-Stick auf Basis von "Wifi-Direct".

Gruss Alex

Moin,

stimmt!
Spirit-of-Eli
Spirit-of-Eli 30.01.2023 aktualisiert um 11:31:16 Uhr
Goto Top
Moin,

ich hab gerade die Erfahrung machen können, dass es meist schon reicht einfach RSC auszuschalten. Alleine dadurch entsteht gefühlt ein signifikanter Performance Gewinn.
Dies funktioniert ebenfalls bei HyperV Adaptern.

Gruß
Spirit

Edit: Sogar das Webinterface meiner PfSense ist jetzt deutlich schneller. Total bescheuert was so eine kleine Änderung ausmachen kann.
drnatur
drnatur 30.01.2023 um 13:09:12 Uhr
Goto Top
Hallo,
@MysticFoxDE vielen Dank für deine Mühen.
Ich kanns mal bestätigen, bei vielen kleinen Paketen spürt man einen riesigen Unterschied.
Alle diese folgenden Erfahrungen beziehen sich auf den Testclient (Windows 10 22H2)
  • Alleine die Abfragen vom Client an den Server für Softwareverteilung (Management-Interface läuft auf dem Testclient) sind um gefühlte 50-70% schneller! Echt top, vor allem für unseren Servicedesk.
  • Was ich auch bemerkt habe: Bei reinem SMB von einem virtuellen Dateiserver ist die Geschwindigkeit von vorher >90MB/s auf ~60MB/s geschrumpft (getestet mit einer 5GB-Iso.)
  • VNC: gefühlt besser, Verbindungsanfragen laufen deutlich schneller

Alles in allem ein deutlicher Gewinn fürs tägliche Arbeiten
MysticFoxDE
MysticFoxDE 30.01.2023 aktualisiert um 13:59:13 Uhr
Goto Top
Moin @drnatur,

auch dir vielen Dank für dein Feedback.

* Was ich auch bemerkt habe: Bei reinem SMB von einem virtuellen Dateiserver ist die Geschwindigkeit von vorher >90MB/s auf ~60MB/s geschrumpft (getestet mit einer 5GB-Iso.)

😯 ... das sollte eigentlich nicht sein, meine Workstation schiebt mit einem optimierten Adapter fast immer am Gigabit Limit (112-113MB/s).
smb

Allerdings ist auf dieser auch schon SMB ordentlich nachoptimiert, den hier hat Microsoft in letzter Zeit leider wie bei TCP, auch viel rumgemurkst.

Zu diesem Thema wollte ich auch noch einen Artikel schreiben, jedoch werde ich zu diesem wahrscheinlich erst in ein paar Wochen kommen.

In der Zwischenzeit kannst ja mal das folgende probieren. 😁

# SMB CLIENT OPTIMIZATION
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -EnableBandwidthThrottling $false
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0
Set-SmbClientConfiguration -WindowSizeThreshold 1
Set-SmbClientConfiguration -MaxCmds 512

## SMB SERVER OPTIMIZATION
Set-SmbServerConfiguration -CachedOpenLimit 0
Set-SmbServerConfiguration -MaxChannelPerSession 32
Set-SmbServerConfiguration -MaxMpxCount 2048
Set-SmbServerConfiguration -MaxThreadsPerQueue 64
Set-SmbServerConfiguration -MaxWorkItems 8192
Set-SmbServerConfiguration -AsynchronousCredits 2048
Set-SmbServerConfiguration -TreatHostAsStableStorage $true
Set-SmbServerConfiguration -RequireSecuritySignature $false

Kannst genau so sowohl auf dem Client als auch auf dem Server laufen lassen.😉

---

Und bevor mich wieder die Angsthasen versuchen zu fressen ...

Reset-SmbClientConfiguration -All
Reset-SmbServerConfiguration -All

damit könnt Ihr alles wieder auf default zurückmurksen. 😉🤪

---

Gruss Alex
drnatur
drnatur 31.01.2023 um 07:22:46 Uhr
Goto Top
@MysticFoxDE

Danke. Die Befehle haben das SMB wieder auf 70MB/s gebracht.
Jetzt ist mir auch eingefallen, dass bei dem ersten Testclient ein Fehler beim Ausführen des Skripts kam und ich den gewissentlich ignoriert habe face-smile Somit belass ich es bei diesem Client mal dabei, dass SMB sich verschlechtert hat und probier mich weiter an den Einstellungen.

Bei einem zweiten Testclient lief das Skript sauber durch und da gibt es auch keine SMB-Performance-Einbußen.
Aber dafür erfreuliches, unser DMS-System läuft am zweiten Testclient jetzt ebenfalls deutlich performanter

MfG

Btw: Den Powershell-Befehl "Reset-SMBConfiguration" gibt es erst für Windows 11 - Clients face-wink
MysticFoxDE
MysticFoxDE 31.01.2023 um 08:12:11 Uhr
Goto Top
Moin @drnatur,

Danke. Die Befehle haben das SMB wieder auf 70MB/s gebracht.

das ist eigentlich immer noch sehr bescheiden, da stimmt was nicht, vor allem wenn du mit einem anderen Rechner, viel schneller auf dasselbe Ziel zugreifen kannst.

Jetzt ist mir auch eingefallen, dass bei dem ersten Testclient ein Fehler beim Ausführen des Skripts kam und ich den gewissentlich ignoriert habe face-smile

Kommt der Fehler auf diesem Client mit der neusten Skriptversion immer noch?
Es gibt ein paar Sachen im Skript, die gemacht werden müssen, sonst bringt es nicht wirklich etwas.

Btw: Den Powershell-Befehl "Reset-SMBConfiguration" gibt es erst für Windows 11 - Clients face-wink

Kein Problem, ich Arbeite schon an einer Lösung, um alle Angsthasen betreffend einer vorherigen Konfigurationssicherung, pauschal zufrieden zu stellen. 🤪

Gruss Alex
Win0815-ADM
Win0815-ADM 31.01.2023 um 12:29:10 Uhr
Goto Top
Moin Alex,

mehr oder weniger durch Zufall bin ich auf deinen Artikel gestoßen und alleine schon, dass Microsoft hier (im LAN) offenbar falsche Profile verwendet, hat mich dazu bewogen, mich etwas tiefer in das Thema einzuarbeiten. Dir auf jeden Fall meinen herzlichen Dank für die detailreichen Ausführungen und die bisherige Umsetzung. 👍

Da „mein Zuhause“ eher AutoIt und weniger PowerShell ist, habe ich dein Skript am Wochenende quasi in unsere per AutoIt entwickelte Umgebung portiert. Hierbei fiel mir auf, dass viele Einstellungen deines Skriptes ähnlich sind, dafür aber jeweils eigene Bereiche geschrieben wurden. Das macht es zwar leserlich, aber jede deiner Erweiterungen bzw. Anpassungen (z. B. erweitertes Logging) muss statt an einer, gleich an x Stellen angepasst werden. Teilweise unterscheiden sich die Einstellungen letztlich nur um ein Wort, im Skript ist es aber ein komplett eigener Bereich. Hier würde ich also empfehlen, aus gleichen Bereichen eine Art „Funktion“ zu erstellen, die anhand weniger Parameter leicht abweichende Dinge tut.

Unten habe ich mal die Ausgabe meiner Umsetzung beigefügt. Im Grunde habe ich im Skript nur zwei Funktionen: Eine prüft den Status des Features, eine andere ändert den Status des Features (ok, eine dritte gibt es auch noch, die die aktuell gesetzte Buffer-Größe eines Adapters ausliest ... 😊). Und hier komme ich zu einem (ich kann mir vorstellen für viele) Problem deines Skriptes – du bezeichnest hier einige als „Angsthasen“. Ich weiß, dass das spaßig gemeint ist, aber wenn du die Akzeptanz deines Skriptes erhöhen willst, musst du es (meiner Meinung nach) auch so aufbauen, dass es mit einem Schalter wieder umkehrbar ist. Aufgrund der oben beschriebenen Funktionen kann ich jedes Feature mit einem kleinen Parameter einfach rückgängig machen (entweder wird eben ein Feature aktiviert oder eben deaktiviert - je nachdem was gewünscht ist). Ich weiß, dass du einen Skript-Schnipsel bereitgestellt hattest, über welchen alles wieder rückgängig gemacht werden kann, aber schöner ist es trotzdem, wenn du es in einem anbietest: AN/AUS. Mit einer solchen Herangehensweise findest du auch vermutlich viel mehr Interessierte, die beim Testen mitmachen würden. Nicht jeder will das Risiko eingehen, sein System zu „verhunzen“, und sich dann später stundenlang einarbeiten, nur um herauszubekommen, welche Einstellung denn nun das Problem verursacht hat. Bei den von dir gesetzten Einstellungen sehe ich in der Tat bisher keine Probleme: Man kann diese setzen oder eben deaktivieren, ohne gleich ein Image einspielen zu müssen – das ist extrem übertrieben. Wenn du das Skript von Beginn an so ausgelegt hättest, wäre dir „das Verkaufen“ auch deutlich einfacher gefallen.

Klar, es ist jetzt an sich nur noch Feintuning, das nächste Mal würde ich dir aber raten, gleich direkt den Weg zurück einzubauen – in einem Abwasch und nicht in dem korrigierten 28. Post hinten rechts in der Ecke. 😉

01


Viele Grüße,
Bernd
MysticFoxDE
MysticFoxDE 31.01.2023 um 13:38:27 Uhr
Goto Top
Moin Bernd,

mehr oder weniger durch Zufall bin ich auf deinen Artikel gestoßen und alleine schon, dass Microsoft hier (im LAN) offenbar falsche Profile verwendet, hat mich dazu bewogen, mich etwas tiefer in das Thema einzuarbeiten. Dir auf jeden Fall meinen herzlichen Dank für die detailreichen Ausführungen und die bisherige Umsetzung. 👍

sehr gerne.
Genau dafür war der Post primär eigentlich auch gedacht, dass sich nämlich die User/Leser mal Gedanken über die Sinnhaftigkeit des ganzen Murkses machen, den Microsoft in letzter Zeit in die Betriebssysteme verbaut hat. 😔

Da „mein Zuhause“ eher AutoIt und weniger PowerShell ist, habe ich dein Skript am Wochenende quasi in unsere per AutoIt entwickelte Umgebung portiert. Hierbei fiel mir auf, dass viele Einstellungen deines Skriptes ähnlich sind, dafür aber jeweils eigene Bereiche geschrieben wurden. Das macht es zwar leserlich, aber jede deiner Erweiterungen bzw. Anpassungen (z. B. erweitertes Logging) muss statt an einer, gleich an x Stellen angepasst werden. Teilweise unterscheiden sich die Einstellungen letztlich nur um ein Wort, im Skript ist es aber ein komplett eigener Bereich. Hier würde ich also empfehlen, aus gleichen Bereichen eine Art „Funktion“ zu erstellen, die anhand weniger Parameter leicht abweichende Dinge tut.

Wie schon oben angedeutet, habe ich mit dem Post überhaupt nicht vor meine Power-Shell und oder Programmierer Künste unter beweis zu stellen und oder zu vermarkten. Ich schreibe hier in erster Linie als
Systemintegrator, der auf einen absoluten Murks seitens Microsoft hinweisen möchte.

Das mit den Funktionen habe ich mir übrigens auch schon überlegt, aber damit wird das Skript zwar was die Länge angeht kürzer, für viele ITler wird es dadurch aber um einiges schwerer zu verstehen.

Klar, es ist jetzt an sich nur noch Feintuning, das nächste Mal würde ich dir aber raten, gleich direkt den Weg zurück einzubauen – in einem Abwasch und nicht in dem korrigierten 28. Post hinten rechts in der Ecke. 😉

Jetzt komm, sowas nennt man "historischer Wachstum" ... sogar incl. Dokumentation. 😉
Sowas findest du draussen ganz selten ... also ich meine damit die Dokumentation des historischen Wachstums,
das Letztere, der Historische Wachstum selbst, ist wiederum massig vorhanden, vor allem in der IT. 🤪

Beste Grüsse aus BaWü
Alex
drnatur
drnatur 31.01.2023 um 14:47:34 Uhr
Goto Top
@MysticFoxDE:

Ich habe mal mit dem Befehl "netsh int tcp reset" am fehlerhaften Client zumindest SMB wieder auf die volle Performance gebracht.

Wenn ich in den nächsten Tagen Zeit finde, nehme ich mir mal die Muße und fühle dem Testclient auf den Zahn, welche Einstellung des ist.
Ansonsten bin ich ganz bei @Win0815-ADM, eine Art "On/Off"-Schalter ist sicherlich hilfreich.

LG
MysticFoxDE
MysticFoxDE 05.02.2023 aktualisiert um 11:27:35 Uhr
Goto Top
Moin Zusammen,
ich habe an diesem WE bei ein paar Nachforschungen zu dem hier angesprochenen Thema, weitere sehr interessante Dinge gefunden.

Und zwar habe ich bei uns auf einem Hyper-V (2019) Node 5 VM’s mit den folgenden Betriebssystemen aufgesetzt …

- Windows XP PRO SP3
- Windows 7 Enterprise
- Windows 8 Enterprise
- Windows 10 Enterprise 1511
- Windows 11 PRO 22H2

um mal deren Einstellungen anständig vergleichen zu können und im späteren Verlauf auch dagegen zu Testen. Also TCP-Latenz zwischen XP und XP, W7 und W7 u.s.w.
(Ja, Microsoftians aus Redmond, ihr könnt mit den Schwitzen schon mal anfangen. 😉🤪)

Anhand dieser VM’s habe ich dann die folgende Featurematrix erstellt …
tcp feature-matrix

Aus der auch die jeweiligen Standardeinstellungen der einzelnen Betriebssysteme ersichtlich sind. 😉
Hieraus lässt sich auch gut erkennen, dass Microsoft beim TCP-Stack ständig dazu- und auch wegfummelt und zwischendurch auch kräftig die vorherigen Einstellungen verändert.

Eine Begründung seitens Microsofts für diese Änderungen habe ich in den meisten Fällen jedoch nicht gefunden, zumindest keine die Rechtfertigt, dass diese Änderungen pauschal für die meisten Anwendungsfälle der Anwender von Vorteil wären. 😔

tcp profile internet-datacenter-w8

@microsoft
Das die Empfehlung, dass die ACK-Delays so zwischen der Hälfte der RTO und max. dem RTO Wert zu begrenzen sind, scheint bei euch ja grundsätzlich angekommen zu sein. Zumindest sehe ich das noch an den Einstellungen des Datacenter TCP Profils von Windows 8.
Jedoch, was macht Ihr da eigentlich im selben Atemzug beim Internet TCP Profil von Windows 8?
MinRto 300ms und ein ACKDelay von nur 50ms … 😬 … Ihr wisst schon, dass das so wiederum nicht wirklich Sinn macht. 🤨
/@Microsoft

Schade nur, dass dieses Profil auch bei Windows 8, standardmässig nie verwendet wurde.

Na ja, weiter geht’s, und es wird noch besser. 😉

Das ist die Default Konfiguration der TCP-Profile Datacenter und Internet bei Windows 10 1511.
tcp profile internet-datacenter-w10 1511

@microsoft
Bei Windows 10 1511 unterschreitet Ihr schon beidem Datacenter TCP-Profil mit dem DelayedACK Timeout von 1ms übrigens auch gewaltig die Hälfte der MinRTO dieses Profils. 😔
Und beim Internet TCP Profil ist derselbe DelayedACK Murks wie auch bei Windows 8
/@Microsoft

Ich würde jedoch sagen, dass trotzt meines Gemeckers, das Datacenter Profil von dieser Windows 10 1511 Version, die besten/passendsten Default Einstellungen hat, die ich bisher je auf einem Windows gesehen habe.
Schade nur, dass dieses Profil auch bei diesem Windows 10 1511, standardmässig nie verwendet wurde.

Und das ist die Default Konfiguration der TCP-Profile Datacenter und Internet bei Windows 10/11 22H2.
tcp profile internet-datacenter-w11 22h2

@microsoft
🙈 … mehr muss ich dazu nun glaube ich nicht sagen.
/@Microsoft

@netzwerkspezialisten
Lasst das mal bitte ganz in Ruhe auf euch wirken. 😉

Die ganzen restlichen Feinheiten, würde ich wie schon angekündigt in nächster Zeit nach und nach noch durchgehen.

Beste Grüsse aus BaWü

Alex
MysticFoxDE
MysticFoxDE 05.02.2023 aktualisiert um 13:30:41 Uhr
Goto Top
Moin Zusammen,

falls jetzt jemand denkt, dass ich hier der einzige bin der über die Delayed-ACK's herzieht, dann sollte sich die/der jenige(r) mal die folgenden Dinge ansehen.

https://www.nwlab.net/guide2na/netzwerkanalyse-probleme-2.html
https://www.ibm.com/support/pages/slow-tcpip-performance-vse-windows
https://community.microfocus.com/cfs-file/__key/telligent-evolution-comp ...
https://support.purestorage.com/Solutions/Microsoft_Platform_Guide/Multi ...
https://www.cygwin.com/bugzilla/show_bug.cgi?id=26710
https://mskb.pkisolutions.com/kb/321098
https://mailarchive.ietf.org/arch/msg/tcpm/keMSbDDao2MHURU4PhU9OSMz_MA/
https://forums.oracle.com/ords/apexds/post/latency-issues-with-tcp-ackno ...
...

Es gibt hunderte ähnliche Berichte im Internet und ja manche davon sind schon etwas älter,
das ändert aber nichts an der Tatsache, dass das meiste was in diesen Berichten drinsteht auch in der heutigen Zeit zutrifft. Heute treffen die damaligen Aussagen sogar viel eher zu, weil die heutigen Übertragungslatenzen viel geringer sind wie die damals und die Bandbreite ist heute auch um einiges höher. 😉

Und das ganze ist übrigens alles andere als ein reines Problem von Microsoft, auch die Pinguin-Fraktion ist von diesem nicht verschont. 😬

https://www.dell.com/support/manuals/de-de/powerstore-1000/pwrstr-hcg/de ...
https://www.dell.com/support/kbdoc/de-de/000177046/vmware-esx-esxi-tcp-d ...

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 05.02.2023 um 14:17:39 Uhr
Goto Top
Moin Zusammen,

noch ein kleiner Nachtrag zu dem ACK-Delay Thema.
Unter dem folgend Link findet ihr die RFC 1122 Spezifikation aus dem Jahr !! 1989 !!, in der ACK-Delay selbst spezifiziert wurde.

https://datatracker.ietf.org/doc/html/rfc1122

Beachtet bitte insbesondere das folgende.
ack-delay-rfc1122

Sprich, bei diesem Punkt ging es damals primär um Datenverkehr zwischen einem Host und Server zwischen denen sich das INTERNET(WAN) und nicht das INTRANET(LAN) befindet. 😉

@microsoftians
Habt ihr in dieser Spezifikation eigentlich auch die ganzen Warnungen bezüglich einem zu exzessivem ACK-Delay gesehen? 🤨

Ausserdem steht hier etwas von, man sollte ja nicht über 500ms verzögern und das gemäss der Technologie des Jahres !! 1989 !!.

Wie schnell waren nochmals die damals üblichen Internetanschlüsse und welche Latenz hatten diese? 🤨
Und wie schnell sind die heutigen Internetanschlüsse und wie gering deren Latenzen? 🤨

So, jetzt mal ganz kräftig darüber nachdenken und dann solltet ihr schon alleine merken, was ihr in letzter Zeit verpennt habt. 😡

Ferner, diese Empfehlung galt damals wie schon oben angesprochen und aus der Spezifikation auch ersichtlich für den Internet-Datenverkehr(WAN) und nicht pauschal auch für den Intranet-Datenverkehr(LAN). 🤨

Ja ich weiss, es hört sich beides ähnlich an, aber vielleicht findet Ihr bei euch in Redmond ja noch jemanden der euch den mitunter sehr gewaltigen Unterschied zwischen den beiden Begriffen etwas genauer erklären kann.
Am besten die Jungs die für das Datacenter Profil von Windows 10 1511 verantwortlich waren fragen. 😉
Wenn die nicht mehr da sind, dann klingelt kurz durch, ich mach das auch sehr gerne.😉🤪
/@Microsoftians

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 07.02.2023 um 07:25:46 Uhr
Goto Top
Moin Zusammen,

ich habe gestern noch eine kleine Testserie gemacht und konnte dabei 1:1 einen absolut krassen Schlamassel nachstellen, welchen ich erst zuletzt, genau so bei einer Serveranalyse gesehen habe. 😬

Zu den Testbedingungen.
Für den folgenden Test habe ich zwei unserer eigenen Powerworkstations verwendet.
Auf der einen läuft ein Windows 11 22H2 und auch der anderen ein Windows 10 22H2.
In beiden Workstations habe ich gestern eine Intel X540 dualport 10G NIC getopft und habe die Workstations direkt miteinander per Patchkabel verbunden.
Bevor ich die erste Testserie gestartet habe, habe ich natürlich alle Änderungen wieder rückgängig gemacht,
die z.B. von meinem oben angesprochenen Optimierungsskript gemacht wurden um sicherzustellen, dass die NIC's und der TCP-Stack von Windows auf default läuft.

Gemessen habe ich mit PsPing. Das ist ein Microsoft eigenes Tool, mit dem man sowohl die Latenz einer TCP Verbindung mit bis zwei stellen nach dem Komma in ms messen kann und unter anderem auf den TCP Durchsatz ermitteln.

https://learn.microsoft.com/en-us/sysinternals/downloads/psping

Auf der Workstation A habe ich PsPing als Client laufen lassen und auf der Workstation B als Server.

Und nun zu den absolut kranken Ergebnissen, die ich so übrigens wie schon angesprochen auch 1:1 auf einer Serverlandschaft gesehen habe. 😬

Datentransfer vom PsPing-Client (W11) zum PsPing-Server:

4K
w11(psping-client) send to w10(psping-server) - 4k

8K
w11(psping-client) send to w10(psping-server) - 8k

16K
w11(psping-client) send to w10(psping-server) - 16k

32K
w11(psping-client) send to w10(psping-server) - 32k

64K
w11(psping-client) send to w10(psping-server) - 64k

Zusammenfassung:
4K = 115,05 MB/s 🤢

8K = 92,23 MB/s 🤢🤢

16K = 112,97 MB/s 🤢🤢🤢

32K = 121.47 MB/s 🤢🤢🤢🤢

64K = 114,48 MB/s 🤢🤢🤢🤢🤢

Ja, ihr seht richtig, egal ob ich mit einer Blockgrösse von 4K, 8K, 16K, 32K oder 64K getestet habe, der TCP-Durchsatz war +- immer sehr bescheiden und vor allem fast immer gleich hoch! 😭

Das nächste was kommt, ist sogar noch verrückter. 😔

Fortsetzung folgt ....
MysticFoxDE
MysticFoxDE 07.02.2023 um 07:43:29 Uhr
Goto Top
Zweiter Part.

Dann habe ich als nächstes genau dieselbe Testreihe wiederholt, nur dieses mal im Reverse Modus.
Sprich, die Daten nicht vom Client zum Server gesendet sondern umgekehrt, vom Server zum Client.

Ergebnisse Reverse-Test:

4K
w11(psping-client) receive from w10(psping-server) - 4k

8K
w11(psping-client) receive from w10(psping-server) - 8k

16K
w11(psping-client) receive from w10(psping-server) - 16k

32K
w11(psping-client) send to w10(psping-server) - 32k

64K
w11(psping-client) receive from w10(psping-server) - 64k

ja, in die Andere Richtung ist es nochmals um Welten langsamer. 😭

Zusammenfassung:
4K = 22,76 MB/s 🤮
8K = 10,42 MB/s 🤮🤮
16K = 17,44 MB/s 🤮🤮🤮
32K = 32,42 MB/s 🤮🤮🤮🤮
64K = 36,58 MB/s 🤮🤮🤮🤮🤮

Ich habe in meinem ganze IT-Leben noch nie sowas krankes gesehen. 😔

@microsoft
1. Was genau denkt ihr euch eigentlich bei diesem Murks?
2. Wie genau Testet ihr eigentlich den eigentlich euren Murks selber?
/@Microsoft

So, jetzt hole ich mir einen frischen Kaffee und danach verrate ich euch wie es aussieht,
wenn man über diese beiden Workstations, das obere Optimierungsskript drüber laufen lässt. 😉
Dann versteht der einer oder andere vielleicht besser, warum ich diesbezüglich so einen Aufstand mache.

Beste Grüsse aus BaWü
Alex
Centlucky
Centlucky 07.02.2023 um 07:53:52 Uhr
Goto Top
Hi Alex,

der Aufstand ist berrechtigt. Ich bin sehr lange bei uns verzweifelt, habe Nic,s getauscht, habe Switches getauscht usw.
Bis Du mit der Lösung gekommen bist. Bei uns rennt das 10G Netzwerk jetzt im Filetransfer mit mind 600-700 MB/s.
Zum Teil erreichen wir bis zu 1,14 GB/s wenn die Filegröße entsprechend ist. Selbst der Zugriff auf den SQL Server ist gefühlt wesentlich schneller.
Für die Arbeit und das Teilen Deines Wissens bin ich Dir mehr als dankbar.
Ich frage mich inzwischen auch, was MS da macht. Ist es Absicht oder Inkompetenz?
MysticFoxDE
MysticFoxDE 07.02.2023 aktualisiert um 08:05:56 Uhr
Goto Top
Moin Zusammen,

folgend wie versprochen die Ergebnisse derselben Testläufe wie oben, nur mit dem Unterschied,
dass zuvor über die beiden Workstations das Optimierungsskript drüber gelaufen ist.

4K
w11(psping-client) send to w10(psping-server) - desubv1.10 - 4k

8K
w11(psping-client) send to w10(psping-server) - desubv1.10 - 8k

16K
w11(psping-client) send to w10(psping-server) - desubv1.10 - 16k

32K
w11(psping-client) send to w10(psping-server) - desubv1.10 - 32k

64K
w11(psping-client) send to w10(psping-server) - desubv1.10 - 64k

Zusammenfassung:
4K = 747,94 MB/s (default 115,05 MB/s)
8K = 853,86 MB/s (default 92,23 MB/s)
16K = 927,84 MB/s (default 112,97 MB/s)
32K = 959,26 MB/s (default 121.47 MB/s)
64K = 722,61 MB/s (default 114,48 MB/s)

Zusätzliche Ergebnisse ohne Screenshots:

24K = 946,92 MB/s
40K = 916,70 MB/s
48K = 909,53 MB/s
56K = 900,33 MB/3
128K = 645,83 MB/s
256K = 707,66 MB/s
512K = 719,92 MB/s

Wie ihr sehen könnt, hat sich die Performance in dieser Richtung ums mehrfache vervielfacht!
Komisch bleibt jedoch, dass die Performance ab ~40K nun immer noch einen leichten Knick nach unten macht. 🤔

Und nun zu den Ergebnisen in die andere Richtung.
Hier habe ich jedoch keine Screenshots, da ich gestern NAcht als ich die Tests gemacht habe schon viel zu müde für diese war.

Zusammenfassung Reverse-Test:

4K = 56,38 MB/s
8K = 61,73 MB/s
16K = 40,64 MB/s
32K = 34,14 MB/s
64K = 34,14 MB/s
128K = 173,95 MB/s
256K = 241,19 MB/s
512K = 322,30 MB/s

😭 ... dieses neumodische TCP-Verhalten von Windows ist einfach nur krank.

Und ja, auch mit den V1.10 Optimierungen läuft die Sache noch nicht rund, sprich,
die Suche geht weiter. 😫

Liebe Netzwerkspezialisten MVP's & Co.
!!! Das ist der Dieselskandal unserer Branche und wir sollten wirklich mal so langsam anfangen diesen gemeinsam anständig aufzuarbeiten. !!!

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 07.02.2023 um 08:41:34 Uhr
Goto Top
Moin @Centlucky,

der Aufstand ist berrechtigt. Ich bin sehr lange bei uns verzweifelt, habe Nic,s getauscht, habe Switches getauscht usw.
Bis Du mit der Lösung gekommen bist. Bei uns rennt das 10G Netzwerk jetzt im Filetransfer mit mind 600-700 MB/s.
Zum Teil erreichen wir bis zu 1,14 GB/s wenn die Filegröße entsprechend ist. Selbst der Zugriff auf den SQL Server ist gefühlt wesentlich schneller.

herzlichen Dank für dein Feedback.

Für die Arbeit und das Teilen Deines Wissens bin ich Dir mehr als dankbar.

Na ja, damit diese Art von Sondermüll nicht entsteht, muss man diesen doch irgendwie an der Wurzel anpacken und ich alleine bin einfach viel zu klein für diese Wurzel, an der ich durchaus schon sehr kräftig und sehr oft gezogen habe.
Nun hoffe ich inständig, das wir mit vereinten Kräften, bei dieser Wurzel des Übels, nun etwas mehr erreichen können. 😁

Ich frage mich inzwischen auch, was MS da macht. Ist es Absicht oder Inkompetenz?

🤔 ... die Frage lautet nicht oder, sondern vielmehr in welchem Verhältnis? 😔

Gruss Alex
MysticFoxDE
MysticFoxDE 07.02.2023 um 23:15:07 Uhr
Goto Top
Moin @drnatur,

Ich habe mal mit dem Befehl "netsh int tcp reset" am fehlerhaften Client zumindest SMB wieder auf die volle Performance gebracht.

👍👍👍 ... damit hast du mir heute den Abend gerettet. 😁

Schau mal hier rein ...
https://community.spiceworks.com/topic/post/10309474

Gruss Alex
servicetool
servicetool 07.02.2023 um 23:29:56 Uhr
Goto Top
Hi,
Erst einmal vielen Dank für dein Zeit und Mühe.
Ich habe dein Script laufen lassen.
Danach hatte ich nur 200-600Mbyte/s Datendurchsatz
Normalerweise habe ich mit 10GB-Nic eine Übertragungsrate von 1Gigabyte/s
Zwischen den Servern besteht 40 GBit QSFP+ Verbindung und bisher hatte ich bis zu 3,8 Gigabyte/s (HP Proliant mit NVME-Drives)
Nach deinem Script nur noch schwankend 200-600 Mbyte/s

Die Erklärung war schnell gefunden.
RSS deaktivieren macht alles langsamer

Lass dieses Script laufen und wirst merken was ich meine. Du musst natürlich RSS wieder aktivieren.
https://forums.lenovo.com/t5/ThinkSystem/Windows-Server-Powershell-scrip ...

https://de.linkedin.com/pulse/numa-suma-architekturen-kontext-von-virtua ...

http://wiki.webperfect.ch/index.php?title=Hyper-V:_Receive_Side_Scaling ...

https://www.broadcom.com/support/knowledgebase/1211161326328/rss-and-vmq ...

Ich mache das aktuell so:
1. Dein Script
2. das lenovo-Script
3. Nachoptimierung mit den RSS-CPU´s und NumberOfReceiveQueues

Dann ist am Ende wieder alles schnell

Jetzt wäre es natürlich echt cool, wenn jemand wie du alles in ein fertiges Script zusammenbaut

Grüße aus NRW
Mastermind1
Mastermind1 09.02.2023 um 12:01:21 Uhr
Goto Top
Ich würde alternativ noch iperf3 ins rennen werfen.

iperf3.exe -c SERVERNAME

Bei mir erreiche ich mittels PSTOOLs64 60-80MB/s. Bei zwei 10Gbit Adaptern.

Mit iperf3 dagegen erreiche ich gute 2 Gbit/s.
MysticFoxDE
MysticFoxDE 09.02.2023 um 12:43:27 Uhr
Goto Top
Moin @Mastermind1,

Ich würde alternativ noch iperf3 ins rennen werfen.
iperf3.exe -c SERVERNAME
Bei mir erreiche ich mittels PSTOOLs64 60-80MB/s. Bei zwei 10Gbit Adaptern.
Mit iperf3 dagegen erreiche ich gute 2 Gbit/s.

das kommt davon, weil PsPing und iperf3 ohne die Angabe von zusätzlichen Parametern, per default mit vollkommen unterschiedlichen Parametern testen.

Wenn du jedoch bei iperf3 und bei PsPing dieselben Parameter setzt, dann solltest du als Ergebnis bei beiden +- auch ähnliche Werte zurückbekommen.

Bsp.
PsPing
psping64.exe -b -l 32k -n 10s -w 0 -i 4 -h 172.16.240.2:5000

iperf3
iperf3.exe -l32k -fm -P4 -t10 -c 172.16.240.2

Gruss Alex
Mastermind1
Mastermind1 09.02.2023 aktualisiert um 15:40:59 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @Mastermind1,

Ich würde alternativ noch iperf3 ins rennen werfen.
iperf3.exe -c SERVERNAME
Bei mir erreiche ich mittels PSTOOLs64 60-80MB/s. Bei zwei 10Gbit Adaptern.
Mit iperf3 dagegen erreiche ich gute 2 Gbit/s.

das kommt davon, weil PsPing und iperf3 ohne die Angabe von zusätzlichen Parametern, per default mit vollkommen unterschiedlichen Parametern testen.

Wenn du jedoch bei iperf3 und bei PsPing dieselben Parameter setzt, dann solltest du als Ergebnis bei beiden +- auch ähnliche Werte zurückbekommen.

Bsp.
PsPing
psping64.exe -b -l 32k -n 10s -w 0 -i 4 -h 172.16.240.2:5000

iperf3
iperf3.exe -l32k -fm -P4 -t10 -c 172.16.240.2

Gruss Alex


Direkter Vergleich auf denselben Systeme mit PSPING64 2.1 und IPERF 3.1.3.

PSPING64 je nach Blockgröße 40 - 250MB/s (umso größer umso besser).
IPERF je nach Blockgröße 400 - 2000MBits/s.... (50 - 250MB/s)
Da ist mir nun die Schreibweise auf den Fuss gefallen..

PSPING gibt in MegaBYTE/s an.... und IPERF dagegen in MegaBits/s

Das man da noch drüberstoplern kann....
Sorry...

Ergo sind die Ergebnisse 1zu1 identisch... Egal ob PSPING64 oder IPERF...

Was müsste den bei ner 10GBit Umgebung möglich sein?
Centlucky
Centlucky 09.02.2023 um 15:48:14 Uhr
Goto Top
Ich habe 600-700 MB/s nach der Optimierung auf dem 10G Netz
Manchmal auch bis zu 1,14 GB/s, kommt auf die Filegröße an.

Vor der Optimierung hatte ich 200-300 MB/s , manchmal 500 MB/s
MysticFoxDE
MysticFoxDE 09.02.2023 aktualisiert um 15:59:17 Uhr
Goto Top
Moin @Mastermind1,

Das man da noch drüberstoplern kann....
Sorry...
Ergo sind die Ergebnisse 1zu1 identisch... Egal ob PSPING64 oder IPERF...

alles gut, über diesen Stein bin auch schon paar mal gestolpert. 🤪

Was müsste den bei ner 10GBit Umgebung möglich sein?

16K
psping-10g-16k

32K
psping-1og-32k

64K
psping-10g-64k

Und das sogar ohne die Elefantenframes. 😎

Gruss Alex
MysticFoxDE
MysticFoxDE 10.02.2023 um 09:00:07 Uhr
Goto Top
Moin @servicetool,

Erst einmal vielen Dank für dein Zeit und Mühe.
Ich habe dein Script laufen lassen.
Danach hatte ich nur 200-600Mbyte/s Datendurchsatz
Normalerweise habe ich mit 10GB-Nic eine Übertragungsrate von 1Gigabyte/s
Zwischen den Servern besteht 40 GBit QSFP+ Verbindung und bisher hatte ich bis zu 3,8 Gigabyte/s (HP Proliant mit NVME-Drives)
Nach deinem Script nur noch schwankend 200-600 Mbyte/s

ja und genau aus diesem Grund habe ich auch oben ganz ausdrücklich darauf hingewiesen, das dieses Optimierung-Skript für Cients und nicht für Server gedacht ist.

Die Erklärung war schnell gefunden.
RSS deaktivieren macht alles langsamer

Das ist nicht ganz korrekt so, durch das aktivieren von RSS hast du jetzt zwar einen höheren Durchsatz dafür aber auch eine Höhere Übertragungslatenz. Niedrige Latenzen sind bei den meisten Enterprise-Applikationen viel wichtiger wie ein hoher Durchsatz. 😉

Lass dieses Script laufen und wirst merken was ich meine. Du musst natürlich RSS wieder aktivieren.
https://forums.lenovo.com/t5/ThinkSystem/Windows-Server-Powershell-scrip ...

Dein oben geposteter Link ist unvollständig und funktioniert daher nicht.
https://forums.lenovo.com/t5/ThinkSystem/Windows-Server-Powershell-scrip ...

Ich kennen diesen Beitrag schon, jedoch würde ich die pauschale Ausführung dieses Skripts nicht wirklich empfehlen, weil es mit der folgenden Anomalie absolut nicht umgehen kann.

https://community.spiceworks.com/topic/2468243-the-windows-horror-story- ...


https://community.spiceworks.com/topic/post/8845561


Dieser Artikel ist veralten, das er noch auf VMQ und nicht auf VMMQ oder DVMMQ eingeht.


Und auch dieser Broadcom Artikel ist veraltet.
Ausserdem hat Broadcom beim Schreiben von diesem noch gar nicht gerafft, dass die RSS-Core-Konfiguration sich 1:1 auch auf die VMQ-Core-Konfiguration auswirkt.
Sprich, wenn du einmal dein RSS-Processor-Array für eine bestimmte NIC festgelegt hast, dann gilt diese Konfiguration auch für VMQ. Umgekehrt ist es dasselbe, verändert man die VMQ-Core-Zuordnung einer NIC, dann verändert man damit zugleich auch deren VMQ-Core-Zuordnung.

Ich mache das aktuell so:
1. Dein Script
2. das lenovo-Script
3. Nachoptimierung mit den RSS-CPU´s und NumberOfReceiveQueues

Dann ist am Ende wieder alles schnell

ja ... aber zu welchen CPU Kosten?

Jetzt wäre es natürlich echt cool, wenn jemand wie du alles in ein fertiges Script zusammenbaut

Wenn mir jemand ein Mannjahr sponsert, dann kann ich vielleicht ein solches Skript erstellen,
welches ohne viel Fachwissen und Nachoptimierungsaufwand, quasi, pauschal auf allen Serversystemen anwendbar ist. Darunter ist ein solches Skript wegen dem ganzen unterschiedlichen Hardware- und auch Softwarezoo der auf diesem Planeten existiert, leider nicht wirklich realisierbar. 😔

Selbst das Clientoptimierungsskript, welches doch recht wenig macht, läuft nicht wirklich auf allen Systemen 100% rund und muss ständig nachjustiert werden. 😩

So, jetzt muss ich aber weiter flitzen.

Gruss Alex
TimmeyDD
TimmeyDD 21.02.2023 um 18:19:11 Uhr
Goto Top
Hi. Ich wollte kurz Rückmeldung geben. Bin heut früh über diesen Thread gestolpert und musste das Skript direkt ausprobieren. System war (dazu komm ich noch) Win 11 Pro 22H2 baremetal auf einem Lenovo Yoga 7 14 ARB7. Getestete Netzwerkinterfaces sind jeweils das integrierte RZ616 (WiFi 6E) und ein Asix AX88179A (Lan) in einem USB-Dock.
Gegenstelle ist ein HP Microserver G10+ mit aktuell einem aktiven Gigabit Port.

Es ist tatsächlich so,dass jeglicher Netzwerkverkehr besser läuft/flüssiger reagiert. Das geht schon beim Netzwerkdiscovery los und macht sich auch beim öffnen von SMB-Freigaben und dem kopieren von Dateien/Ordnerwechseln bemerkbar.
Nebenwirkungen habe ich keine feststellen können.

Da ich auch den Thread in der Spiceworks Community gelesen habe und dort die Rede davon war,dass der Download (Server > Client) langsamer läuft:

"Now I just need to improve the reverse performance a little and then the problem is maybe fully solved (Client Side)"

Das Problem wirst du mit dem optimieren von TCP/IP nicht lösen können,da Microsoft bei der 22H2 etwas grundlegendes am Kernel versaut hat,was bei großen Dateien per SMB zu 40% Leistungseinbruch führt und sich scheinbar nicht ohne weiteres lösen lässt.
Zumindest lassen die sich seit über einem halben Jahr Zeit mit der Lösung. Urpsrünglich wurde das Problem Samba zugeschrieben aber später eingeräumt,dass das das gesamte Speichersubystem,genauer irgendetwas mit den I/O Buffern betrifft. Mehr Details waren auf die Schnelle aber nicht zu finden.

Das Problem tritt erst mit der 22H2 auf,darum mein obiges "war". Ich hab das System pragmatisch auf 21H2 zurück"migriert" und jetzt läuft SMB mit knapp 114MB/s im UP- und Download,so wie es sein sollte. Vorher waren es 114 / 70-80 MB/s.

Möglicherweise hilft das ja einigen,sich die Zeit zu sparen oder um Druck zu machen.
MysticFoxDE
MysticFoxDE 21.02.2023 aktualisiert um 18:45:19 Uhr
Goto Top
Moin @TimmeyDD,

als erstes, herzlichen Dank für dein sehr ausführliches Feedback. 👍👍👍
Ich muss mich beim Rest aber kurzfassen, da ich gerade etwas im Stress bin.

Das Problem wirst du ... nicht lösen können, da Microsoft bei der 22H2 etwas grundlegendes am Kernel versaut hat,was bei großen Dateien per SMB zu 40% Leistungseinbruch führt und sich scheinbar nicht ohne weiteres lösen lässt.

aber sicher ...

https://community.spiceworks.com/topic/post/10316756

😁

Das Problem tritt erst mit der 22H2 auf,darum mein obiges "war". Ich hab das System pragmatisch auf 21H2 zurück"migriert" und jetzt läuft SMB mit knapp 114MB/s im UP- und Download,so wie es sein sollte. Vorher waren es 114 / 70-80 MB/s.

Schalte mal den Phishing-Schutz aus und teste bitte nochmals, danke.

Beste Grüsse aus BaWü

Alex
mehmetk
mehmetk 22.02.2023 um 00:20:09 Uhr
Goto Top
Hallo,

habe dein Skript ausprobiert erhalte jedoch eine Reihe von Fehlermeldungen.
Habe win11 mit einem AMD Ryzen 5 pro.


Ich habe vor kurzem das PowerShell-7.3.2-win-x64.msi installiert weiß nicht ob es damit zu tun hat.
Er zeigt die Fehler genau an mit Zeilennummer und Zeichenposition sagt mir aber nichts.
Ihn stört irgendwie das kafmännische &.

Hier die Fehlermeldung:


Sicherheitswarnung
Führen Sie ausschließlich vertrauenswürdige Skripts aus. Skripts aus dem Internet können zwar nützlich sein, stellen
jedoch auch eine potenzielle Gefahr für Ihren Computer dar. Wenn Sie diesem Skript vertrauen, lassen Sie mit dem Cmdlet
"Unblock-File" die Ausführung des Skripts ohne die Warnmeldung zu. Möchten Sie "E:\--------PROGRAMME--------\Windows
11\Skript für schnelles internet unter win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1" ausführen?
[N] Nicht ausführen [M] Einmal ausführen [H] Anhalten [?] Hilfe (Standard ist "N"): m
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:202 Zeichen:17

back-to-topSign&nbsp;up

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:207 Zeichen:209

back-to-top... k Button--medium Button d-lg-none color-fg-inherit p-1"> <span cla ...

back-to-top~

Der Operator "<" ist für zukünftige Versionen reserviert.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:425 Zeichen:13

back-to-topCI/CD &amp; Automation

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:96

back-to-top... ="" data-disable-with="" data-dropdown-tracking="{&quot;type&quot;:&q ...

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:103

back-to-top... a-disable-with="" data-dropdown-tracking="{&quot;type&quot;:&quot;blo ...

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:146

back-to-top... &quot;type&quot;:&quot;blob_edit_dropdown.more_options_click&quot;,&q ...

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:153

back-to-top... type&quot;:&quot;blob_edit_dropdown.more_options_click&quot;,&quot;co ...

back-to-top~

Ausdruck fehlt nach dem unären Operator ",".
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:153

back-to-top... ype&quot;:&quot;blob_edit_dropdown.more_options_click&quot;,&quot;con ...

back-to-top~

Unerwartetes Token "&" in Ausdruck oder Anweisung.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:166

back-to-top... ot;blob_edit_dropdown.more_options_click&quot;,&quot;context&quot;:{& ...

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
In E:\--------PROGRAMME--------\Windows 11\Skript für schnelles internet unter
win11\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:193

back-to-top... options_click&quot;,&quot;context&quot;:{&quot;repository_id&quot;:59 ...

back-to-top~

Das kaufmännische Und-Zeichen (&) ist nicht zulässig. Der &-Operator ist für eine zukünftige Verwendung reserviert.
Verwenden Sie das kaufmännische Und-Zeichen in doppelten Anführungszeichen ("&"), um es als Teil einer Zeichenfolge zu
übergeben.
Es wurden nicht alle Analysefehler berichtet. Korrigieren Sie die berichteten Fehler, und versuchen Sie es erneut.
+ CategoryInfo : ParserError: (face-smile , ParseException
+ FullyQualifiedErrorId : AmpersandNotAllowed


Grüße Mehmet
Mastermind1
Mastermind1 22.02.2023 um 07:30:06 Uhr
Goto Top
MysticFoxDE
MysticFoxDE 22.02.2023 um 08:16:52 Uhr
Goto Top
Moin @mehmetk,

Ich habe vor kurzem das PowerShell-7.3.2-win-x64.msi installiert weiß nicht ob es damit zu tun hat.
Er zeigt die Fehler genau an mit Zeilennummer und Zeichenposition sagt mir aber nichts.
Ihn stört irgendwie das kafmännische &.

von diesem Problem habe ich schon stellenweise gehört.
Mit dem folgenden Trick, lässt sich dieses aber umgehen.

ISE als Administrator starten, Code in das weise Fenster reinkopieren und dann den grünen Pfeil nach rechts drücken. 😉

ise-admin-script

Beste Grüsse aus BaWü
Alex
Silverstream
Silverstream 22.02.2023 aktualisiert um 08:49:32 Uhr
Goto Top
@mehmetk

Du hast wahrscheinlich auf der Github Seite => rechte Maustaste auf das Script und "Link speichern unter" geklickt.

Dann wird aber die Webseite mit dem Namen des Scripts gespeichert, nicht der Inhalt des Scripts selber.
Bin ich eben auch drüber gestolpert (jaja, der Kaffee läuft erst noch :D )

Also am Besten den Inhalt des Scripts kopieren und in die Datei einfügen wie Alex beschrieben hat.
kgborn
kgborn 22.02.2023 aktualisiert um 10:59:03 Uhr
Goto Top
@Mastermind1: Ja, hab das Thema mit Alex etwas breiter zu streuen versucht. Einmal gibt es in meinem Blog eine Artikelreihe, die noch ausgebaut wird (gibt noch weitere Klopper, vor allem in Windows 11) - Einstieg über:

Optimierung von Microsofts TCP-Murks in Windows 10 und 11

Und ich habe das Thema gestern noch auf Golem als Die versteckte Netzwerkbremse in Windows 10 und 11 veröffentlicht - beide Beiträge sind eine Kompaktzusammenfassung dessen, was Alex hier und in anderen Threads an Information abgeladen hat. Die Leute, die sich intensiver mit der Thematik befasst haben - kommen durchaus mit recht positiver Resonanz zurück (sehe ich hier sowie im Blog).
Visucius
Visucius 22.02.2023 um 12:55:40 Uhr
Goto Top
ShangFu
ShangFu 22.02.2023 um 18:04:59 Uhr
Goto Top
Hier mal kleines Feedback von meiner Seite.

Script musste ich manuell in die PowerShell reinkopieren. Das Script mit Admin Rechten zu öffnen war nicht so meins ^^

Ich merke definitiv einen Schnelligkeitsgewinn, ob im Browser oder innerhalb von Steam.

Kann nur empfehlen vorher den Virenscanner auszumachen, der war nicht begeistern vom Script xD (Bitdefender).


Tolle Leistung und danke für das teilen dieses Wissens
mehmetk
mehmetk 22.02.2023 um 18:07:42 Uhr
Goto Top
Hallo,

danke geht jetzt, mußte das Skript 4 mal durchlaufen lassen aber dann gings.
Noch ein paar meldungen aber läuft.

Grüße
Mehmet
ErSpec7Re
ErSpec7Re 22.02.2023 um 19:02:37 Uhr
Goto Top
Hi,

habe heute das Script auf Win 11 Enterprise PC mit Intel I226 Lan und Wlan AX Adaptern installiert. Anschließend nach Neustart war die gesamte Netzwerk Verbindung zum Router unterbrochen, Wifi Verbindungen konnten nicht hergestellt oder verbunden werden. Musste Router und alle Geräte neu starten, danach war die Internet Verbindung und Wlan auch wieder verbunden.
Leider habe ich nun seither und Installation des Scriptes, das Problem unter Win 11 festegestellt, unten links in der Taskleiste wird das Wetter Symbol (Widgets) nicht mehr aktualisiert. Wenn ich Widgets starte, kommen graue leere Spalten, wo vorher die Widgets waren. In den Spalten sind nun dauernd ladende graue Balken zu Sehen, die nicht ganz zu Ende geladen werden können.
Ich vermute das Widget Programm kann keine Verbindung mehr zum Netzwerk herstellen.
Habe später das Script komplett deinstalliert und auch Win. Widgets deinstalliert und neu installiert und zum Schluss die Win. Firewall zurückgesetzt, leider alles ohne Verbesserung, bin nun am Verzweifeln.
MysticFoxDE
MysticFoxDE 22.02.2023 aktualisiert um 19:35:10 Uhr
Goto Top
Moin @ErSpec7Re,

"Anschließend nach Neustart war die gesamte Netzwerk Verbindung zum Router unterbrochen, Wifi Verbindungen konnten nicht hergestellt oder verbunden werden. Musste Router und alle Geräte neu starten, danach war die Internet Verbindung und Wlan auch wieder verbunden."

also, wenn, dann hat das Script nur Auswirkung auf den Rechner auf dem es ausgeführt wird.
Eine Störung des Routers oder anderer Geräte die über diesen laufen, ist nahezu ausgeschlossen.

Leider habe ich nun seither und Installation des Scriptes, das Problem unter Win 11 festegestellt, unten links in der Taskleiste wird das Wetter Symbol (Widgets) nicht mehr aktualisiert. Wenn ich Widgets starte, kommen graue leere Spalten, wo vorher die Widgets waren. In den Spalten sind nun dauernd ladende graue Balken zu Sehen, die nicht ganz zu Ende geladen werden können.
Ich vermute das Widget Programm kann keine Verbindung mehr zum Netzwerk herstellen.
Habe später das Script komplett deinstalliert und auch Win. Widgets deinstalliert und neu installiert und zum Schluss die Win. Firewall zurückgesetzt, leider alles ohne Verbesserung, bin nun am Verzweifeln.

Nur die Ruhe, auch dieses seltene Problem ist bekannt.

Führe mal bitte als Nächstes das folgende aus ...

netsh interface tcp reset

danach Rechner durchbooten, dann das Optimierungsskript nochmals laufen lassen und nochmals durchbooten und schon müsste das Problem weg sein.

Ansonsten kannst du jegliche Änderung die das Optimierungsskript vorgenommen hat, auch mit den folgenden Skript wieder rückgängig machen.

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Gruss Alex
ShangFu
ShangFu 22.02.2023 um 19:54:16 Uhr
Goto Top
Mir ist ein neues Problem aufgefallen. Ich habe keine Möglichkeit mehr mich mit meinem Hotspot unter Windows 11 Pro aktuellste Updates mit einem iPad zu verbinden. Vor den Änderung mit dem Script war das ohne Problem möglich.

Gibts da einen Workaround ?
ErSpec7Re
ErSpec7Re 22.02.2023 um 20:17:30 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @ErSpec7Re,

"Anschließend nach Neustart war die gesamte Netzwerk Verbindung zum Router unterbrochen, Wifi Verbindungen konnten nicht hergestellt oder verbunden werden. Musste Router und alle Geräte neu starten, danach war die Internet Verbindung und Wlan auch wieder verbunden."

also, wenn, dann hat das Script nur Auswirkung auf den Rechner auf dem es ausgeführt wird.
Eine Störung des Routers oder anderer Geräte die über diesen laufen, ist nahezu ausgeschlossen.

Leider habe ich nun seither und Installation des Scriptes, das Problem unter Win 11 festegestellt, unten links in der Taskleiste wird das Wetter Symbol (Widgets) nicht mehr aktualisiert. Wenn ich Widgets starte, kommen graue leere Spalten, wo vorher die Widgets waren. In den Spalten sind nun dauernd ladende graue Balken zu Sehen, die nicht ganz zu Ende geladen werden können.
Ich vermute das Widget Programm kann keine Verbindung mehr zum Netzwerk herstellen.
Habe später das Script komplett deinstalliert und auch Win. Widgets deinstalliert und neu installiert und zum Schluss die Win. Firewall zurückgesetzt, leider alles ohne Verbesserung, bin nun am Verzweifeln.

Nur die Ruhe, auch dieses seltene Problem ist bekannt.

Führe mal bitte als Nächstes das folgende aus ...

netsh interface tcp reset

danach Rechner durchbooten, dann das Optimierungsskript nochmals laufen lassen und nochmals durchbooten und schon müsste das Problem weg sein.

Ansonsten kannst du jegliche Änderung die das Optimierungsskript vorgenommen hat, auch mit den folgenden Skript wieder rückgängig machen.

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Gruss Alex

Es ist leider genau so vorgefallen, bis zum ausführen des Sciptes lief alles einwandfrei! Das mein Pc nicht zum Wlan verbunden werden konnte und auch der Router abgestürzt ist im Anschluss, konnte ich sogar auf die andere Geräte z.B Ipads feststellen. So ein Absturz hatte ich vorher nicht! Klar kann es auch andere Gründe gehabt haben, nur ist es sofort im Anschluss des Scripts abgestürzt!

Habe nun den geposteten Parameter netsh interface tcp reset (cmd) ausgeführt und Pc neu gestartet, anschliessend von Github den Deinstaller Backupoptimierung Heruntergeladen und ausgeführt und anschließend Pc neu gestartet, leider hat alles keine Besserung herbei geführt.

Wetter und Widgets gehen nach wie vor nicht mehr in der Taskleiste und Widgets starten nicht mehr und ist in einer sogenannten dauerschleife?!

Muss dazu sagen bei mir ist Win 22H2 Beta 22263 installiert, bin im Beta Update channel gewesen, ob das damit zusammenhängt? Nachdem ich das Optimierungs Script ausgeführt hatte, kamen auch paar Fehlermeldungen?!
Wie kann ich denn jetzt überprüfen, ob wirklich alles zurückgesetzt wurde, kann man das noch unter Windows alles zurücksetzen in den Einstellungen?!
139689
139689 23.02.2023 aktualisiert um 09:09:57 Uhr
Goto Top
"Cloud first, mobile first" (oder vielleicht "wenn sie kein Brot haben, sollen sie doch Kuchen essen")

So läuft es leider bei einer solchen Monopolstellung, wo dann eher kleinere Unternehmen oder die, die nicht alles genau so mitmachen (alles in Azure laufen lassen usw) wie es der Hersteller denkt, das Nachsehen haben.

Ich finde es toll, was du hier herausgefunden und zur Verfügung gestellt hast. Bin mir sicher, dass damit vielen geholfen werden kann!
Danke dafür!
MysticFoxDE
MysticFoxDE 23.02.2023 um 07:34:29 Uhr
Goto Top
Moin @ErSpec7Re,

Es ist leider genau so vorgefallen, bis zum ausführen des Sciptes lief alles einwandfrei! Das mein Pc nicht zum Wlan verbunden werden konnte und auch der Router abgestürzt ist im Anschluss, konnte ich sogar auf die andere Geräte z.B Ipads feststellen. So ein Absturz hatte ich vorher nicht! Klar kann es auch andere Gründe gehabt haben, nur ist es sofort im Anschluss des Scripts abgestürzt!

ich glaub dir schon, dass du diese Probleme hattest, nur kann mein Skript damit nicht wirklich was zu tun haben,
zumindest nicht mit den Problemen des Routers und anderer an diesem angeschlossenen Geräte.
Denn wenn dieses diese Macht hätte, dann würde ich es sofort dem BND als Angriffs-Bundestrojaner verkaufen. 🤪

Habe nun den geposteten Parameter netsh interface tcp reset (cmd) ausgeführt und Pc neu gestartet, anschliessend von Github den Deinstaller Backupoptimierung Heruntergeladen und ausgeführt und anschließend Pc neu gestartet, leider hat alles keine Besserung herbei geführt.

🤔 ... das ist aber komisch, damit werden sämtlich zuvor vorgenommenen Einstellungen, komplett wieder zurückgesetzt.

Siehe auch ...
https://www.borncity.com/blog/2023/01/30/microsofts-tcp-murks-in-windows ...

Wetter und Widgets gehen nach wie vor nicht mehr in der Taskleiste und Widgets starten nicht mehr und ist in einer sogenannten dauerschleife?!

Kannst du mal das Optinierungsskript nur bis Zeile 127 laufen lassen und mir dann die Ergebnisse aus "WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log" die im "C:\BACKUP" liegt mal zukommen lassen.
Damit wird nur eine Sicherung deiner aktuellen Eistellungen gemacht, die ich gerne abgleichen möchte.

Muss dazu sagen bei mir ist Win 22H2 Beta 22263 installiert, bin im Beta Update channel gewesen, ob das damit zusammenhängt? Nachdem ich das Optimierungs Script ausgeführt hatte, kamen auch paar Fehlermeldungen?!

Hast du das Skript zu 100% als Administrator ausgeführt?

Wie kann ich denn jetzt überprüfen, ob wirklich alles zurückgesetzt wurde, kann man das noch unter Windows alles zurücksetzen in den Einstellungen?!

Wenn du das "W10ANDW11-NETWORK-TCP-BACKSUBOPTIMIZATION.ps1" ausgeführt hast, dann ist alles was zuvor durch das "Update W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1" Skript verändert wurde, zu 100% wieder auf default.

Dennoch komisch, den dieses Problemverhalten das du beschreibst, haben auch andere schon beschrieben, die mein Skript noch gar nicht kannten. 🤔

https://answers.microsoft.com/en-us/windows/forum/all/windows-11-widgets ...

Sind die Treiber deiner NIC's und der der Graka auf dem aktuellsten Stand?

Beste Grüsse aus BaWü
Alex
TimmeyDD
TimmeyDD 23.02.2023 um 10:15:05 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @TimmeyDD,

als erstes, herzlichen Dank für dein sehr ausführliches Feedback. 👍👍👍
Ich muss mich beim Rest aber kurzfassen, da ich gerade etwas im Stress bin.

Das Problem wirst du ... nicht lösen können, da Microsoft ..r nicht ohne weiteres lösen lässt.

aber sicher ...

https://community.spiceworks.com/topic/post/10316756

😁

Das Problem tritt erst mit der 22H2 auf,darum mein obiges "war". Ich hab das System pragmatisch auf 21H2 zurück"migriert" und jetzt läuft SMB mit knapp 114MB/s im UP- und Download,so wie es sein sollte. Vorher waren es 114 / 70-80 MB/s.

Schalte mal den Phishing-Schutz aus und teste bitte nochmals, danke.

Beste Grüsse aus BaWü

Alex

Hallo, der Phishing Schutz ist neben den Cloud und Empfehlungsfunktionen ist das Erste,was ich auf einem neuen System ausschalte.

Das Problem soll von MS angeblich mit dem KB5022913 (22621.1343) gelöst sein,das ist aber noch ein Insider/Betaupdate.

Unabhängig davon ist nach dem Ausführen des Skriptes wie schon angemerkt,tatsächlich eine deutliche Verbesserung der Latenzen (insbesondere bei NAS Zugriffen) zu bemerken. Zugriffe aufs Netzlaufwerk fühlen sich an,als wären die HDDs lokal verbaut. Die vorherigen "Denksekunden" beim ersten Zugriff oder einem Ordnerwechsel sind einfach weg.

Sehr gute Arbeit deinerseits. face-smile

Viele Grüße zurück
onestrator
onestrator 23.02.2023 um 11:23:53 Uhr
Goto Top
Hi, habe das Skript auf einem Rechner mit Windows 11 Pro ausgeführt. Internetverbindung läuft über ProtonVPN Free. Habe vorher und danach die Speedtest App von speedtest.net ausgeführt. Das Ergebnis schaut nicht gut aus.
screenshot_2
3063370895
3063370895 23.02.2023 um 11:28:10 Uhr
Goto Top
Zitat von @onestrator:

Hi, habe das Skript auf einem Rechner mit Windows 11 Pro ausgeführt. Internetverbindung läuft über ProtonVPN Free. Habe vorher und danach die Speedtest App von speedtest.net ausgeführt. Das Ergebnis schaut nicht gut aus.


Hi,
mach doch mal vernünftige Speedtests, die nicht über einen kostenlosen VPN laufen. Da kann man doch nichts von ableiten.
onestrator
onestrator 23.02.2023 um 11:35:36 Uhr
Goto Top
Zitat von @chaot1coz:

Zitat von @onestrator:

Hi, habe das Skript auf einem Rechner mit Windows 11 Pro ausgeführt. Internetverbindung läuft über ProtonVPN Free. Habe vorher und danach die Speedtest App von speedtest.net ausgeführt. Das Ergebnis schaut nicht gut aus.


Hi,
mach doch mal vernünftige Speedtests, die nicht über einen kostenlosen VPN laufen. Da kann man doch nichts von ableiten.

Ja, subjektiv könntest du recht haben. Objektiv habe ich in der aktuellen Konstellation (mehrere Wochen) immer relativ ziemlich konstante Ergebnisse gehabt. Just in dem Moment nach der Ausführung des Skripts ändern sich die Ergebnisse drastisch. Hmmmm
onestrator
onestrator 23.02.2023 um 11:36:54 Uhr
Goto Top
Zitat von @onestrator:

Zitat von @chaot1coz:

Zitat von @onestrator:

Hi, habe das Skript auf einem Rechner mit Windows 11 Pro ausgeführt. Internetverbindung läuft über ProtonVPN Free. Habe vorher und danach die Speedtest App von speedtest.net ausgeführt. Das Ergebnis schaut nicht gut aus.


Hi,
mach doch mal vernünftige Speedtests, die nicht über einen kostenlosen VPN laufen. Da kann man doch nichts von ableiten.

Ja, subjektiv könntest du recht haben. Objektiv habe ich in der aktuellen Konstellation (mehrere Wochen) immer relativ ziemlich konstante Ergebnisse gehabt. Just in dem Moment nach der Ausführung des Skripts ändern sich die Ergebnisse drastisch. Hmmmm

Habe nun das "BACKSUBOPTIMIZATION"-Skript ausgeführt. Die "schlechten"-Ergebnisse sind geblieben.
MysticFoxDE
MysticFoxDE 23.02.2023 um 12:03:12 Uhr
Goto Top
Moin @onestrator.

Habe nun das "BACKSUBOPTIMIZATION"-Skript ausgeführt. Die "schlechten"-Ergebnisse sind geblieben.

Das ist schräg, den dieses setzt alle vorher optimierten Einstellungen, wieder auf default zurück.

🤔 ... Lösch mal den folgenden Key aus der Registry raus.

reg-01

Danach Rechner einmal rebooten.

Gruss Alex
onestrator
onestrator 23.02.2023 um 12:28:25 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @onestrator.

Habe nun das "BACKSUBOPTIMIZATION"-Skript ausgeführt. Die "schlechten"-Ergebnisse sind geblieben.

Das ist schräg, den dieses setzt alle vorher optimierten Einstellungen, wieder auf default zurück.

🤔 ... Lösch mal den folgenden Key aus der Registry raus.

reg-01

Danach Rechner einmal rebooten.

Gruss Alex

Danke für die Antwort, ich habe sie leider zu spät gesehen.

Ich habe den Speedtest auch ohne ProtonVPN ausprobiert --> gleiches "schlechtes" Ergebnis.

Ich habe die folgenden Befehle ausgeführt, um die Netzwerkeinstellungen zurückzusetzen:

netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

und auch den Netzwerk-Adapter deinstalliert.

Nach dem Neustart läuft alles wie vorher. Die schlechten Speedtest-Ergebnisse wurden definitiv durch das Skript ausgelöst, welche Einstellungen genau, kann ich nicht sagen.
MysticFoxDE
MysticFoxDE 23.02.2023 aktualisiert um 12:54:32 Uhr
Goto Top
Zitat von @onestrator,

netsh winsock reset

🤔 ... OK ... an den habe ich noch nicht gedacht, vielleicht setzt der winsock reset den einen oder anderen Murks auch noch zurück. Danke für den Hinweis.

Nach dem Neustart läuft alles wie vorher. Die schlechten Speedtest-Ergebnisse wurden definitiv durch das Skript ausgelöst, welche Einstellungen genau, kann ich nicht sagen.

Dann führ bitte jetzt das Optimierungsskript nochmals aus und und mache danach einen neuen Test, danke.
Ich weis, kling leicht verwirrend, aber du würdest mir und auch anderen, damit bei der Eingrenzung eines weiteren Problems, sehr helfen.

Gruss Alex
onestrator
onestrator 23.02.2023 um 13:26:07 Uhr
Goto Top
Zitat von @MysticFoxDE:

Zitat von @onestrator,

netsh winsock reset

🤔 ... OK ... an den habe ich noch nicht gedacht, vielleicht setzt der winsock reset den einen oder anderen Murks auch noch zurück. Danke für den Hinweis.

Nach dem Neustart läuft alles wie vorher. Die schlechten Speedtest-Ergebnisse wurden definitiv durch das Skript ausgelöst, welche Einstellungen genau, kann ich nicht sagen.

Dann führ bitte jetzt das Optimierungsskript nochmals aus und und mache danach einen neuen Test, danke.
Ich weis, kling leicht verwirrend, aber du würdest mir und auch anderen, damit bei der Eingrenzung eines weiteren Problems, sehr helfen.

Gruss Alex

Habe das Skript noch mal ausgeführt, im screenshot sind die Ergebnisse. Ich muss meine Aussage korrigieren, es lag nicht am Skript! Zumindest nicht ausschließlich?!

Kann es sein, dass das Skript mit irgendwelchen Netzwerkeinstellungen kollidiert, welche es nicht verändert, die aber vorher irgendwann verändert wurden (die eben nicht mehr auf default stehen)? Und durch den manuellen Reset dieser bestimmten Einstellungen wurde das Problem behoben?
screenshot_1
MysticFoxDE
MysticFoxDE 23.02.2023 um 13:53:04 Uhr
Goto Top
Moin @onestrator,

Habe das Skript noch mal ausgeführt, im screenshot sind die Ergebnisse. Ich muss meine Aussage korrigieren, es lag nicht am Skript! Zumindest nicht ausschließlich?!

das beweist eher, dass es gar nicht am Skript lag.

Kann es sein, dass das Skript mit irgendwelchen Netzwerkeinstellungen kollidiert, welche es nicht verändert, die aber vorher irgendwann verändert wurden (die eben nicht mehr auf default stehen)? Und durch den manuellen Reset dieser bestimmten Einstellungen wurde das Problem behoben?

Du hast durch die Resets ein Probleme behoben, das du so auch schon vorher hattest.
Denn das was dir heute passiert ist unterstreicht extremst die Vermutung, dass die Microsoftianer in der Installationskonfiguration ganz andere Default-Werte benutzen, wie diese durch die TCP und oder WINSOCK Resets wiederhergestellt werden. 😔

Ja, klingt extrem wirr, aber so denken die Microsoftianer heutzutage eben.

Beste Grüsse aus BaWü
Alex
onestrator
onestrator 23.02.2023 um 14:01:35 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @onestrator,

Habe das Skript noch mal ausgeführt, im screenshot sind die Ergebnisse. Ich muss meine Aussage korrigieren, es lag nicht am Skript! Zumindest nicht ausschließlich?!

das beweist eher, dass es gar nicht am Skript lag.

Kann es sein, dass das Skript mit irgendwelchen Netzwerkeinstellungen kollidiert, welche es nicht verändert, die aber vorher irgendwann verändert wurden (die eben nicht mehr auf default stehen)? Und durch den manuellen Reset dieser bestimmten Einstellungen wurde das Problem behoben?

Du hast durch die Resets ein Probleme behoben, das du so auch schon vorher hattest.
Denn das was dir heute passiert ist unterstreicht extremst die Vermutung, dass die Microsoftianer in der Installationskonfiguration ganz andere Default-Werte benutzen, wie diese durch die TCP und oder WINSOCK Resets wiederhergestellt werden. 😔

Ja, klingt extrem wirr, aber so denken die Microsoftianer heutzutage eben.

Beste Grüsse aus BaWü
Alex

Ah interessant, das macht Sinn, Danke!
Visucius
Visucius 23.02.2023 um 14:17:56 Uhr
Goto Top
Ah interessant, das macht Sinn, Danke!
Echt, die Story mit den Marsianern macht Sinn?! face-wink
fosaq1
fosaq1 23.02.2023 um 16:45:38 Uhr
Goto Top
Zitat von @MysticFoxDE:

[...]

In der Zwischenzeit kannst ja mal das folgende probieren. 😁

# SMB CLIENT OPTIMIZATION
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -EnableBandwidthThrottling $false
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0
Set-SmbClientConfiguration -WindowSizeThreshold 1
Set-SmbClientConfiguration -MaxCmds 512

## SMB SERVER OPTIMIZATION
Set-SmbServerConfiguration -CachedOpenLimit 0
Set-SmbServerConfiguration -MaxChannelPerSession 32
Set-SmbServerConfiguration -MaxMpxCount 2048
Set-SmbServerConfiguration -MaxThreadsPerQueue 64
Set-SmbServerConfiguration -MaxWorkItems 8192
Set-SmbServerConfiguration -AsynchronousCredits 2048
Set-SmbServerConfiguration -TreatHostAsStableStorage $true
Set-SmbServerConfiguration -RequireSecuritySignature $false

Hi!

Das TCP Optimierungsscript habe ich bei meinem Win10 Client laufen lassen und es fühlt sich schon deutlich flotter an - Vielen Dank für deine Arbeit!

Leider muss ich off-topic etwas fragen, daher auch die zitierten SMB Einstellungen:
Die Einstellungen habe ich auch ausprobiert um meinen lokalen SMB Verkehr vielleicht weiter zu optimieren aber damit habe ich ein "Detailproblem" das sich gerade leider massiv auswirkt.
Das automatische "zurückmurksen" funktioniert auf Win10 ja nicht, deshalb habe ich mir die Defaults notiert.

Der "normale" Datenverkehr scheint nicht beeinträchtigt zu sein aber Dateien auf dem Server zu verschieben funktioniert praktisch nicht mehr:

Es öffnet sich der Verschieben-Dialog aber es werden keine Dateien verschoben. Hier steht die ganze Zeit "Berechnung..." bis es nach mehreren Minuten(!) zu einem Netzwerkfehler kommt oder nur ca. 1 Datei/Minute verschoben wird.
Alternativ wird die erste Datei kopiert aber dann steht das Ganze.

Alles auf Default zurückgesetzt läuft alles wieder.
Dann habe ich begonnen die Parameter einzeln zu verändern, neu zu starten und erneut zu testen.
Wenn DirectoryCacheLifetime auf 0 oder EnableBandwidthThrottling auf false steht kommt es zum oben beschriebenen Fehler. Weiter konnte ich noch nicht testen, denn... :
Jetzt habe ich wieder alles auf Default zurück gestellt aber das Problem ist plötzlich auch mit Default Einstellungen vorhanden!?

Ursprünglich (nach der TCP Optimierung) konnte ich 20.000 Dateien in <7 Minuten verschieben. Dateigröße: 1-20 kB.

Dazwischen hatte ich nur Firefox offen. Mehrfach neu gestartet und die Einstellungen kontrolliert.
Was kann hier schief gelaufen sein?
mhgschmidt
mhgschmidt 23.02.2023 um 17:06:51 Uhr
Goto Top
Hallo Alex,

habe den Bericht über Dich bei Golem gelesen und Dein Skript direkt in mein Projekt eingebaut:

https://gitea.exabyte.systems/WINDOWS/w10install/releases/tag/20H2v1.4
(Ist sowas wie Atlas OS nur für den "seriösen" Einsatz - also Production ready).

Es handelt sich dabei um eine automatisierte und optimierte Windows Installation. Im Skript "autoconfig.cmd" wird Dein Skript - ich habe es nach "tcpoptimizer.ps1" umbenannt - über unsere Kisten "drübergebügelt". Wir verwenden das für die Clients und auch als Server(!) im Büro. Die "Server"-Installationen erhalten dann übrigens TS-Plus an Stelle dieser überteuerten RDP-Cal Geschichten von MS.

Was soll ich sagen: Das Lagging auf den "Servern" habe ich ebenfalls festgestellt. Seitdem ich Dein Skript überall ausrolle ist es merklich besser geworden (vor allem mit sehr hohen Auflösungen: 4K Screens!).

Ich werde Dir in den nächsten Wochen noch weiteres Feedback geben. Gute Arbeit!

lg.
Michael
3063370895
3063370895 23.02.2023 um 17:19:14 Uhr
Goto Top
Zitat von @mhgschmidt:

Hallo Alex,

habe den Bericht über Dich bei Golem gelesen und Dein Skript direkt in mein Projekt eingebaut:

https://gitea.exabyte.systems/WINDOWS/w10install/releases/tag/20H2v1.4
(Ist sowas wie Atlas OS nur für den "seriösen" Einsatz - also Production ready).

Es handelt sich dabei um eine automatisierte und optimierte Windows Installation. Im Skript "autoconfig.cmd" wird Dein Skript - ich habe es nach "tcpoptimizer.ps1" umbenannt - über unsere Kisten "drübergebügelt". Wir verwenden das für die Clients und auch als Server(!) im Büro. Die "Server"-Installationen erhalten dann übrigens TS-Plus an Stelle dieser überteuerten RDP-Cal Geschichten von MS.

Was soll ich sagen: Das Lagging auf den "Servern" habe ich ebenfalls festgestellt. Seitdem ich Dein Skript überall ausrolle ist es merklich besser geworden (vor allem mit sehr hohen Auflösungen: 4K Screens!).

Ich werde Dir in den nächsten Wochen noch weiteres Feedback geben. Gute Arbeit!

lg.
Michael

20H2 nennst du Production Ready?
MysticFoxDE
MysticFoxDE 23.02.2023 aktualisiert um 18:27:04 Uhr
Goto Top
Moin @fosaq1,

danke für die Infos.

Wenn DirectoryCacheLifetime auf 0 ...

🤔 ... 😬 ... ne, ich hoffe, dass nicht wirklich das passiert was ich jetzt denke.
Diese Microsoftians haben den SMB-Client wahrscheinlich so umgebaut, dass dieser nach jedem Vorgang, die Verzeichnisstruktur neu einliest. (🙈)

In diesem Fall währen meine Änderungen tatsächlich kontraproduktiv. 😔

Hast du das mit dem TCP und WINSOCK Reset schon mitbekommen?
Vielleicht landest du im selben Problem.

"oder EnableBandwidthThrottling auf false ..."

Das ist extremst schräg, den das dürfte mit dem von dir beschriebenen Problem überhaupt keinen Zusammenhang haben. 😖

"Jetzt habe ich wieder alles auf Default zurück gestellt aber das Problem ist plötzlich auch mit Default Einstellungen vorhanden!?"

OK, jetzt hört es sich erst recht nach dem TCP und WINSOCK Reset an.

Bitte mal das folgende auf dem betroffenen Rechner ausführen.

netsh winsock reset 
netsh interface tcp reset

danach musst du jedoch das TCP-Optimierungsskript nochmals laufen lassen.
Siehe auch vorheriges Problem bei @onestrator.

Was kann hier schief gelaufen sein?

🤔 ... wahrscheinlich liegt das an der Machtübernahme bei Microsoft durch die Menians die nur was vom Vertrieb und oder Markeeting verstehen. 😔

Gruss Alex
DKi2707
DKi2707 23.02.2023 um 18:42:07 Uhr
Goto Top
Ich habe das Skript ausgeführt (und dabei erstmalig die PS benutzt...), es lief fehlerfrei durch. Nach Neustart fühlt sich alles sehr flüssig an, aber ich bin auch kein Gamer/Zocker.
Win11 22H2 (Build 22621.1265) auf AsRockMini A300M-STX mit AMD Ryzen 5 3400G (SSD: KINGSTON SA2000M8 1000G); Download 1.000Mbs (effektiv 940 Mbps via speedtest.net), Upload 50 Mbps
mhgschmidt
mhgschmidt 23.02.2023 um 19:03:23 Uhr
Goto Top
20H2 nennst du Production Ready?

Es geht hier um *mein* Projekt. Darauf habe ich mich bezogen.
Wie nennst Du denn übrigens den Rotz, den MS so raushaut?
3063370895
3063370895 23.02.2023 um 19:41:26 Uhr
Goto Top
Zitat von @mhgschmidt:

20H2 nennst du Production Ready?

Es geht hier um *mein* Projekt. Darauf habe ich mich bezogen.
Wie nennst Du denn übrigens den Rotz, den MS so raushaut?

20H2 ist kurz vor der Rente. Es wird Zeit loszulassen.
mhgschmidt
mhgschmidt 23.02.2023 um 22:48:38 Uhr
Goto Top
Quote from @chaot1coz:
20H2 ist kurz vor der Rente. Es wird Zeit loszulassen.

Ja - das ist richtig. Wenn Du aber mal bei mir auf der Seite geschaut hättest, dann hättest Du folgendes gesehen: https://gitea.exabyte.systems/WINDOWS/w10install/issues/6

Das Ticket ist 2 Jahre alt weil ich genauso lang schon an dem Ganzen arbeite - und ich habe mit 20H2 mal angefangen. Hast Du überhaupt eine Ahnung was Microsoft beim Schritt von 20H2 auf 22H2 verändert hat?

Da sind so einige Sachen. Ich mache das hier auch nicht für irgendwelche Grossunternehmen. Wer das, was ich da zur Verfügung stelle benutzen will kann das gerne tun. Und wenn jemandem das nicht modern oder nicht "up to date" genug ist, dann ist er oder sie gerne eingeladen mitzuhelfen. Wirklich! Meine ich ernst!

Aber Gemecker in der Art wie Du es tust ist einfach nur überflüssig.

Mach doch selber mal was. Wie wärs mit einer eigenen Linux Distro: https://smitux.com ? (Ist auch von mir wie Du sicherlich unschwer erkennen kannst).

Da ist 2 Jahre lang nix dran getan worden, weil ich diesen Windows Mist erst mal auf ein für uns/mich erträgliches Mass bringen musste. Microsoft wird ja leider immer ätzender.

Ich kann mich jetzt endlich wieder (neben meinem 8 Stunden Job als Consultant!) wieder meinem Linux Projekt (smitux) widmen. Wie gesagt: Wem das alles nicht "neu" oder "hip" genug ist, der kann es ja lassen und muss Dinge, die andere *kostenlos* zur Verfügung stellen nicht benutzen.

Man kann natürlich auch immer dem heissen ### von Microsoft/Apple/Google etc. pp. hinterher hetzen, oder es eben bleiben lassen - so wie ich. Achso: noch etwas - Ich kann für die Sicherheit *meiner* Systeme garantieren *ohne* hirnlos immer die neuesten Patche einzuspielen. Major Releases von Systemen wie Solaris oder AIX wurden im übrigen regelmäßig weit länger als 2 lächerliche Jahre supported. Und wie war das noch mit der grosskotzigen Ankündigung von MS, dass es nur noch 1(!) Windows (nämlich 10) geben würde? Ach und was ist jetzt? Alles Spacken.

Aber heute glaubt man ja (dank DevOps, CI/CD, scrum = murks etc. pp.) dass alles ständig gepatcht werden muss - am besten im wöchentlichen Rythmus?! Naja - wie auch immer: Wenn 20H2 in Kürze nicht mehr supported wird dann gibt es nur 1(!) Grund dies "rauszuwerfen" und zwar wenn keine Sicherheitsaktualisiererungen mehr erscheinen. In dem Punkt gebe ich Dir also Recht.

So - jetzt hab' ich genug gesabbelt. Nix für ungut.

mfg
mhgschmidt
3063370895
3063370895 24.02.2023 aktualisiert um 08:54:35 Uhr
Goto Top
Zitat von @mhgschmidt:

Quote from @chaot1coz:
20H2 ist kurz vor der Rente. Es wird Zeit loszulassen.

Ja - das ist richtig. Wenn Du aber mal bei mir auf der Seite geschaut hättest, dann hättest Du folgendes gesehen: https://gitea.exabyte.systems/WINDOWS/w10install/issues/6

Das Ticket ist 2 Jahre alt weil ich genauso lang schon an dem Ganzen arbeite - und ich habe mit 20H2 mal angefangen. Hast Du überhaupt eine Ahnung was Microsoft beim Schritt von 20H2 auf 22H2 verändert hat?

Da sind so einige Sachen. Ich mache das hier auch nicht für irgendwelche Grossunternehmen. Wer das, was ich da zur Verfügung stelle benutzen will kann das gerne tun. Und wenn jemandem das nicht modern oder nicht "up to date" genug ist, dann ist er oder sie gerne eingeladen mitzuhelfen. Wirklich! Meine ich ernst!

Aber Gemecker in der Art wie Du es tust ist einfach nur überflüssig.

Mach doch selber mal was. Wie wärs mit einer eigenen Linux Distro: https://smitux.com ? (Ist auch von mir wie Du sicherlich unschwer erkennen kannst).

Da ist 2 Jahre lang nix dran getan worden, weil ich diesen Windows Mist erst mal auf ein für uns/mich erträgliches Mass bringen musste. Microsoft wird ja leider immer ätzender.

Ich kann mich jetzt endlich wieder (neben meinem 8 Stunden Job als Consultant!) wieder meinem Linux Projekt (smitux) widmen. Wie gesagt: Wem das alles nicht "neu" oder "hip" genug ist, der kann es ja lassen und muss Dinge, die andere *kostenlos* zur Verfügung stellen nicht benutzen.

Man kann natürlich auch immer dem heissen ### von Microsoft/Apple/Google etc. pp. hinterher hetzen, oder es eben bleiben lassen - so wie ich. Achso: noch etwas - Ich kann für die Sicherheit *meiner* Systeme garantieren *ohne* hirnlos immer die neuesten Patche einzuspielen. Major Releases von Systemen wie Solaris oder AIX wurden im übrigen regelmäßig weit länger als 2 lächerliche Jahre supported. Und wie war das noch mit der grosskotzigen Ankündigung von MS, dass es nur noch 1(!) Windows (nämlich 10) geben würde? Ach und was ist jetzt? Alles Spacken.

Aber heute glaubt man ja (dank DevOps, CI/CD, scrum = murks etc. pp.) dass alles ständig gepatcht werden muss - am besten im wöchentlichen Rythmus?! Naja - wie auch immer: Wenn 20H2 in Kürze nicht mehr supported wird dann gibt es nur 1(!) Grund dies "rauszuwerfen" und zwar wenn keine Sicherheitsaktualisiererungen mehr erscheinen. In dem Punkt gebe ich Dir also Recht.

So - jetzt hab' ich genug gesabbelt. Nix für ungut.

mfg
mhgschmidt

Ganz schön viel Gerede um mir am Ende Recht zu geben 🤷‍♂️
Um was anderes als EoL ging es in meinem Kommentar nicht.

Ich bin hier raus
onestrator
onestrator 24.02.2023 um 13:39:38 Uhr
Goto Top
Zitat von @Visucius:

Ah interessant, das macht Sinn, Danke!
Echt, die Story mit den Marsianern macht Sinn?! face-wink

Marsianer machen immer Sinn! Hauptsächlich Sinn im Unsinn! 🤪
fosaq1
fosaq1 25.02.2023 um 09:16:54 Uhr
Goto Top
Zitat von @MysticFoxDE:

[...]

🤔 ... 😬 ... ne, ich hoffe, dass nicht wirklich das passiert was ich jetzt denke.
Diese Microsoftians haben den SMB-Client wahrscheinlich so umgebaut, dass dieser nach jedem Vorgang, die Verzeichnisstruktur neu einliest. (🙈)

In diesem Fall währen meine Änderungen tatsächlich kontraproduktiv. 😔
Welche Änderungen genau wären kontraproduktiv?

[...]
"oder EnableBandwidthThrottling auf false ..."

Das ist extremst schräg, denn das dürfte mit dem von dir beschriebenen Problem überhaupt keinen Zusammenhang haben. 😖
Finde ich auch!

[...]
Bitte mal das folgende auf dem betroffenen Rechner ausführen.

netsh winsock reset 
netsh interface tcp reset

danach musst du jedoch das TCP-Optimierungsskript nochmals laufen lassen.
Siehe auch vorheriges Problem bei onestrator.
Danke, das hat geholfen.
Nachdem das wieder funktionierte habe ich die SMB Einstellungen vorgenommen und neu gestartet: läuft noch immer.
Anschließend noch das Optimierungsskript und ein reboot: läuft!


Kannst du erklären oder vermuten was hier passiert ist?

Warum schaltest du RSS eigentlich immer aus? Meine I211 NIC kann das noch und die Last auf mehrere Kerne zu verteilen erscheint mir ganz sinnvoll aber ich kenne da jetzt keine Details.


P.S.: Wer sind die "Menians" ? face-smile
MysticFoxDE
MysticFoxDE 26.02.2023 aktualisiert um 23:18:28 Uhr
Goto Top
Moin @fosaq1,

Welche Änderungen genau wären kontraproduktiv?

die hier ...

# SMB CLIENT OPTIMIZATION
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0

weil die Verzeichnis- und Dateiinformationen nicht mehr gecacht werden.

Danke, das hat geholfen.
Nachdem das wieder funktionierte habe ich die SMB Einstellungen vorgenommen und neu gestartet: läuft noch immer.
Anschließend noch das Optimierungsskript und ein reboot: läuft!
Kannst du erklären oder vermuten was hier passiert ist?

Siehe ...

Wie man das Windows 10 und 11 TCP-Handling wieder desuboptimieren kann

Warum schaltest du RSS eigentlich immer aus? Meine I211 NIC kann das noch und die Last auf mehrere Kerne zu verteilen erscheint mir ganz sinnvoll aber ich kenne da jetzt keine Details.

Welche Treiberversion hast du bei deiner I211 installiert?

Details zu RSS siehe ...

https://community.spiceworks.com/topic/post/10260263

P.S.: Wer sind die "Menians" ? face-smile

Dem Microsoftianer die nur noch an Azure & Co glauben. 😁

Und so sehen die laut Canva +- aus ...

menians-development

menians-marketing

menians-sales

menians-...

🤪

Beste Grüsse aus BaWü
Alex
NoeckRTO
NoeckRTO 27.02.2023 um 14:26:34 Uhr
Goto Top
Hallo,
Wir haben in unserer Firma viele Nutzer welche per RDP arbeiten.

Wir haben eigentlich keine großen Probleme selbst mit Photoshop.
Unser Problem liegt an Audio Übertragungen. Wenn man ununterbrochen Audio laufen lässt verzögert sie sich. Wir hatten gehofft, dass das Skript dieses Problem beheben würde.

Hast du in deinen Nachforschungen etwas in die Richtung herausgefunden?

Danke im voraus
Nick
fosaq1
fosaq1 27.02.2023 aktualisiert um 16:32:46 Uhr
Goto Top
Danke für die detailierte Antwort.

Ich hatte es so verstanden, dass die kontraproduktiven Einstellungen im TCP Script waren.
Beim Cache lag mein Gefühl also richtig, dann stelle ich den mal besser auf default zurück.

Der Treiber meiner I211 hat die Version 12.18.13.0

Schöne Bilder face-smile
Chris1706
Chris1706 27.02.2023 um 19:02:05 Uhr
Goto Top
Glück auf,

Skript in Version 1.12
Win11 22H2 - Tablet Lenovo Yoga Gen1, privates Netzwerk

Erster Test:

Teamviewer anscheinend unverändert.
TightVNC - gefühlt etwas schnellerer Aufbau, im Betrieb kein wesentlicher Unterschied
Remotedesktop - dito zu TightVNC
Browsen spürbar schneller, vor allem Google ReCaptcha

Fragen:

Auf meinem Testtablet meldete das Skript bei der Erstausführung:
Start disabling RSS on all NIC's  
  Check if NIC's with RSS support are available on this System.  
  No NIC's installed in this system which support RSS, so, nothing to do. :-)  
RSS has been successfully disabled on all corresponding NIC's or there is nothing to do. :-)  

Get-NetAdapterrss meldet:
Get-NetAdapterRss


Name                                            : Ethernet
InterfaceDescription                            : Intel(R) Ethernet Connection (10) I219-V
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : Closest
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0  
IndirectionTable: [Group:Number]                : 

Das müßte ein USB-LAN Adapter sein der aktuell abgezogen ist.
Mich wundert halt vor allem das WLAN kein RSS verwendet, ebenso wie das du es deaktivierst. Wenn ichs richtig verstanden habe wäre es ja eigentlich keine schlechte Sache Anfragen auf mehrere CPU-Kerne zu verteilen.

Hättest du spontan weiterführende Links zum Thema CongestioProvider und den Unterschieden zwischen CUBIC/DCTCP/NEWRENO?

Laut: https://learn.microsoft.com/en-us/powershell/module/nettcpip/set-nettcps ...
enthält das Cmd-let Set-NetTCPSetting auch den Paramter -AutomaticUseCustom
Gibt es Erfahrungen damit?
Ich bin nicht ganz sicher ob ich es richtig verstehe, entweder wählt Windows dann selbst das entsprechende Profil (entscheidet also zwischen Datacentercustom und Internetcustom) oder man müßte Datacentercustom definieren, wodurch die Zeile 226-246 durch einen One-Liner ersetzt werden könnten.

Mich verwundert halt enorm das vor allem das Browser deutlich schneller ist. Meine 16 MBit Leitung ist nun nicht gerade ein High-Performer...

MfG
Chris
MysticFoxDE
MysticFoxDE 27.02.2023 um 21:57:40 Uhr
Goto Top
Moin @fosaq1,

Ich hatte es so verstanden, dass die kontraproduktiven Einstellungen im TCP Script waren.

😮 ... nein ... 🦊 ist unschuldig ... für diesen Murks sind ebenfalls diese Azuregeilen-Menians verantwortlich.

Beim Cache lag mein Gefühl also richtig, dann stelle ich den mal besser auf default zurück.

Wenn du weitestgehend alleine auf den Freigaben arbeitest und oder auf dieser überwiegend lesend gearbeitet wird, dann kann der Cache in manchen Fällen von Vorteil sein. Aber eben in manchen und nicht in allen.

Der Treiber meiner I211 hat die Version 12.18.13.0

Spiel mal den aktuellsten aus diesem Paket ein.
https://www.intel.de/content/www/de/de/download/15084/intel-ethernet-ada ...

Schöne Bilder face-smile

Danke, habe mich selber kaputt gelacht , als mir Canvas diese ausgespuckt hat. 🤪

Gruss Alex
MysticFoxDE
MysticFoxDE 27.02.2023 um 22:26:28 Uhr
Goto Top
Moin @Chris1706,

Fragen:

Auf meinem Testtablet meldete das Skript bei der Erstausführung:
Start disabling RSS on all NIC's  
  Check if NIC's with RSS support are available on this System.  
  No NIC's installed in this system which support RSS, so, nothing to do. :-)  
RSS has been successfully disabled on all corresponding NIC's or there is nothing to do. :-)  

Das bedeutet, dass in deinem Rechner keine NIC's verbaut sind, in deren Registry-Konfiguration, sich ein "*RSS" Key befindet. Und wenn dieser Key in der Registry nicht vorhanden ist, dann wird RSS auf dieser NIC auch nicht aktiviert.

Der folgende Befehl spuckt alle NIC's aus, bei denen dieser Key vorhanden ist.

Get-NetAdapter -Physical | Get-NetAdapterAdvancedProperty | Where-Object -FilterScript {$_.RegistryKeyword -Like "*RSS"}  


Get-NetAdapterrss meldet:
Get-NetAdapterRss


Name                                            : Ethernet
InterfaceDescription                            : Intel(R) Ethernet Connection (10) I219-V
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : Closest
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0  
IndirectionTable: [Group:Number]                : 

Das müßte ein USB-LAN Adapter sein der aktuell abgezogen ist.

Ich habe bisher noch nie einen "I219-V" als USB-LAN Adapter gesehen.
Ausserdem besagt diese Ausgabe nicht das RSS bei diesem Adapter funktionsfähig ist.
Solange die "IndirectionTable" leer ist, ist RSS nicht funktionsfähig.

Mich wundert halt vor allem das WLAN kein RSS verwendet, ebenso wie das du es deaktivierst. Wenn ichs richtig verstanden habe wäre es ja eigentlich keine schlechte Sache Anfragen auf mehrere CPU-Kerne zu verteilen.

Wenn das Verteilen keinen grossen Overhead generieren würde, dann schon.
Aber so und vor allem mit den meist katastrophalen Standardeinstellungen, ist es einfach nur Murks.

Hättest du spontan weiterführende Links zum Thema CongestioProvider und den Unterschieden zwischen CUBIC/DCTCP/NEWRENO?

Laut: https://learn.microsoft.com/en-us/powershell/module/nettcpip/set-nettcps ...
enthält das Cmd-let Set-NetTCPSetting auch den Paramter -AutomaticUseCustom
Gibt es Erfahrungen damit?
Ich bin nicht ganz sicher ob ich es richtig verstehe, entweder wählt Windows dann selbst das entsprechende Profil (entscheidet also zwischen Datacentercustom und Internetcustom) oder man müßte Datacentercustom definieren, wodurch die Zeile 226-246 durch einen One-Liner ersetzt werden könnten.

Diese Einstellungen sorgen nur dafür, dass anstelle des Datacenter-Profils immer das DatacenterCustom-Profil und anstelle des Internet-Profil das InternetCustom-Profil verwendet wird und zwar dann, wenn die Profilzuordnung auf Automatic steht, was bei den Windows Clients eben nicht der Fall ist. Und leider lässt sich das Automatic-Profil auf diesen auch nicht nachträglich aktivieren. 😔

Mich verwundert halt enorm das vor allem das Browser deutlich schneller ist. Meine 16 MBit Leitung ist nun nicht gerade ein High-Performer...

Weil die TCP-Verarbeitung nun mit deutlich geringeren Latenz abläuft.
Und das du das mit einer 16er Leitung merkst, beweist umso mehr, dass die (TCP-)Default-Einstellungen von Windows, heutzutage einfach Murks sind. 😉

Die von Linux sind heutzutage aber auch nicht viel besser. 😔

Beste Grüsse aus BaWü
Alex
fosaq1
fosaq1 01.03.2023 um 18:28:41 Uhr
Goto Top
Hi,

ich dachte ich hätte bereits den aktuellsten Treiber installiert, allerdings habe ich dazu nur das Ethernet Treiberpaket runtergeladen.
Über den Geräte-Manager den Treiber zu aktualisieren funktioniert leider nicht. Zwar wird die Version 13.0.14.0 vom Januar 2023 angezeigt, die Netzwerkkarte funktioniert anschließend aber nicht mehr mit einem Ausrufezeichensymbol über dem Gerät (Code 37, der Treiber kann nicht initialisiert werden).
Über das Setup habe ich jetzt den Treiber installiert, allerdings mit der gleichen Versionsnummer wie vorher. Lediglich das Treiberdatum hat sich von Dezember 2021 auf Dezember 2022 geändert...

In der Zwischenzeit habe ich mir überlegt, dass man die "richtigen" Standardwerte mit den beiden Befehlen ...
netsh winsock reset 
netsh interface tcp reset
... vielleicht generell erst laden sollte bevor man an TCP und SMB Einstellungen rumschraubt?


Das mit dem schnelleren Surfen ist mir auch am meisten aufgefallen.
Das ist auch logsich denn wenn man sich anschaut wie viele Verbindungen eine popelige Webseite so aufbaut und sich dann vorstellt, dass für jede dieser Verbindungen ein Delay eingebaut wird kommt einiges zusammen.
Eine ähnliche Geschwindigkeitssteigerung habe ich mit dem Einsatz von uMatrix unter Firefox erlebt. Zum einen sieht man damit erstmal wie viele Verbindungen eine Seite aufbaut und zum anderen kann man das einzeln alles zulassen oder abschalten. Damit kann man sich einen Haufen Mini-Verbindungen sparen die das Ganze doch sehr zäh werden lassen. Viel wichtiger als die max. Übertragungsrate sind die Latenzen.
MysticFoxDE
MysticFoxDE 02.03.2023 um 08:31:29 Uhr
Goto Top
Moin @fosaq1,

ich dachte ich hätte bereits den aktuellsten Treiber installiert, allerdings habe ich dazu nur das Ethernet Treiberpaket runtergeladen.
Über den Geräte-Manager den Treiber zu aktualisieren funktioniert leider nicht. Zwar wird die Version 13.0.14.0 vom Januar 2023 angezeigt, die Netzwerkkarte funktioniert anschließend aber nicht mehr mit einem Ausrufezeichensymbol über dem Gerät (Code 37, der Treiber kann nicht initialisiert werden).
Über das Setup habe ich jetzt den Treiber installiert, allerdings mit der gleichen Versionsnummer wie vorher. Lediglich das Treiberdatum hat sich von Dezember 2021 auf Dezember 2022 geändert...


😔 ... ja, über dieses Problem könnte ich gleich den nächsten Murks-Roman schreiben.

Folgend eine Kurzfassung, für eine längere fällt mit aktuell die Zeit.
Wenn du die Intel NIC Treiber sauber aktualisieren möchtest, dann solltest du folgend vorgehen.

1. Alle Intel NIC's in dem Gerätemanager löschen.
2. Alten Treiber über "Installierte Apps" deinstallieren.
3. Rechner neustarten.
4. Neuen Treiber über Setup installieren (dabei wird aber nicht wirklich immer der neuste Treiber Installiert).
5. Setupdatei entpacken
6. Über Gerätemanager die Treiber der NIC's von Hand nochmals Aktualisieren und als Pfad das Verzeichnis wählen, wohin man das Setup entpackt hat.

Danach müssen die IP-Einstellungen neu gemacht werden und falls mein Optimierungsskript vorher durgelaufen ist, so muss es nach dem oberen Prozedere erneut ausgeführt werden.

Und falls du jetzt schon denkst ... "WTF" ... dann willst du glaube ich erst gar nicht wissen, das dieser Murks auf einem Hyper-V Node bedeutet. 😔


In der Zwischenzeit habe ich mir überlegt, dass man die "richtigen" Standardwerte mit den beiden Befehlen ...
netsh winsock reset 
netsh interface tcp reset
... vielleicht generell erst laden sollte bevor man an TCP und SMB Einstellungen rumschraubt?

😁, genau so machen wir das schon beim Aufsetzen neuer Geräte.

Ich werde zu diesem Murks demnächst auch eine eigene Erklärungs-Story schreiben und danach auch das bereits veröffentlichte Optimierungsskript entsprechend erweitern.

"Viel wichtiger als die max. Übertragungsrate sind die Latenzen."

👍👍👍, genau so ist es.

Beste Grüsse aus BaWü
Alex
fosaq1
fosaq1 02.03.2023 um 13:48:58 Uhr
Goto Top
Zitat von @MysticFoxDE:

[...]

1. Alle Intel NIC's in dem Gerätemanager löschen.
2. Alten Treiber über "Installierte Apps" deinstallieren.
3. Rechner neustarten.
4. Neuen Treiber über Setup installieren (dabei wird aber nicht wirklich immer der neuste Treiber Installiert).
5. Setupdatei entpacken
6. Über Gerätemanager die Treiber der NIC's von Hand nochmals Aktualisieren und als Pfad das Verzeichnis wählen, wohin man das Setup entpackt hat.
Das hat leider zum gleichen Ergebnis geführt. Der Treiber 13.x spuckt wieder Code 37 aus.

Und falls du jetzt schon denkst ... "WTF" ... dann willst du glaube ich erst gar nicht wissen, das dieser Murks auf einem Hyper-V Node bedeutet. 😔
Den "WTF"-Moment habe ich nicht so schnell aber ich bin auch kein Hauptberuflicher Admin. Ich kann es mir aber lebhaft vorstellen...

😁, genau so machen wir das schon beim Aufsetzen neuer Geräte.

"Viel wichtiger als die max. Übertragungsrate sind die Latenzen."

👍👍👍, genau so ist es.

Danke für die Bestätigung!

Grüße aus Hessen
Pat(rick)
MysticFoxDE
MysticFoxDE 03.03.2023 um 06:59:24 Uhr
Goto Top
Moin @fosaq1,

Das hat leider zum gleichen Ergebnis geführt. Der Treiber 13.x spuckt wieder Code 37 aus.

😬 ... aber, schau mal was ich gerade gefunden habe.

https://www.intel.de/content/www/de/de/support/articles/000092861/ethern ...

Beste Grüsse aus BaWü
Alex
139689
139689 03.03.2023 aktualisiert um 10:12:37 Uhr
Goto Top

In der Zwischenzeit habe ich mir überlegt, dass man die "richtigen" Standardwerte mit den beiden Befehlen ...
netsh winsock reset 
netsh interface tcp reset
... vielleicht generell erst laden sollte bevor man an TCP und SMB Einstellungen rumschraubt?

😁, genau so machen wir das schon beim Aufsetzen neuer Geräte.



Hmm... interessanter Gedanke. Auf das wäre ich noch nie gekommen, das bei Neuinstallationen standardmäßig so zu machen.

gibt es da auch empfehlenswerte, öffentliche Checklisten, was andere so machen?
Von allgemeinen BSI Best practices mal abgesehen...

Nur mal so naiv gefragt... ich habe wenig Austausch mit anderen ITlern...

Sorry, falls OT
ErSpec7Re
ErSpec7Re 03.03.2023 aktualisiert um 19:56:40 Uhr
Goto Top
Hi,

habe heute mal das Script erst mit BackupOptimierungDeinstaller aus dem Github Paket deinstalliert und nach Neustart die letzte Version des Optimierungsscript auf W11 installiert.

Mir sind danach folgende Sachen aufgefallen, bzw. habe folgende Probs/Fehler festgestellt..

- Die Firefox Proxy Einstellungen musste ich wie folgt ändern, weil viele Tabs/Seiten nach Neustart nicht mehr verbunden / geladet wurden!
FF Proxy Umstellung:
Vorher Proxy-Einstellungen des Systems verwenden
Nachher ->Die Proxy-Einstellungen für dieses Netzwerk automatisch erkennen
Nach Umstellung alles wie gewohnt.

- Habe im Eventmanager von W11 mehrere Fehlermeldungen dieser Art von Windows-Host-Network-Service-Admin:
(IpICSHlpStopSharing : 0x80070032)

Protokollname: Microsoft-Windows-Host-Network-Service-Admin
Quelle:        Microsoft-Windows-Host-Network-Service
Datum:         03.03.2023 19:26:33
Ereignis-ID:   1030
Aufgabenkategorie:Keine
Ebene:         Fehler
Schlüsselwörter:
Benutzer:      SYSTEM
Beschreibung:
IpICSHlpStopSharing : 0x80070032.
Ereignis-XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
  <System>
    <Provider Name="Microsoft-Windows-Host-Network-Service" Guid="{0c885e0d-6eb6-476c-a048-2457eed3a5c1}" /> 
    <EventID>1030</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8000000000000000</Keywords>
    <TimeCreated SystemTime="2023-03-03T18:26:33.7168791Z" /> 
    <EventRecordID>2177</EventRecordID>
    <Correlation />
    <Execution ProcessID="3080" ThreadID="3496" /> 
    <Channel>Microsoft-Windows-Host-Network-Service-Admin</Channel>
    <Computer>iRoboMac</Computer>
    <Security UserID="S-1-5-18" /> 
  </System>
  <EventData>
    <Data Name="HResult">0x80070032</Data> 
    <Data Name="API">1</Data> 
  </EventData>
</Event> 

Auf dem Rechner sind die Win. Features Hyper-V u. Win. Sandbox u. Virtuelle Machine Plattform installiert, eine erneute De/-Installation der beiden Features löste o.g. Fehler nicht.
fosaq1
fosaq1 04.03.2023 um 09:21:32 Uhr
Goto Top
Zitat von @MysticFoxDE:
😬 ... aber, schau mal was ich gerade gefunden habe.

https://www.intel.de/content/www/de/de/support/articles/000092861/ethern ...

Ernsthaft.... Kopf -> Tisch

DAS ist Intels Lösung?! Runterfahren, Strom weg bis alles entladen ist und wieder hochfahren... funktioniert natürlich nicht.
Ich lass es jetzt so aber ich versuche es bei einer sauberen Neuinstallation in nächster Zeit noch einmal. Das Image meines PCs (Alles AMD außer der Netzwerkkarte) stammt ursprünglich von meinem Arbeitslaptop bei dem ich jeglichen Intel und Lenovo Kram vorher runtergekratzt habe. Vielleicht bin ich irgendwo übers Ziel hinaus geschossen.

Aber Danke für den Link.
Ich hatte erst gar nicht gesucht weil ich es für zu unwahrscheinlich hielt, dass ich ausgerechnet genau diesen Netzwerkchip mit genau dem Fehler habe für den Intel sogar extra diese "Lösung" veröffentlicht hat.

Again what learned!
mautis
mautis 04.03.2023 um 20:23:58 Uhr
Goto Top
@MysticFoxDE

Zuerst mal vielen Dank für Deine Mühe. Du hast mehrfach gesagt, dass man das Script nicht auf einem Server anwenden sollte.

Magst Du evtl. in ein paar Sätzen schreiben warum das so ist, bzw. auf was man achten sollte? Wenn es kein Hyper-V Host ist, sollte es doch ziemlich identisch sein, oder eher nicht? Zumindest bei einem Server 2022 scheint das Profil nicht immer Internet zu sein.

Deaktivierst Du bei Deinem Optimierungen IPv6? MS sagt ja, man soll das nicht machen, sondern IPv4 priorisieren.

Ich habe z. B. frisch installierte W2K22 (Hyper-V Host + RDS VMs). Die sind allesamt kein bisschen schneller als der W2K12R2 auf 7 Jahre alter Hardware. RDS fühlt sich sogar etwas langsamer an. Das alles mit Microsoft Standardeinstellungen. Natürlich alles aktuell.

Die W2K22 schaffen es nicht einmal 1GB zu meinem Rechner auszulasten. Untereinander schaffen die so max. 450 MB/s bei 10GB NICs.

Bei Hyper-V scheint es "out of the box" auch nicht so richtig zu laufen.

Hier sind Informationen von Dan Cuomo (müsste ein MS Mitarbeiter sein) übersichtlich zusammengefasst:
https://blog.apps.id.au/hyper-v-and-vmqs-mythbusting/

Evtl. kannst Du mich etwas in die richtige Richtung schieben. Ich würde die Ergebnisse hier berichten.
MysticFoxDE
MysticFoxDE 04.03.2023, aktualisiert am 05.03.2023 um 08:33:59 Uhr
Goto Top
Moin @mautis,

Zuerst mal vielen Dank für Deine Mühe. Du hast mehrfach gesagt, dass man das Script nicht auf einem Server anwenden sollte.

Sehr gerne.
und nein, es ist keine gute Idee das Skript auf einem Server auszuführen, vor allem wenn die Hyper-V Rolle darauf installiert ist. Den Damit kommt SDN (vSwitch/vNIC's) ins Spiel und dieses muss dann ebenfalls angepasst werden. 😔

Magst Du evtl. in ein paar Sätzen schreiben warum das so ist, bzw. auf was man achten sollte? Wenn es kein Hyper-V Host ist, sollte es doch ziemlich identisch sein, oder eher nicht? Zumindest bei einem Server 2022 scheint das Profil nicht immer Internet zu sein.

Mit einem Hyper-V wird die Sache um Welten komplexer, weil du hier z.B. RSS nicht deaktivieren darfst, sonst spackt das SDN nur noch rum. Statt dessen muss RSS entsprechend der Hardware konfiguriert werden, aber das ist eine Geschichte für sich. Auf diese kann ich jetzt aber nicht eingehen, da ich aktuell einen defektes ReFS Cluster-Shared-Volume wiederbeleben muss. 😬
Na ja, paar TB's umparken, das ellende ReFS vollends töten und NTFS daraus machen, trifft es glaube ich eher. 🤪

Deaktivierst Du bei Deinem Optimierungen IPv6?

Ja.

MS sagt ja, man soll das nicht machen, sondern IPv4 priorisieren.

MS behauptet viel Murks wenn der Tag lang genug ist. 😉

Ich habe z. B. frisch installierte W2K22 (Hyper-V Host + RDS VMs). Die sind allesamt kein bisschen schneller als der W2K12R2 auf 7 Jahre alter Hardware. RDS fühlt sich sogar etwas langsamer an. Das alles mit Microsoft Standardeinstellungen. Natürlich alles aktuell.

RSC auf NIC's und vSwitch deaktivieren und den Core Scheuleder von Core auf Classic umstellen, dann solltest du schon wieder ~80% der 2012R2 Performance wiederhaben. 😉

Die W2K22 schaffen es nicht einmal 1GB zu meinem Rechner auszulasten. Untereinander schaffen die so max. 450 MB/s bei 10GB NICs.

Das ist wegen dem bescheuertem RSC und dem per default absolut grottig eingestelltem RSS. 😔

Bei Hyper-V scheint es "out of the box" auch nicht so richtig zu laufen.

Da läuft "out of the box" leider so gut wie nichts mehr ordentlich, zumindest nicht wenn es halbwegs Richtung Performance geht. 😔

Hier sind Informationen von Dan Cuomo (müsste ein MS Mitarbeiter sein) übersichtlich zusammengefasst:
https://blog.apps.id.au/hyper-v-and-vmqs-mythbusting/

Ähm, der Dan ist nicht irgend ein MS Mitarbeiter, er ist seit ~2012 einer der Hauptverantwortlichen für die MS TCP-Stack Entwicklung. 😉🙃

Evtl. kannst Du mich etwas in die richtige Richtung schieben. Ich würde die Ergebnisse hier berichten.

Gerne, aber am Besten per Teamviewer, das geht am schnellsten.
Geht bei mir aber erst ab nächsten Dienstag so Richtung Abends.

Beste Grüsse aus BaWü
Alex
mautis
mautis 05.03.2023 um 11:30:24 Uhr
Goto Top
Zitat von @MysticFoxDE:
Gerne, aber am Besten per Teamviewer, das geht am schnellsten.

Vielen Dank für das Angebot. Das darf ich aber leider nicht ohne Dienstleistungsvertrag. Wenn ich nicht weiterkomme, würde ich ganz offiziell (dann mit Rechnung) darauf zurückkommen.

Vielleicht können wir noch ein paar ganz allgemeine Informationen dazu austauschen? Ich habe gesehen, Du beschäftigst Dich schon eine Weile damit.

VMMQ bei Hyper-V
Ab Server 2019 sagt z. B. Dan Cuomo, dass gar nichts mehr konfiguriert werden muss. Man kann zwar noch die CPU0 davon ausnehmen, muss man aber nicht. Deckt sich das mit Deinen Recherchen?

RSS bei Hyper-V
Dass man das nicht abschalten soll, habe ich gelesen. Hättest du einen Link mit ein paar Erklärungen zur Konfiguration? Prinzipiell scheint es gleich wie VMMQ bei älteren Server-Versionen zu konfigurieren sein. Man versucht nicht alles auf einer CPU machen zu lassen.

Windows Server 2022
Ganz viele Informationen handeln von Server 2019. Ist das prinzipiell auch auf Windows Server 2022 anzuwenden?

Eigentlich ärgerlich, dass man "out of the box" mit neuester Hardware keine Performanceverbesserung hat und das meistens einfach so hingenommen wird. Manchmal sogar noch verteidigt wird.
aqui
aqui 07.03.2023 um 09:06:40 Uhr
Goto Top
MysticFoxDE
MysticFoxDE 07.03.2023 um 11:58:28 Uhr
Goto Top
Moin @mautis,

Vielen Dank für das Angebot. Das darf ich aber leider nicht ohne Dienstleistungsvertrag. Wenn ich nicht weiterkomme, würde ich ganz offiziell (dann mit Rechnung) darauf zurückkommen.

Rechnung ist kein Problem. 😁
Bei einem AVV würde ich schon eher 🤢🤮. 🤪

Vielleicht können wir noch ein paar ganz allgemeine Informationen dazu austauschen? Ich habe gesehen, Du beschäftigst Dich schon eine Weile damit.

Ja, zwangsweise, sonst hätten uns unsere Kunden schon längst zum Frühstück verspeist. 😔

VMMQ bei Hyper-V
Ab Server 2019 sagt z. B. Dan Cuomo, dass gar nichts mehr konfiguriert werden muss.

Du kennst doch bestimmt die Geschichte mit "Theorie und Praxis".
Und das was Dan da verzapft, ist leider weitestgehend nur pure Theorie, die so in der Praxis, in den meisten Fällen überhaupt nicht richtig funktioniert. 🤢

By the way. Ich habe selbst, Dan und einige weitere MS-Chef-Entwickler über den hier in diesem Beitrag angesprochenen Murks, schon im Vorfeld informiert gehabt.
Daraufhin haben die ein paar Traces angefordert, daraufhin kam bisher als einziges die Empfehlung zurück, RSS wieder einzuschalten.
Und seid dem ich dann zurückgeschrieben habe, dass ich das nicht machen werde, weil durch RSS das ursprüngliche Problem des zu hohen Ressourcenverbrauchs nicht wirklich gelöst, sondern dadurch genaugenommen das Problem eher verschleiert und auch verschlimmert wird, habe ich nichts mehr aus Redmond gehört. 😔

„Man kann zwar noch die CPU0 davon ausnehmen, muss man aber nicht.

Witz komm raus, du bist schon lange umzingelt. 😭

„Deckt sich das mit Deinen Recherchen?“

Nein, leider nicht mal ansatzweise.

RSS bei Hyper-V
Dass man das nicht abschalten soll, habe ich gelesen. Hättest du einen Link mit ein paar Erklärungen zur Konfiguration?

Ich habe schon ein paar Beispiele für die Serveroptimierung bei Spiceworks veröffentlicht, jedoch sind diese Beispiele extrem auf die von uns verwendete Hardware ausgelegt. Sprich, so einfach kann man diese leider nicht wirklich 1:1 auf ein fremdes System übertragen. 😔

Für die optimale Konfiguration müssen unbedingt die folgenden Parameter mit beachtet werden.

- Anzahl CPU’s (Anzahl NUMA‘s)
- CPU-Typ (Anzahl Kerne, Maximale Daeurkerngeschwindigkeit)
- Anzahl der NIC’s und deren genauer Typ
- Verwendungszweck der NIC’s
- Tatsächlich unterstützte NIC Features (RSS, VMQ, (d)VMMQ, …)
- Physikalische NUMA Zuordnung der NIC‘s
- Tatsächliche Uplinkgeschwindigkeit der NIC’s in die Richtung der physikalischer Switche.
(Eine 10G NIC die lediglich mit 1G läuft, muss komplett anders konfiguriert werden, wie eine 10G NIC die auch mit 10G läuft. 😔)
- Hoffentlich KEIN Teaming
(Kann MS ab Server 2019 leider nicht mehr wirklich gut.)

Sprich, so einfach ist das nicht wirklich und dabei muss neben TCP auch SMB & Co, für eine gute Performanceausbeute ebenfalls noch ordentlich nachoptimiert werden. 😩

Prinzipiell scheint es gleich wie VMMQ bei älteren Server-Versionen zu konfigurieren sein. Man versucht nicht alles auf einer CPU machen zu lassen.

Ja, man muss die Last durchaus verteilen, vor allem bei > 10G, aber das sollte nicht so kopflos geschehen, wie es "out of the box" bei Windows leider der Fall ist.

Windows Server 2022
Ganz viele Informationen handeln von Server 2019. Ist das prinzipiell auch auf Windows Server 2022 anzuwenden?

So ziemlich alles was ich bisher beim 2019 an Murks ausgegraben habe, ist leider 1:1 auch so beim 2022er noch vorhanden, +neuer Murks. 😭
Das einzige Positive beim 2022er ist, dass dieser nicht zwangsweise die performancefressende SMB-Verschlüsselung fährt, so wie es beim 2019er der Fall war.

Eigentlich ärgerlich, dass man "out of the box" mit neuester Hardware keine Performanceverbesserung hat und das meistens einfach so hingenommen wird.

Das ist nicht nur ärgerlich, das ist alleine schon aufgrund der enormen Energieverschwendung, die durch diese Fehlkonfigurationen entsteht, eigentlich mindestens ein genau so grösser Skandal, wie der Dieselmurks der KFZ Branche. 😔

Manchmal sogar noch verteidigt wird.

Ja, diese Kandidaten kennen ich mittlerweile zu genüge. Mit solchen Aussagen tun sich jedoch die entsprechenden Personen, zumindest was meine Ansicht angeht, als Profi-ITler eher disqualifizieren.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 07.03.2023, aktualisiert am 08.03.2023 um 00:00:06 Uhr
Goto Top
Moin @fosaq1,
Moin @drnatur,

ich muss bezüglich der SMB-Optimierungen etwas zurückrudern.
Die zuvor veröffentlichten Optimierungsvorschläge, verursachen beim aktuellen TCP-Optimierungsstand und oder aktuellen Kernelversionen, eher Nachteile als Vorteile. 😬

Gemäss jüngster Erfahrungen, würde ich daher meine Optimierungsempfehlungen für SMB und bezogen auf Windows 10 22H2 & Windows 11 22H2, gerne folgend abändern.

# SMB CLIENT OPTIMIZATION FOR W10 22H2 & W11 22H2 SMB OPTIMIZATIONS (!!! NOT FOR SERVER !!!)
Reset-SmbClientConfiguration -All -Confirm:$false
Set-SmbClientConfiguration -MaximumConnectionCountPerServer 64 -Confirm:$false
Set-SmbClientConfiguration -MaxCmds 128 -Confirm:$false
Set-SmbClientConfiguration -WindowSizeThreshold 8 -Confirm:$false
Set-SmbClientConfiguration -DisableCompression $true -Confirm:$false
Set-SmbClientConfiguration -EnableSecuritySignature $false -Confirm:$false
Set-SmbClientConfiguration -RequireSecuritySignature $false -Confirm:$false


## SMB SERVER OPTIMIZATION FOR W10 22H2 & W11 22H2 SMB OPTIMIZATIONS (!!! NOT FOR SERVER !!!)
Reset-SmbServerConfiguration -All -Confirm:$false
Set-SmbServerConfiguration -AsynchronousCredits 512 -Confirm:$false
Set-SmbServerConfiguration -EnableSecuritySignature $false -Confirm:$false
Set-SmbServerConfiguration -DisableCompression $true -Confirm:$false
Set-SmbServerConfiguration -MaxChannelPerSession 64 -Confirm:$false
Set-SmbServerConfiguration -MaxMpxCount 128 -Confirm:$false
Set-SmbServerConfiguration -MaxThreadsPerQueue 64 -Confirm:$false
Set-SmbServerConfiguration -MaxWorkItems 128 -Confirm:$false
Set-SmbServerConfiguration -TreatHostAsStableStorage $true -Confirm:$false

!!! Wie schon im Skript angemerkt, bitte nicht 1:1 auf einem Server ausführen, hier sind stellenweise komplett andere Einstellungen notwendig. !!!

Ob das auch schon für 21H2 zutrifft, habe ich aufgrund von Zeitmangel bisher nicht prüfen können.

Ich denke es erübrigt sich ferner von selbst, dass man das Abschalten der SecuritySignatures in Umgebungen mit „Erhöhtem Schutzbedarf“ nicht wirklich machen sollte.
Darunter sehe ich jedoch keinen Grund das nicht zu tun.

Ferner konnte ich heute selbst live erleben, dass das Abschalten von „EnableBandwidthThrottling“, tatsächlich einen Nachteil mit sich bringt. 😔
Und zwar hat sich bei einem unserer Kunden heute herausgestellt, dass alleine das Deaktivieren dieser Option, den Start seines ERP-System-Clients (Infor:COM 7.9) um ~2Sekunden (mit ~17 Sek. / ohne ~19 Sek.) verzögert hat.
Ich kann mir selbst nicht erklären weshalb das so ist und bei meinen vorherigen, jedoch schon länger zurückliegenden intensiven SMB-Tests, hatte das deaktivieren dieser Option auch immer eine Verbesserung bewirkt.

Zudem bin ich nicht der Einzige, der die Abschaltung des BandwidthThrottling beim SMB-Client bisher empfohlen hat. Es gibt im Internet duzende anderer Techniker, die genau dasselbe empfehlen.

Und mal ganz unabhängig von uns externen, Microsoft selbst empfiehlt in dem folgenden Artikel …
https://learn.microsoft.com/de-de/windows-server/storage/file-server/tro ...
enablebandwidththrottling
das BandwidthThrottling zwecks Leistungssteigerung zu deaktivieren.

Das nun das Abschalten eines Drosselmechanismus nun und entgegen den Aussagen des Herstellers selbst, nun eine Performanceverschlechterung mit sich bringt, beweist umso mehr, dass den Microsoftians in Redmond wohl mittlerweile nicht nur eine Tasse in deren Schrank abhandengekommen ist. 😔
Und die QS haben die so wie es aussieht wohl komplett wegrationalisiert oder nach extern Ausgelagert, was unter dem Strich jedoch auf dasselbe hinausläuft. 🤢🤮

So, jetzt muss ich aber weiterflitzen und bei einem Kunden einem SGW, welches warum auch immer seit ein paar Stunden keine VPN-Einwahl mehr erlaubt, noch kurz beibringen, dass das mitten in der Woche nicht wirklich eine gute Idee ist. 🤪

Beste Grüsse aus BaWü
Alex
fosaq1
fosaq1 13.03.2023 aktualisiert um 07:35:40 Uhr
Goto Top
Zu den SMB Optimierungen:
Die Option -DisableCompression gibt es unter Windows 10 nicht, weder für Client noch für Server.

-EnableMultiChannel ist beim Server per default eingeschaltet, beim Client aber nicht. Ist es vielleicht auch für den Client sinnvoll? Ich weiß, dass bei meinem SMB Server MultiChannel aktiviert ist.

Für Sicherheitsoptimierungen würde ich es in Erwägung ziehen die folgenden Optionen zu setzen:
-EnableSecuritySignature $true
-RequireSecuritySignature $true
-EnableInsecureGuestLogons $false (Client)
-EnableSMB1Protocol $false (Server), vielleicht sogar -EnableSMB2Protocol $false um SMB3 zu erzwingen

Je nach Konstellation wirkt sich das aber u.U. negativ auf Funktionalität oder Geschwindigkeit aus und sollte nicht einfach "blind" übernommen werden. Es sind nur Überlegungen, bitte testen.
aqui
aqui 13.03.2023 um 09:33:13 Uhr
Goto Top
gibt es unter Windows 10 nicht, weder für Client noch für Server.
Windows 10 Server??? 🤔
MysticFoxDE
MysticFoxDE 13.03.2023 aktualisiert um 12:50:35 Uhr
Goto Top
Moin @fosaq1,

Zu den SMB Optimierungen:
Die Option -DisableCompression gibt es unter Windows 10 nicht, weder für Client noch für Server.

ja , diesen Murks gibt es wie es aussieht erst ab W11/Server 2022.
Siehe auch ….
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-compress ...

-EnableMultiChannel ist beim Server per default eingeschaltet, beim Client aber nicht. Ist es vielleicht auch für den Client sinnvoll? Ich weiß, dass bei meinem SMB Server MultiChannel aktiviert ist.

Das ist nicht ganz einfach zu beantworten. Zum einen sorgt SMB-MultiChannel dafür, dass bei aktivierten RSS eine SMB-Übertragung auf mehrere Sessions verteilt werden kann. Zum anderen wird SMB-MultiChannel auch dafür verwendet, SMB-Übetragungen über mehrere physikalische/logische Pfade zu verteilen.
Beides muss jedoch genau geplant und der eingesetzten Hardware entsprechend konfiguriert werden.
Daher sehe ich der pauschalen Aktivierung von SMB-MultiChannel eher kritisch entgegen, da diese, vor allem kombiniert mit den vermurksten RSS-Standardeistellungen, eher mehr Probleme als Gutes mit sich bringt. 😔

Für Sicherheitsoptimierungen würde ich es in Erwägung ziehen die folgenden Optionen zu setzen:
-EnableSecuritySignature $true
-RequireSecuritySignature $true

Und was genau soll das, ausser weiterer Performanceverschwendung den genau bringen?
Dur die Signierung wird nur sichergestellt, dass die Daten bei der Übertragung nicht verfälscht worden sind.
Juhu, ist ja heutzutage dank Switche auch so einfach^, sich mal geschwind in eine SMB-Übertragung einzuklinken. 🙃
Und wenn das Jemand doch mal so geschwind kann, dann lacht er sich über die SMB-Signierung als Schutzmassnahme eh nur kurz kaputt. 😔
Den die SMB-Signierung schützt zwar +- vor dem Verfälschen der Daten, aber nicht vor dem Auslesen/Überwachen der übertragenen Daten. 😉

-EnableSMB1Protocol $false (Server), vielleicht sogar -EnableSMB2Protocol $false um SMB3 zu erzwingen

Und genau an dieser Stelle würden mir viele der deutschen mittelständischen Fertigungsbetriebe mit Anlauf ins Genick springen, weil dann wahrscheinlich +-die Hälfte deren Maschinen deren Steuerung noch mit XP &Co. läuft, keine Aufträge mehr vom Server holen könnten. 🙃

Je nach Konstellation wirkt sich das aber u.U. negativ auf Funktionalität oder Geschwindigkeit aus und sollte nicht einfach "blind" übernommen werden. Es sind nur Überlegungen, bitte testen.

👍👍👍, diese Empfehlung würde ich vor allem auch den Microsoftians ans Herz legen.
Den genaugenommen aktivieren die ja ständig irgendeinen, für die meisten Normalsterblichen sinnlosen Murks, ohne diesen im Vorfeld auch nur ansatzweise anständig durchzutesten. 😔 🤢🤮

Beste Grüsse aus BaWü
Alex

P.S. Ähm, by the way, wurde Aruba irgendwie heimlich von Cisco übernommen?

Warum ich frage, na ganz einfach, weil sich die neuen => 6000er Serien, VLAN-Technisch nun genau so grottig konfigurieren lassen, wie die von Cisco und das CLI Menü ist nicht mehr da. 😨😭
Ja, OK, ich kann auch ciscoisch 🤪 … dennoch … 🤮
MysticFoxDE
MysticFoxDE 13.03.2023 um 12:55:40 Uhr
Goto Top
Windows 10 Server??? 🤔

Windows 10 1809 = Server 2019
Windows 11 ~21H1 = Server 2022

😉
fosaq1
fosaq1 14.03.2023 um 07:50:10 Uhr
Goto Top
Zitat von @aqui:

gibt es unter Windows 10 nicht, weder für Client noch für Server.
Windows 10 Server??? 🤔

Gemeint war die Einstellung für den SMB-Server bzw. Host, nicht die Windows Version.


Zu SMB1+2: Wie immer muss man das natürlich an die Umgebung anpassen.
Bei mir zu Hause könnte ich wahrscheinlich komplett auf SMB3 setzen weil das alle Clients unterstützen aber natürlich ist das in Unternehmen mit gewachsenen Strukturen nicht einfach so möglich.

FunFact: Lustig, dass du gerada Aruba erwähnst. Ich habe einen Switch von denen und gerade einen neuen AP bestellt face-smile
MysticFoxDE
MysticFoxDE 15.03.2023 um 07:21:12 Uhr
Goto Top
Moin @fosaq1,

FunFact: Lustig, dass du gerada Aruba erwähnst. Ich habe einen Switch von denen und gerade einen neuen AP bestellt face-smile

Habe gestern den halben Tag damit verbracht die Fehler in den aktuellen MIB's für die 6000er rauszuklopfen. 😭

@aruba
Kann es sein, dass ihr euch eure aktuelle QS-Strategie bei den Microsoftians abgeschaut habt?

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 18.03.2023 um 09:28:55 Uhr
Goto Top
Moin Zusammen,

kleines Update.
Das Optimierungsskript hat soeben eine Art "change logging" gelernt. 😁

Siehe aktuellste Version in Ginhub.
https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 19.03.2023 aktualisiert um 13:07:32 Uhr
Goto Top
Moin Zusammen,

habe soeben die V1.15 bei GitHub veröffentlicht. 😁
https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Diese Version hat eine erweitere Backupfunktionalität, die vor jeglicher Veränderung, nun auch bestimmte Teile der Registry sichert. 😉

Zudem habe ich das Skript um einen TCP und WINSOCK Reset erweitert, weil sich herausgestellt hat,
dass diese mitunter diverseste andere Probleme beheben. 😔

By the way.
Falls jemand diese Arbeit sponsern möchte, dann kann er das nun gerne über GitHub machen, danke.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 20.03.2023 um 00:58:20 Uhr
Goto Top
Moin Zusammen,

nächstes Update, habe soeben bei GitHub die V2.00 veröffentlicht.
https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Diese Version ist für die Ausführung auf Clients mit einem aktivierten Hyper-V Feature optimiert worden.
Im ersten Schritt werden dabei nur einige Optimierungsschritte übersprungen, die auf den entsprechenden Clients eher suboptimal sind.
Ich werde das Skript in nächster Zeit aber auch dahingehend erweitern, dass dieses das SDN eines Hyper-V auf einem Windows 10/11 ebenfalls optimieren kann. 😉

Beste Grüsse aus BaWü
Alex
DanHot
DanHot 20.03.2023 um 03:31:41 Uhr
Goto Top
Macht es Sinn das Script auf einem Gaming PC auszuführen? Dort ist ja kein Hyper-V aktive in der Regel.
MysticFoxDE
MysticFoxDE 20.03.2023 um 07:37:34 Uhr
Goto Top
Moin @DanHot,

Macht es Sinn das Script auf einem Gaming PC auszuführen? Dort ist ja kein Hyper-V aktive in der Regel.

ja, insbesondere dann, wenn du online zockst. 😉

Ich habe selber nur STO (Star Trek Online) auf dem Rechner und spüre bei diesem eine deutliche Verbesserung nach der Optimierung. Die Spielabschnitte laden nun viel schneller und auch die Weltraumkämpfe mit vielen andere Spielern laufen nun ohne jegliche Aussetzer.

Beste Grüsse aus BaWü
Alex
aauerswald
aauerswald 24.03.2023 aktualisiert um 18:46:49 Uhr
Goto Top
Hallo,

danke für die Scripte, es ist alles spürbar schneller, bis auf die Übertragung via SMB3 (Win11 -> Synology NAS), hier erhalte ich fast 33% Performanceeinbrüche. Ich konnte dies auf 3 unterschiedlichen Win11 Computer (kabelgebunden) in Richtung Synology NAS reproduzieren. Sobald ich die Einstellungen wieder lösche, ist die Performance immer wieder da.

OS:
2023-03-24 18_29_07-einstellungen

Mit Script:
2023-03-24 18_06_03-100% abgeschlossen

Ohne Script:
2023-03-24 18_12_17-100% abgeschlossen

Beste Grüße!
MysticFoxDE
MysticFoxDE 28.03.2023 um 07:44:12 Uhr
Goto Top
Moin @aauerswald,

danke für die Scripte, es ist alles spürbar schneller, bis auf die Übertragung via SMB3 (Win11 -> Synology NAS), hier erhalte ich fast 33% Performanceeinbrüche. Ich konnte dies auf 3 unterschiedlichen Win11 Computer (kabelgebunden) in Richtung Synology NAS reproduzieren. Sobald ich die Einstellungen wieder lösche, ist die Performance immer wieder da.

Welche Skriptversion hast du ausgeführt?
Hast du auch die SMB Optimierungen vorgenommen?

Ich habe gerade bei mir mal gegen unser Infortrend NAS von meiner Optimierten W11 Workstation getestet und bekomme dabei das folgende Ergebnis.

IFT to WS:
ift to ws

WS to IFT:
ws to ift

🤔 ... du hast Windows 11, hast du bei diesem schon testweise mal den Phishingschutz deaktiviert?

Dieser geht nämlich auch bei internen SMB Übertragungen dazwischen (🤢🤮) und erzeugt dabei einen zum Teil extremen CPU-Overhead, der nach dem Ausführen meines Skripts, ebenfalls nicht mehr auf mehrere Kerne verteilt/über mehrere Kerne verwischt, werden kann. 😉

Beste Grüsse aus BaWü
Alex
TomTomBon
TomTomBon 28.03.2023 um 10:18:20 Uhr
Goto Top
Moin Moin

Ich habe das Script v2.0 mal ausgeführt auf meinem neu installierten Win 11 22H2 22621.1413
Und bekam folgende Meckereien in ISE (Nicht als Skript ausgeführt sondern als Text in das Skript Fenster eingefügt und ausgeführt. Hat unter 21H2 keine Probleme gegeben.)

.SYNOPSIS : The term '.SYNOPSIS' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,   
verify that the path is correct and try again.
At line:2 char:1
+ .SYNOPSIS
+ ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (.SYNOPSIS:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
This : The term 'This' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that   
the path is correct and try again.
At line:3 char:5
+     This Script desuboptimize a lot W10 and W11 TCP Settings.
+     ~~~~
    + CategoryInfo          : ObjectNotFound: (This:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
.NOTES : The term '.NOTES' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify   
that the path is correct and try again.
At line:4 char:2
+  .NOTES
+  ~~~~~~
    + CategoryInfo          : ObjectNotFound: (.NOTES:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
Version: : The term 'Version:' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,   
verify that the path is correct and try again.
At line:5 char:5
+     Version:        2.00
+     ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Version::String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
Alexander : The term 'Alexander' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,   
verify that the path is correct and try again.
At line:6 char:34
+     Author:         MysticFoxDE (Alexander Fuchs)
+                                  ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Alexander:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
Creation : The term 'Creation' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,   
verify that the path is correct and try again.
At line:7 char:5
+     Creation Date:  19.03.2023
+     ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Creation:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
.LINK : The term '.LINK' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify   
that the path is correct and try again.
At line:8 char:1
+ .LINK
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (.LINK:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
https://www.golem.de/news/tcp-die-versteckte-netzwerkbremse-in-windows-10-und-11-2302-172043.html : The term 
'https://www.golem.de/news/tcp-die-versteckte-netzwerkbremse-in-windows-10-und-11-2302-172043.html' is not recognized as the name of a cmdlet, function, script file, or operable   
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:9 char:5
+     https://www.golem.de/news/tcp-die-versteckte-netzwerkbremse-in-wi ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (https://www.gol...302-172043.html:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
https://www.borncity.com/blog/2023/01/30/microsofts-tcp-murks-in-windows-10-und-11-optimierung-ist-mglich : The term 
'https://www.borncity.com/blog/2023/01/30/microsofts-tcp-murks-in-windows-10-und-11-optimierung-ist-mglich' is not recognized as the name of a cmdlet, function, script file, or   
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:10 char:5
+     https://www.borncity.com/blog/2023/01/30/microsofts-tcp-murks-in- ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (https://www.bor...rung-ist-mglich:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
https://www.borncity.com/blog/2023/02/14/windows-10-11-grottige-netzwerktransfer-leistung-hohe-windows-11-cpu-last-teil-1 : The term 
'https://www.borncity.com/blog/2023/02/14/windows-10-11-grottige-netzwerktransfer-leistung-hohe-windows-11-cpu-last-teil-1' is not recognized as the name of a cmdlet, function,   
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:11 char:5
+     https://www.borncity.com/blog/2023/02/14/windows-10-11-grottige-n ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (https://www.bor...cpu-last-teil-1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
https://www.borncity.com/blog/2023/02/14/windows-11-netzwerktransfer-leistung-und-cpu-last-optimieren-teil-2 : The term 
'https://www.borncity.com/blog/2023/02/14/windows-11-netzwerktransfer-leistung-und-cpu-last-optimieren-teil-2' is not recognized as the name of a cmdlet, function, script file, or   
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:12 char:5
+     https://www.borncity.com/blog/2023/02/14/windows-11-netzwerktrans ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (https://www.bor...timieren-teil-2:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
https://administrator.de/tutorial/wie-man-das-windows-10-und-11-tcp-handling-wieder-desuboptimieren-kann-5529700198.html#comment-5584260697 : The term 
'https://administrator.de/tutorial/wie-man-das-windows-10-und-11-tcp-handling-wieder-desuboptimieren-kann-5529700198.html#comment-5584260697' is not recognized as the name of a   
cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:13 char:5
+     https://administrator.de/tutorial/wie-man-das-windows-10-und-11-t ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (https://adminis...ment-5584260697:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
https://community.spiceworks.com/topic/post/10299845 : The term 'https://community.spiceworks.com/topic/post/10299845' is not recognized as the name of a cmdlet, function, script  
file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:14 char:5
+     https://community.spiceworks.com/topic/post/10299845
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (https://communi...c/post/10299845:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
Transcript started, output file is C:\BACKUP\WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log
 
************************************************************************************************************
*** Beginning of the configuration-backup from 03/28/2023 10:11:50
TomTomBon
TomTomBon 28.03.2023 aktualisiert um 10:28:24 Uhr
Goto Top
Es ist nichts schlimmes.
Er meckert die Maskierten Elemente an.
Der Rest des Skripts läuft normal durch..


Aber Trotzdem face-wink
MysticFoxDE
MysticFoxDE 28.03.2023 aktualisiert um 10:43:12 Uhr
Goto Top
Moin @TomTomBon,

Es ist nichts schlimmes.
Er meckert die Maskierten Elemente an.

das ist schon schräg, ich habe bei mir dieselbe Version auf dem Rechner ...
win11-version
und auf diesem läuft die 2.0 ohne Probleme durch.

Hast du beim kopieren eventuell die erste Zeile des Skripts mit
<#
nicht mit kopiert?

Gruss Alex
TomTomBon
TomTomBon 29.03.2023 um 07:49:55 Uhr
Goto Top
Wahrscheinlich das einleitende < nicht mitgenommen.

Nachdem Ich das entfernt habe (und das & Zeichen später.. Hätte schon die Warnung für mich gestern sein müssen face-wink ) waren die gleichen Meldungen da.
Das Problem wenn man es zwischen Tür und Angel macht.

Sorry.
Fehler 80cm mal wieder face-sad

Danke und schönen Mittwoch noch.
Thomas
MysticFoxDE
MysticFoxDE 14.04.2023 um 07:20:56 Uhr
Goto Top
Moin Zusammen,

kleines Update, habe gestern die Version 2.01 bei Github veröffentlicht.

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Seit dieser Version stellt das Skript nicht mehr auf das DatacenterCustom Profil um, weil sich das bei manchen Windows 10 Versionen, deren MinRTO in diesem Profil per Default zu klein eingestellt ist, als Nachteilig erwiesen hat.
Und da sich die MinRTO der TCP Profile bei den Windows Clients nicht anpassen lässt, musste ich den Schwenk zu dem DatacenterCustom Profil wieder verwerfen und habe statt dessen die Optimierungen direkt auf das Internetprofil angewandt.
Sprich, der Optimierungeffekt bleibt bei W11derselbe und auf W10 sollte das Skript nun keine Probleme mehr bereiten. 🤪

Ein besonderer Dank geht an dieser Stelle an Richard Scheffenegger, der sich in der folgenden Diskussion sehr viel Zeit genommen hat ...
https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/issues/9
und dadurch gewaltig mein Verständnis bez. TCP nach vorne gebracht hat.

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 23.04.2023 um 09:00:17 Uhr
Goto Top
Moin Zusammen,

heute morgen habe ich die V2.02 bei Github veröffentlicht.

Diese Version ist um eine weitere Optimierung erweitert worden, die für viele nicht unrelevant sein könnte.
Und zwar bin ich eigentlich davon ausgegangen, dass Windows ab Vista SP2 die gleichzeitigen TCP Verbindungen nicht limitieren tut, jedoch wurde ich durch einen Hinweis von @rugabunda bei der folgenden Diskussion in Github ...
https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/issues/17
wieder auf das Thema aufmerksam und musste dabei leider festsellen, dass dieses Limit noch nach wie vor aktiv ist. 😭🤢🤮

Auch hier bei administrator.de wurde zu diesem Thema schon des Öfteren diskutiert.
Max. TCP Connections Windows 10

Na ja, wie auch immer, es gibt einen Trick um dieses Problem zu beseitigen und dieser ist nun ab V2.02 im Optimierungsskript implementiert. 😁

Ich finde es übrigens eine absolute Saurei, das Microsoft von dieser Kastration nirgends auch nur eine Silbe erwähnt. 😔

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 23.04.2023 um 19:30:31 Uhr
Goto Top
Moin Zusammen,

könnt ihr mir bitte einen Gefallen tun, danke.
Und zwar habe ich gerade festgestellt, das iperf3 von einem W11 22H2 in die Richtung eines Server 2019 nur ~30 parallele TCP Verbindungen aufbauen kann, über die es auch Daten versendet.
Iperf3 kann in dieser Konstellation zwar > 30 gleichzeitige TCP Sessions öffnen, jedoch nur über 30 davon Daten verschicken.

Iperf3 habe ich auf dem Client folgend gestartet.

iperf3 -c 172.31.0.4 -l4k -b1m -P 32

Mit dem folgenden Ergebnis.
iperf3-p32

Wie ihr sehen könnt, werden bei mir über die letzten beiden Sessions/Threads überhaupt keine Daten übertragen. 🤢🤮

Ausserdem schmiert iperf serverseitig bei >30 parallelen Verbindungen ständig ab. 😭

Wenn ich nun etwas zurückdenke, dann erinnere ich mich daran, dass mir dasselbe auch schon bei ntttcp und auch IOmeter passiert ist. 😬

Und es wird noch etwas schlimmer, dasselbe geschieht auch mit iperf zwischen Server 2019 und Server 2019. 😭

Nun zum Gefallen.
Könnt ihr bitte schauen, ob bei euch derselbe Murks passiert, danke.

Beste Grüsse aus BaWü
Alex

P.S. Der Grund für dieses Problem könnte übrigens auch dafür verantwortlich sein, das auf einem RDS-Sesionhost, nie mehr als 25-30 User mit derselben Anwendung anständig Arbeiten können. 😉
Underachiever
Underachiever 28.04.2023 um 10:58:57 Uhr
Goto Top
Zitat von @MysticFoxDE:
Nun zum Gefallen.
Könnt ihr bitte schauen, ob bei euch derselbe Murks passiert, danke.

Bei zwei Maschinen mit Windows 11 22H2 das selbe Ergebnis bei mir. Über 2 Verbindungen wird nichts übertragen.

Das gleiche bei 2 Windows Server 2019 Standard, virtualisiert auf dem gleicher Hyper-V Host.

Und danke für das Skript.
MysticFoxDE
MysticFoxDE 29.04.2023 um 07:43:51 Uhr
Goto Top
Moin @Underachiever,

Bei zwei Maschinen mit Windows 11 22H2 das selbe Ergebnis bei mir. Über 2 Verbindungen wird nichts übertragen.

Das gleiche bei 2 Windows Server 2019 Standard, virtualisiert auf dem gleicher Hyper-V Host.

vielen Dank für die Rückinfo.

Beste Grüsse aus Sigmaringen
Alex
beidermachtvongreyscull
beidermachtvongreyscull 11.05.2023 aktualisiert um 09:40:34 Uhr
Goto Top
Moin Alex ( @MysticFoxDE ),

ich folge Dir zwar, aber irgendwie hab ich den Artikel heute erst gesehen.

Ich teste es aus, da wir wirklich suboptimale Kanzleisoftware einsetzen, die viel über diverse Datenverbindungen abhandelt:
  • zentral liegende Access-DBs
  • SQL-Server
  • ganz viele zentralliegende Datendateien

Da kann solch eine Netzwerkperformance-Optimierung wirklich was hermachen.

Ich teste und werde berichten und schicke schon mal voraus:
Danke, dass Du Dein Wissen teilst!

Viele Grüße ausm Saarland
Andreas
MysticFoxDE
MysticFoxDE 11.05.2023 um 10:03:34 Uhr
Goto Top
Moin Andreas,

Ich teste und werde berichten und schicke schon mal voraus:

bitte beachten, dass das Skript nur für die Ausführung auf einem Client bestimmt ist.
Auf den Servern und Hypervisoren muss noch viel umfangreicher optimiert werden, vor allem ab Server 2019. 😔

Danke, dass Du Dein Wissen teilst!

Aber selbstverständlich, ein Fuchs ist ja auch kein Hamster. 🤪

Beste Grüsse aus BaWü
Alex
Xaero1982
Xaero1982 29.06.2023 um 11:42:12 Uhr
Goto Top
Moin @MysticFoxDE,

danke für das Skript.

Ich habe bei einem Kunden Radiusauthentifizierung aktiv mit dynamischer VLAN Zuweisung. Ich hatte immer wieder das Problem, dass mich die MA kontaktiert haben, weil sie nur eine Weltkugel hatten. Das Radiuslog sagte mir: Zugriff gewährt, aber letztlich haben sie offenbar keine IP bekommen.
Meist half ein Neustart oder das Ziehen des LAN Kabels für einige Sekunden, aber leider musste man manchmal andere Seiten aufziehen.

Ich hab dann mal dein Skript drüber laufen lassen - müsste noch die Version 1 gewesen sein und die Fehler sind so gut wie nicht mehr vorhanden.
Die Clients sind alle Dell Optiplex. Die Switche Cisco CBS.

Beim anderen Kunden habe ich Lenovo Notebooks und Ruckusswitche und habe diese Probleme nicht. Wer weiß wo es hakt.

Jedenfalls konnte ich es mit dem Skript recht gut in den Griff bekommen.

Danke für deine Mühe!

Grüße
Herkul
Herkul 29.06.2023 um 14:22:28 Uhr
Goto Top
Hallo Alex

Vielen Dank für das Skript. Ich war wirklich verzweifelt bis ich gestern auf dieses Skript gestossen bin, ansonsten wäre heute eine Neuinstallation geplant gewesen, was ich möglichst vermeiden wollte, da ich viele Programme bereits installiert habe und es ein Haufen Arbeit bedeuten würde.

Als ich Ende letzten Jahres auf Windows 11 umgestiegen bin, hatte ich bei meinem 10Gbit Heimnetz die volle Geschwindigkeit. Damals war nur ein 10Gbit NAS und mein 10Gbit Workstation verfügbar. Zudem hatte ich mit dem NAS ein Problem, weshalb ich ein neues bekommen hatte, weshalb ich zuerst dachte dieses Jahr als die Bandbreite von 900MB/s Lese/Schreib auf 200-400MB runterging, dass die Ursache mein NAS ist für den Einbruch. Vor paar Wochen kam einen 10Gbit Unraid Server dazu und ich merkte, dass ich dasselbe Problem auch hier habe und danach habe ich angefangen die Ursache mit iperf3 zu suchen bis ich festgestellt habe, dass die Ursache am Windows (Workstation) liegen muss, da wenn ich mit einem Linux von einem USB Boote dann habe ich die volle Bandbreite mit iperf3, jedoch wiederholt mit Windows nur 250MB Lese- und 400MB Schreibgeschwindigkeit.

Schliesslich habe ich verzweifelt Lösungen gesucht und zuerst war ich fündig auf Reddit, sodass jemand die Lösung bei einer Neuinstallation gefunden hatte. Deshalb war ich überzeugt, dass es sich um ein Update Problem handeln muss. Ich muss noch erwähnen, währen dessen habe ich natürlich alles an Einstellungen versucht zu ändern insbesondere auf der Netzwerkkarte disableing von Large Send Offload, erhöhen von maximum number of RSS Ques etc. was du auch in deinem Skript u.a. anderem vorgenommen hast. Vereinzelnd konnte ich mal kurzzeitig einen Schub bekommen aber, das war alles nur temporär.

Als ich zuerst dein desuboptimization Skript ausgeführt hatte, hatte ich plötzlich 950MB/s Schreibgesch. jedoch an der Lesegeschwindigkeit von 250MB/s hat sich zuerst nach dem Neustart nichts geändert. Danach habe ich das Backsuboptimization Skript ausgeführt und jetzt hatte ich 400MB/s Schreibe und 900MB/s Lesegeschwindigkeit. Schliesslich habe ich wieder den desubopt. ausgeführt und zusätzlich den max. number of RSS Ques von 4 auf 8 im Powershell mit dem Befehl Set-NetAdapterRss selber umgestellt, da ich einen 16 Kern CPU habe und mir die CPU-Last egal ist, hauptsache möchte ich stets die volle 10G Bandbreite haben.

Ich kann es einfach nicht verstehen, wie Microsoft so verantwortungslos handeln kann und den Kunden soviel Ärger vorbereitet. Auf meinem und von meiner Frau ihr Laptop habe ich seit halbem Jahr Linux Mint laufen, leider im Moment ist mein Workstation auf den Windows angewiesen, sonst würde ich keine Sekunde mehr verschwenden aus Prinzip, weil mich solche Problem sehr verärgert haben und viel Zeit gekostet haben

Danke nochmals für deine Mühe und dabei konnte ich vieles Lernen.

Schöne Grüsse
Furi
MysticFoxDE
MysticFoxDE 29.06.2023 aktualisiert um 17:40:12 Uhr
Goto Top
Moin Furi,

und zusätzlich den max. number of RSS Ques von 4 auf 8 im Powershell mit dem Befehl Set-NetAdapterRss selber umgestellt, da ich einen 16 Kern CPU habe und mir die CPU-Last egal ist, hauptsache möchte ich stets die volle 10G Bandbreite haben.

Die Umstellung der RSS Queues von 4 auf 8 bringt dir bei einer 10G NIC aber keinen Vorteil.
Genaugenommen hast du dadurch sogar einen Nachteil, weil man mit 8 RSS Queues bei den meisten Anwendungsfällen, viel weniger durchbekommt, als z.B. mit 2 oder 4.
Und nein, das ist kein Scherz, zu dem Thema habe ich schon ausführlich geschrieben, finde jetzt aber auf die Schnelle den entsprechenden Artikel nicht mehr.

Stelle deine NIC mal Testweise auf 2 RSS Queues um, damit solltest du eine bessere Performance erzielen. 😉

By the Way, bei RSS musst du "MaxProcessors" immer analog zu "NumberOfReceiveQueues" konfigurieren.
Sprich bei z.B. 2 RSS Queues ("NumberOfReceiveQueues") sollte auch "MaxProcessors" auf 2 stehen.

Set-NetAdapterRss -Name "NICNAME" -NumberOfReceiveQueues 2 -MaxProcessors 2  

Ich kann es einfach nicht verstehen, wie Microsoft so verantwortungslos handeln kann und den Kunden soviel Ärger vorbereitet. Auf meinem und von meiner Frau ihr Laptop habe ich seit halbem Jahr Linux Mint laufen, leider im Moment ist mein Workstation auf den Windows angewiesen, sonst würde ich keine Sekunde mehr verschwenden aus Prinzip, weil mich solche Problem sehr verärgert haben und viel Zeit gekostet haben

Ich verstehe diesen Software-Saftladen mittlerweile auch nicht mehr wirklich, zumindest nicht das was dieser mit seinen Produkten erreichen möchte, ausser die User nach und nach zu vergraulen. 😔

Beste Grüsse aus BaWü
Alex

P.S. Das folgende solltest du bei W11 im Bezug auf Performance aber auch noch berücksichtigen/deaktivieren. 😉

https://www.borncity.com/blog/2023/06/27/windows-11-netzwerkverkehr-erze ...
Herkul
Herkul 30.06.2023 um 03:23:50 Uhr
Goto Top
Moin Alex

Danke dir nochmals. Du hast recht, der Durchsatz ist etwas besser geworden. Darüber hinaus habe ich den Exploit-Schutz ausgeschaltet und ASLR war eh aktiviert bei mir. Jedoch bezüglich Phishingschutz hatte ich im Registry nicht den entsprechenden Eintrag bzw. den WTDS Ordner, es ist jedoch bereits einiges verbessert worden, sodass ich auf diese Finetuning verzichten kann. Die CPU Last ist eh enorm reduziert worden als ich von 8 Ques auf 4 bzw. 2 runtergegangen bin von ca. 15% auf ca. 3% bei 900MB/s Transfer (32 Thread CPU).

Ich bin sehr zufrieden, top! Ich werde deine Artikel und Beiträge folgen!

Schöne Grüsse aus der Schweiz
Furi
MysticFoxDE
MysticFoxDE 01.07.2023 aktualisiert um 10:27:17 Uhr
Goto Top
Moin @Herkul,

Die CPU Last ist eh enorm reduziert worden als ich von 8 Ques auf 4 bzw. 2 runtergegangen bin von ca. 15% auf ca. 3% bei 900MB/s Transfer (32 Thread CPU).

genau das ist mitunter der Punkt, warum ich auf Microsoft seit über drei Jahren, nicht mehr wirklich gut zu sprechen bin. Zumindest was das Thema Effizienz und Performance angeht, aber auch beim Thema Sicherheit.

Dein Verbrauch ist nun bei selber Leistung von 15% auf 3% heruntergegangen.
Das bedeutet jedoch im Umkehrschluss, dass dieser vorher das !!! Fünffache !!! für dasselbe, sprich extrem zu viel verbraucht hat. 😭

Dabei erlaubt sich Microsoft unter anderem auch noch solche Sprüche zu klopfen.
https://news.microsoft.com/de-de/features/microsoft-im-einsatz-fuer-nach ...
ms-versprechen

😔 ... 🤢🤮

Ich bin sehr zufrieden, top! Ich werde deine Artikel und Beiträge folgen!

Danke.

Wenn du dich nun für 2 RSS Queues entschieden hast, dann solltest du den SMB Client dieses Rechners, dementsprechend auch noch anpassen. 😉

Set-SmbClientConfiguration -ConnectionCountPerRssNetworkInterface 2


Und wenn du auf der Seite des SMB-Servers auch ein Windows hast, dann solltest du auf diesem noch das folgende ausführen.

Set-SmbServerConfiguration -TreatHostAsStableStorage $true


Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 01.07.2023 um 10:35:37 Uhr
Goto Top
Moin Zusammen,

🤔 ... ich sehe schon, ich muss wohl meinem Skript demnächst beibringen den aktuellen Linkspeed der NIC's zu erkennen und wenn dieser => 10G ist, dann sollte das sollte das Skript RSS bei den entsprechenden NIC wohl besser anlassen und auch gleich korrekt, sprich gemäß tatsächlichem Linkspeed konfigurieren. 😁
Bei der Gelegenheit würde ich dann auch gleich die schon mehrfach geforderte Konfigurationsmöglichkeit des Skripts mit implementieren.

Wird aber ein paar Wochen dauern, weil ich gerade einfach zu viel um die Ohren habe.

Beste Grüsse aus BaWü
Alex
Thorky
Thorky 18.07.2023 aktualisiert um 12:22:25 Uhr
Goto Top
Moin, ich bin gerade etwas verwirrt: Sollte nach Ausführung des Skripts (Powershell als Administrator) und Windows-Neustart nicht "Datacenter" unter "AppliedSettings" stehen? Bei mir steht weiterhin "Internet". Eine Fehlermeldung, dass das Umschalten nicht geklappt hat, gabs nicht.

Ich verwende Windows 10 Pro 22H2 und Hyper-V ist nicht aktiv. Müssen zum Skriptdurchlauf Hyper-V-Dienste laufen und falls ja, welche?
Hinzu kommt, dass ich schon vor längerer Zeit mit dem TCP-Optimizer Veränderungen vorgenommen hatte. Müssen hier erst die Windows-Standardeinstellungen wieder hergestellt werden, bevor man das Skript ausführt?
Ferner habe ich kein DSL, sondern Kabelinternet von Vodafone. Sind dort teilweise andere Werte zu verwenden?
Als Netzwerktreiber dient der Realtek PCIe GbE Family Controller.


Auch ohne die Umschaltung hat das Skript bereits einige Verbesserungen bewirkt, insbesondere der Ping mit der Gegenstelle "Deutsche Telekom Hamburg" beim Ookla-Speedtest hat sich von durchschnittlich 25ms auf 15ms reduziert (22-30ms vs. 13-17ms). Dafür schon einmal meinen herzlichen Dank!

Der Ookla-Test zeigt als eine Messvariable "Download Latency" an. Bei TCP AutoTuning=normal geht dieser Wert bis auf über 1000ms hoch, pendelt sich im Durchschnitt dann bei 300ms ein. Mit AutoTuning=disabled werden maximal 90ms erreicht bei einem Endwert von 80ms. Nach der Skriptanwendung stand TCP Autotuning wieder auf normal. Ist es nicht besser, händisch wieder disabled einzustellen?

So viele Fragen als blutiger Laie, mea culpa! 😊

Beste Grüße
Thorky
goscho
goscho 18.07.2023 um 15:49:23 Uhr
Goto Top
Zitat von @Thorky:

Moin, ich bin gerade etwas verwirrt: Sollte nach Ausführung des Skripts (Powershell als Administrator) und Windows-Neustart nicht "Datacenter" unter "AppliedSettings" stehen? Bei mir steht weiterhin "Internet". Eine Fehlermeldung, dass das Umschalten nicht geklappt hat, gabs nicht.

Nein, schau mal in diesen Beitrag: Wie man das Windows 10 und 11 TCP-Handling wieder desuboptimieren kann
Thorky
Thorky 18.07.2023 um 16:10:27 Uhr
Goto Top
Zitat von @goscho:


Hallo goscho

herzlichen Dank für den Hinweis! Dann scheint alles so in Ordnung und die optimale Einstellung gefunden zu sein. Sehr erfreulich.

Beste Grüße
Thorky
MysticFoxDE
MysticFoxDE 18.07.2023 um 19:32:06 Uhr
Goto Top
Moin @Thorky,

Moin, ich bin gerade etwas verwirrt: Sollte nach Ausführung des Skripts (Powershell als Administrator) und Windows-Neustart nicht "Datacenter" unter "AppliedSettings" stehen? Bei mir steht weiterhin "Internet". Eine Fehlermeldung, dass das Umschalten nicht geklappt hat, gabs nicht.

das hat sich ja mittlerweile geklärt.

Ich verwende Windows 10 Pro 22H2 und Hyper-V ist nicht aktiv. Müssen zum Skriptdurchlauf Hyper-V-Dienste laufen und falls ja, welche?

Nein, zum ausführen des Skripts benötigst du auf keinen Fall irgendwelche Hyper-V Dienste.

Hinzu kommt, dass ich schon vor längerer Zeit mit dem TCP-Optimizer Veränderungen vorgenommen hatte. Müssen hier erst die Windows-Standardeinstellungen wieder hergestellt werden, bevor man das Skript ausführt?

Nein, du musst nicht vorher zurücksetzen.
Bevor das Skript irgendwelche Optimierungen vornimmt, setzt es von sich aus eh die TCP und WINSOCK Einstellungen von Windows auf Werksdefault. 😁
(Skript V2.02 - Zeile 143 bis 149)

Ferner habe ich kein DSL, sondern Kabelinternet von Vodafone. Sind dort teilweise andere Werte zu verwenden?

Auch was das angeht, muss man nichts spezielles anpassen.
Das Skript taugt so wie es und je nach verbauter CPU locker für eine Uplinkgeschwindigkeit von 5GBit/s bis 10 GBit/s und zwar unabhängig ob über LAN oder WAN (Internet).

Als Netzwerktreiber dient der Realtek PCIe GbE Family Controller.

Das Skript optimiert absolut Herstellerneutral. 🤪

> Der Ookla-Test zeigt als eine Messvariable "Download Latency" an. Bei TCP AutoTuning=normal geht dieser Wert bis auf über 1000ms hoch, pendelt sich im Durchschnitt dann bei 300ms ein. Mit AutoTuning=disabled werden maximal 90ms erreicht bei einem Endwert von 80ms.

😯 ... das ist eine sehr interessante Info.

Nach der Skriptanwendung stand TCP Autotuning wieder auf normal. Ist es nicht besser, händisch wieder disabled einzustellen?

Das beantworte ich dir später, nachdem ich ein paar Tests gemacht habe.
Du hast mich mit der oberen Aussage nämlich wieder auf ein Problem aufmerksam gemacht, welches ich in letzter Zeit etwas aus dem Blick verloren habe.

Beste Grüsse aus BaWü
Alex
Thorky
Thorky 19.07.2023 aktualisiert um 21:13:22 Uhr
Goto Top
Hallo Alex,

vielen Dank für Deine informative Rückmeldung!

Zitat von @MysticFoxDE:
😯 ... das ist eine sehr interessante Info.
Freut mich. Habe versucht, das auf einem baugleichen PC mit auch Windows 10 Pro 22H2 bei ebenso 100MBit-Leitung, jedoch DSL statt Kabel, in einem anderen Haushalt zu reproduzieren. Das gelang nicht, TCP Autotuning scheint dort keinen Effekt auf "Download Latency" zu haben. In beiden Fällen überschreiten die Maximalwerte gerade mal 50ms und liegen durchschnittlich bei 25ms. Habe Screenshots davon, falls gewünscht.

Nach der Skriptanwendung stand TCP Autotuning wieder auf normal. Ist es nicht besser, händisch wieder disabled einzustellen?

Das beantworte ich dir später, nachdem ich ein paar Tests gemacht habe.
Du hast mich mit der oberen Aussage nämlich wieder auf ein Problem aufmerksam gemacht, welches ich in letzter Zeit etwas aus dem Blick verloren habe.

Ich bin gespannt, was der Grund dafür ist.

Beste Grüße
Thorky
MysticFoxDE
MysticFoxDE 20.07.2023 aktualisiert um 07:46:35 Uhr
Goto Top
Moin @Thorky,

Freut mich. Habe versucht, das auf einem baugleichen PC mit auch Windows 10 Pro 22H2 bei ebenso 100MBit-Leitung, jedoch DSL statt Kabel, in einem anderen Haushalt zu reproduzieren. Das gelang nicht, TCP Autotuning scheint dort keinen Effekt auf "Download Latency" zu haben. In beiden Fällen überschreiten die Maximalwerte gerade mal 50ms und liegen durchschnittlich bei 25ms. Habe Screenshots davon, falls gewünscht.

das kann schon gut sein. Der TCP Autotuning Parameter in Windows steuert das TCP-Fenster-Skalierungsverhalten in Windows.

Deitails siehe ...
https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking ...

Sprich, je höher deine Bandbreite Richtung dem Zugriffsziel ist umso höher schraubt ein Windows das TCP Fenster nach oben. Bei schnellen WAN aber auch LAN Anbindungen, schraubt das Windows das TCP Fenster meiner Ansicht nach zu rabiat und auch nicht anwendungskonform nach oben, wodurch genau das entsteht was du beschreibst, nämlich, dass dann sehr oft die Übertragungen seitens des Ziels viel zu spät quittiert werden. 😭

Komplett die TCP-Fensterskalierung zu deaktivieren ist aber auch nicht der Bringer. Du erreichst dadurch zwar konstantere und bessere Latenzen, weil das Gegenüber die Datenübertragung aufgrund des kleinen TCP-Fensters viel öfter quittieren muss, mit einem zu kleinen TCP-Fenster, wirst du einen schnellen LAN/WAN Anschluss, bandbreitentechnisch jedoch nie vollständig ausreizen können.

Bei deinem Rechner den du zuerst angesprochen hast, der vermutlich an einem schnellen Kabelinternetanschluss hängt, würde ich dir daher eher empfehlen das TCP Autotuning auf "highlyrestricted" zu stellen. Damit schaltest du die TCP-Fensterskalierung des entsprechenden Windows zwar nicht aus, jedoch limitierst du damit deren Spielraum und senkst dadurch gewaltig die Wahrscheinlichkeit einer Überskalierung. 😉

netsh int tcp set global autotuninglevel=highlyrestricted

Beste Grüsse aus BaWü
Alex
Thorky
Thorky 20.07.2023 um 10:40:51 Uhr
Goto Top
Hallo Alex

Zitat von @MysticFoxDE:
Komplett die TCP-Fensterskalierung zu deaktivieren ist aber auch nicht der Bringer. Du erreichst dadurch zwar konstantere und bessere Latenzen, weil das Gegenüber die Datenübertragung aufgrund des kleinen TCP-Fensters viel öfter quittieren muss, mit einem zu kleinen TCP-Fenster, wirst du einen schnellen LAN/WAN Anschluss, bandbreitentechnisch jedoch nie vollständig ausreizen können.

Habe ich so noch nicht erlebt. Ich habe vertraglich eine Bandbreite von 100MBit, die Telekomgegenstelle bescheinigt mir beim Test regelmäßig sogar bis zu 108 MBit. Die niedrigsten Bandbreitenwerte bei anderen Gegenstellen lagen bei 92 bis 94 MBit.

Bei deinem Rechner den du zuerst angesprochen hast, der vermutlich an einem schnellen Kabelinternetanschluss hängt, würde ich dir daher eher empfehlen das TCP Autotuning auf "highlyrestricted" zu stellen. Damit schaltest du die TCP-Fensterskalierung des entsprechenden Windows zwar nicht aus, jedoch limitierst du damit deren Spielraum und senkst dadurch gewaltig die Wahrscheinlichkeit einer Überskalierung. 😉

netsh int tcp set global autotuninglevel=highlyrestricted
Das habe ich gleich ausprobiert und prompt stieg "Download Latency" auf einen Maximalwert von 350ms und errechnete letztlich einen Durchschnittswert von knapp 290ms. Ich werde es zunächst bei Disabled belassen, aber ich weiß nun, was ich beim Auftreten von Problemen zumindest zeitweilig ändern kann. Herzlichen Dank dafür! 😀

Beste Güße aus SH
Thorky
DanHot
DanHot 20.07.2023 aktualisiert um 13:00:14 Uhr
Goto Top
Bei mir war:
netsh int tcp set global autotuninglevel=normal

hab dann mit:
netsh int tcp set global autotuninglevel=highlyrestricted
getestet und es war kein unterschied.

Dann mit:
netsh int tcp set global autotuninglevel=disable
und der Balkon ging instant nach oben und nicht so langsam wie sonst und ping zeiten waren deutlich besser, gerade im Upload stat 24 nur 12. Download von 24 auf 16-20.

Glasfaser 400/200
https://www.speedtest.net/result/15015024873.png

Finde das ich für ein Glasfaser eh ein schlechten Ping habe.
DanHot
DanHot 24.07.2023 um 14:39:04 Uhr
Goto Top
Weißt du wie das zustande kommt:
Ressourcen Monitor:
2qun0cl

Direkt danach mit WinMTR:
roqo76m

wie kann es sein das Windows 200ms anzeigt aber WinMTR 20ms
Herkul
Herkul 25.07.2023 aktualisiert um 01:50:54 Uhr
Goto Top
Zitat von @DanHot:

Bei mir war:
netsh int tcp set global autotuninglevel=normal

hab dann mit:
netsh int tcp set global autotuninglevel=highlyrestricted
getestet und es war kein unterschied.

Dann mit:
netsh int tcp set global autotuninglevel=disable
und der Balkon ging instant nach oben und nicht so langsam wie sonst und ping zeiten waren deutlich besser, gerade im Upload stat 24 nur 12. Download von 24 auf 16-20.

Glasfaser 400/200
https://www.speedtest.net/result/15015024873.png

Finde das ich für ein Glasfaser eh ein schlechten Ping habe.


Je nach Server, an dem du dich verbindest um einen Speedtest zu machen, wird sowohl deine Bandbreite als auch dein Ping unterschiedliche Werte haben. Siehe Beispiele von mir, welche ein guter Wert ist mit 3.9ms. Dafür müsste ich paar Server austesten. (server: hsi.bluewin.ch)

downstream 4 upstream 4 swisscom hsi


Und hier unten siehst du einen eher für mich einen schlechteren Wert mit 15.6ms und weniger als die hälfte Bandbreite. (server: ipv4-speedtest.litecom.ch)

downstream 4 upstream 4 litecom ipv4

Obwohl ich es mit dem selben Programm cnlab getestet habe. Man kann in diesem Programm die verschiedenen Provider, Universitäten etc. auswählen oder auf Auto lassen. Je nach Dämpfung (Strecke) hat man besseren oder schlechteren Ping. Es gibt noch andere Faktoren sicherlich, wollte aber diesen hier erwähnen, da man auf den Server schnell und leicht einen Einfluss hat mit dem man sich verbindet gewollt oder ungewollt.

@alex

Ich habe zwei Fragen an dich:
1) Diese Skripte von dir, kann man diese auch auf eine Virtuelle Windows Maschine mit virtuellem Red Hat VirtIO Netzwerkadapter anwenden? Du hattest geschrieben => keine Server, es handelt sich hier um keinen Server nur VM Windows. Wenn nicht, dann würde ich eine echte Netzwerkkarte durchreichen, wenn es nicht sein muss, dann würde ich es eher nicht tun, da ich den Server nicht Neustarten möchte auf dem der VM läuft.

2) Ich habe wieder Durchsatzprobleme, vor allem auf eingehende SMB Verbindung auf meinem Workstation => diese liegt bei 300MB/s ausgehende ist OK mit 800MB/s an Unraid und NAS Servern, welche aber auch mal so mal so sind. Ich habe das Skript wieder paar mal ausgeführt und resettet und wieder etc. leider wird es nicht besser wenn dann nur schlechter.

Ich werde mal einen kompletten Reset machen, irgendwo habe ich gelesen mit TCP reset und paar Messungen machen und dann nachden Skripten wieder ein paar Messungen machen.

Meine eigentliche Frage ist, warum ändert sich denn die Geschwindigkeit innerhalb kurzer Zeit. Wäre doch schön, wenn er bis wenigsten bis zum nächsten Update halten würde.

Gruss
Furi
MysticFoxDE
MysticFoxDE 25.07.2023 aktualisiert um 09:03:34 Uhr
Goto Top
Moin @DanHot,

Bei mir war:
netsh int tcp set global autotuninglevel=normal

hab dann mit:
netsh int tcp set global autotuninglevel=highlyrestricted
getestet und es war kein unterschied.

der Unterschied zwischen "normal" und "highlyrestricted" liegt "lediglich" 🙃 im TCP-Fenster-Skalierungsfaktor.

Bei "highlyrestricted" darf Windows das TCP-Fenster bis zu einem Skalierungsfaktor von 2 hochskalieren, was einer maximalen TCP-Fenstergrösse von 256KB entspricht.

Bei "normal" darf ein modernes Windows das TCP-Fenster bis zu einem Skalierungsfaktor von 14 hochskalieren, was einer maximalen TCP-Fenstergrösse von !!! 1GByte !!! entspricht. 😱
Das entspricht übrigens dem 16384fachen dessen, was ein XP (64K) max. unterstützt hat. 😔


Dann mit:
netsh int tcp set global autotuninglevel=disable
und der Balkon ging instant nach oben und nicht so langsam wie sonst und ping zeiten waren deutlich besser, gerade im Upload stat 24 nur 12. Download von 24 auf 16-20.

Glasfaser 400/200
https://www.speedtest.net/result/15015024873.png

Bei diesem Speedtest musst du folgendes berücksichtigen.
speedtest latency

Der erste Wert gibt die Latenz für einen reinen Verbindungsaufbau wieder ohne dabei auch grossartig Daten mit zu übertragen. Sprich, das ist die roh "Round Trip Time", die +- auch der RTT eines Pings entsprechen sollte.

Der nächste Wert, die 20 ms, ist die Downloadlatenz. Diese bezieht sich jedoch auf die Übertragung eines ganzen TCP-Fensters, welches bei einem aktuellen Windows, wie schon oben geschrieben, auf bis zu 1GByte anwachsen und somit aus einer Kette von bis zu sagenhaften ~735.428 Ethernet-Paketen bestehen kann.
(Bei XP wurde durch dessen maximale TCP-Fenstergrösse von 64K, eine Datenübertragung übrigens spätestens nach jedem ~44ten Paket einer Sequenz bereits quittiert.)

Sprich, je grösser das TCP-Übertragungsfenster wird, umso länger dauert es auch, bis die Gegenstelle die Übertragung quittiert.

Und umgekehrt gilt natürlich, je kleiner ein TCP-Übertragungsfenster ist, umso öfters bekommst du von der Gegenstelle auch eine Übertragungsquittierung (ACK). 😉

Ich frage mich aber gerade dennoch, wie du bei "autotuninglevel=disabled" und einer Basislatenz von 8ms auf eine Uploadgeschwindigkeit von 210 MBit/s kommst. 🤔
Bei einer RTT von 8ms und einer TCP-Window-Size von 64K, sollten eigentlich nicht mehr wie ~65 MBit/s durchgehen.

Kann man mit den folgenden Kalkulatoren übrigens schnell selbst mal nachrechnen lassen. 😁
https://ogris.de/howtos/advtbc.html
https://wintelguy.com/wanperf.pl

Ja, OK, jetzt weis ich wie der Speedtest auf die 210 MBit/s kommt ...

speedtest multisession

... dieser misst über mindestens 6 parallele Sessions/Threads und summiert einfach deren Einzeldurchsätze zu einem Gesamtdurchsatz und die Latenz wird über alle Sessions einfach gemittelt.

Damit eignet sich dieser Speedtest zwar gut, um +- den Gesamtdurchsatz deines Anschlusses zu ermitteln, nicht jedoch um die Performance einer einzelnen TCP-Session zu messen.
Das Letztere, die Performance der Einzelsession, ist in den meisten Anwendungsfällen jedoch das viel entscheidendere und zwar egal ob es um Durchsatz oder Latenz geht.
Am Ende des Tages musst du dich jedoch entscheiden. Entweder möchtest du den bestmöglichen Durchsatz haben oder die bestmögliche Latenz oder etwas dazwischen. 😉

Finde das ich für ein Glasfaser eh ein schlechten Ping habe.

Sieht für mich ganz in Ordnung aus.
Siehe auch die sehr ausführliche Antwort von @Herkul

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 25.07.2023 um 20:26:19 Uhr
Goto Top
Moin @Herkul,

@alex

Ich habe zwei Fragen an dich:
1) Diese Skripte von dir, kann man diese auch auf eine Virtuelle Windows Maschine mit virtuellem Red Hat VirtIO Netzwerkadapter anwenden? Du hattest geschrieben => keine Server, es handelt sich hier um keinen Server nur VM Windows. Wenn nicht, dann würde ich eine echte Netzwerkkarte durchreichen, wenn es nicht sein muss, dann würde ich es eher nicht tun, da ich den Server nicht Neustarten möchte auf dem der VM läuft.

Ja, das Skript sollte 1:1 nicht auf einem Server ausgeführt werden, vor allem nicht direkt auf einem Hyper-V Node.
In einer VM mit W10 oder W11, kannst du das Skript jedoch ohne jegliche Anpassung so durchlaufen lassen. 😉

Bei einer Windows Server VM kann man das Skript (V2.02) mit einer kleinen Anpassungen aber auch verwenden.
Dazu musst du im Skript lediglich die Zeile 270 bis 326 löschen, sprich, den gesamten "# OPTIMIZE TCP CONGESTION CONTROL" Block rausschmeissen, weil diese Optimierung auf einem Server nicht notwendig ist.


2) Ich habe wieder Durchsatzprobleme, vor allem auf eingehende SMB Verbindung auf meinem Workstation => diese liegt bei 300MB/s ausgehende ist OK mit 800MB/s an Unraid und NAS Servern, welche aber auch mal so mal so sind. Ich habe das Skript wieder paar mal ausgeführt und resettet und wieder etc. leider wird es nicht besser wenn dann nur schlechter.

Wie ermittelst du den die SMB Performance?

Beste Grüsse aus BaWü
Alex
Herkul
Herkul 25.07.2023 um 21:25:02 Uhr
Goto Top
Danke für den Tipp, werde ich demnächst so auf die VM anwenden.

Zu deiner Frage:
1) Ich ermittele zum einen durch verschiedene Benchmark apps wie (AJA system Test, Crystaldiskmark, ATTODisk) nachdem ich die SMB Server (Freigabeordner) als Netzlaufwerk eingebunden habe.

2) Iperf3

3) Durchs hin und her kopieren grosse Dateien, Filme etc.

Hier unten füge ich ein Screenshot von allen Messungen auf einmal. Ich habe versucht etwas zu beschriften, ich hoffe es ist verständlich genug. Eine AJA System Test, Iperf3 mit Server cmd line und PC cmd line und crystaldisk => die obere ist PEAK Messung (Q8T1) und untere ist Real World mit Q1T1. Manchmal stimmen die Iperf3 Werte nicht mit den Messungen bzw. Kopierwerte, d.h. ich bekomme beim Kopieren sogar schnellere Werte als Iperf3. Ich habe inzwischen alles versucht, jeden Reset und Optimization... Wenn ich im Windows Netzwerk Reset mache, dann bekomme ich ca. 400MB/s Lesen und 400MB/s schreiben auf Server und NAS. Jedoch sobald ich etwas versuche zu ändern wie RSS oder Large send offload, danach sinkt vor allem die Lesegeschwindigkeit auf 200MB/s. Vor paar Wochen hatte ich noch 800MB/s nachdem ich dein Skript angewendet hatte. Das Problem liegt definitiv auf dem Windows 11 Rechner. Mit der VM Windows 10 scheint es OK zu sein aber auch dort nicht die volle Geschwindigkeit jedoch deutlich besser als hier auf dem PC.

zusammenfassung speedtests
Herkul
Herkul 26.07.2023 aktualisiert um 12:25:02 Uhr
Goto Top
Ein kleines Update: Wenn ich nachdem ich im Windows Netzwerk zurückgesetzt habe ohne runterzufahren dein Skript durchführe zusammen mit "SMB client optimization" und dann NumberofReceiveQueues mir max Proceesor auf 2 setze zusammen mit der gleichen Umstellung im Geräte Manager. Nachdem ich das ganze bevor Windows zu einem Neustart zwingt durchgeführt habe, dann bekomme ich deutlich bessere Werte: Sequenzielle Schreiben auf Server = 800-900 MB/s und lesen vom Server ca. 600-700MB/s. Diese wären zwar für 10Gbe Netz nicht die volle Geschwindigkeit aber damit wäre ich zufrieden, nach dem ich solange damit gekämpft habe.

Sollte ich nur einer der Umstellungen nachdem Neustart durchführen z.B. jetzt, danach sinkt vor allem die Lese Geschwindigkeit auf 275MB/s als ob ich ein 2.5Gbe Netz Parameter hätte. Es wird aber vermutlich auch ohne eine Umstellung dasselbe mit der Zeit passieren, das werde ich jetzt genauer beobachten. Ich kann mich nicht erinnern, dass ich mit Windows 10 letztes Jahr ähnliche Probleme hatte, deshalb wenn ich wüsste, dass ich dort kein Problem haben werde, würde ich sogar auf Windows 10 zurück gehen.

P.S.: Iperf3 Werte haben sich aber nicht geändert, nach wie vor: 180MB/s vom Server zum PC 790MB/s vom PC zum Server
MysticFoxDE
MysticFoxDE 26.07.2023 aktualisiert um 19:47:25 Uhr
Goto Top
Moin @Herkul,

Ein kleines Update: Wenn ich nachdem ich im Windows Netzwerk zurückgesetzt habe ohne runterzufahren dein Skript durchführe zusammen mit "SMB client optimization" und dann NumberofReceiveQueues mir max Proceesor auf 2 setze zusammen mit der gleichen Umstellung im Geräte Manager. Nachdem ich das ganze bevor Windows zu einem Neustart zwingt durchgeführt habe, dann bekomme ich deutlich bessere Werte: Sequenzielle Schreiben auf Server = 800-900 MB/s und lesen vom Server ca. 600-700MB/s. Diese wären zwar für 10Gbe Netz nicht die volle Geschwindigkeit aber damit wäre ich zufrieden, nach dem ich solange damit gekämpft habe.

oh, du hast eine 10G NIC.

Dafür ist das Skript noch nicht 100% ausgelegt, weil es RSS ausschaltet und ohne RSS bekommst du eine 10G NIC, zumindest Bandbreitentechnisch, nicht zu 100% ausgereizt.

Wir können das Thema RSS und 10G gerne die Tage noch genauer besprechen.

Jetzt möchte ich jedoch auf einen ganz anderen Murks eingehen, über den ich gestern Abend gestolpert bin.

Und zwar habe ich gestern ein paar iPerf Tests mit meiner 1G NIC gemacht und habe dabei festgestellt, dass ich bei einem bestimmten Testmuster, bei ~950 Mbit/s abgehendem Durchsatz, den ersten Kern der CPU meiner Workstation, bereits schon zu 70% ausgelastet habe.
Das war für mich in so weit sehr überraschend, weil ich bei anderen Tests mit einer 10G NIC, deutlich höhere Durchsätze bei ähnlicher CPU Last gesehen habe.
Also habe ich heute Nachmittag einen kleinen weiteren Test gemacht.

Zu den Rahmenbedingungen.
Die CPU Kerne der Workstation A (iPerf Client) laufen alle mit ~4,4 GHz, die der Workstation B (iPerf Server) laufen mit ~4,3 GHz.
Auf der Workstation A ist ein W11 22H2 Enterprise installiert und die Workstation B läuft mit einem W10 22H2 Enterprise.
In beiden Workstations steckt eine Intel X540 Dualport 10G NIC.
Der erste Port der X540 ist bei beiden Workstations mit demselben Aruba 2930F Switch, mit einer Uplinkgeschwindigkeit von 1Gbit/s verbunden.
Über den zweiten Port der X540, sind beide Workstations direkt mit 10 Gbit/s miteinander verbunden.

Auf beiden Workstations ist das Optimierungsskript durchgelaufen. Somit laufen die NIC’s ohne RSS & Co. Zudem habe ich auf beiden Workstations das TCP Autotuninglevel auf disabled gesetzt, was Bedeutet das beide mit einem maximalen TCP Fenster von 64K arbeiten sollten.

Bei allen Tests sehen die iPerf Parameter folgend aus …

iperf3.exe -c xxx.xxx.xxx.xxx -l 64k -N -t 60 -P 1

… sprich, ein Thread mit einer Blockgrösse von 64k, also nichts Spektakuläres.

Wenn ich nun den Test über die 1G Verbindung laufen lasse, dann bekomme ich von der Workstation A sendend zu der Workstation B …

w11tow10-1g

… um die 950 Mbit/s hin und „bezahle“ das mit ~45% Last auf Kern 0.

Umgerechnet in GHz sind das … 4,4GHz/133%*45%=~1,49 GHz
Sprich, der „CPU-Verbrauch“ liegt in dem Fall bei ~1,49 GHz/0,95Gbit/s=~1,57GHz/Gbit/s.
Und nein, ich habe mich bei den 133% nicht verrechnet, da die Auslastung meiner CPU laut Microsoft bei absoluter Volllast nicht bei 100% sondern bei 133% liegt. 🙃

Die falsche Darstellung der CPU Auslastung ist aber nochmals ein eigenes MS-Murks-Thema. 😔
Zurück zum vorherigen Thema.

Wenn ich iPerf nun in Umgekehrter Richtung laufen lasse, sprich Workstation B sendet über 1G zu Workstation A, komme ich zu folgendem Ergebnis.

w10tow11-1g

Und auch in die umgekehrte Richtung (iPerf mit „-R“) erreiche ich mit ~950 MBit/s fast das Maximum der 1G Verbindung.
Aber … ich „bezahle“ die nun eingehenden 950 Mbit/s mit einer deutlich höheren CPU-Auslastung von ~75% des Cores 0, über den die NIC’s wegen dem ausgeschalteten RSS zwangsweise laufen.
Das bedeutet …
4,4GHz/133%*75%=~2,48 GHz …
~2,48 GHz/0,95Gbit/s=~2,61GHz/Gbit/s.

Sprich, für eingehende 950 MBit/s über eine 10G NIC die mit 1G zu einem Switch angebunden ist, frisst mein W11 Rechner … (~2,61GHz/Gbit/s) / (~1,57GHz/Gbit/s)=1,66 … also 66% mehr CPU Leistung als beim Senden von 950 über dieselbe Strecke. 🙃

Daher …. Frage Nr. 1 an die in Redmond gelandeten Microsoftianer.

Warum verballert das W11 beim Empfangen von Daten über TCP, 66% mehr CPU Leistung als beim Senden? 🤨

So, jetzt kommen wir zu dem noch spannenderen Teil.
Als nächstes habe ich dieselben beiden Tests wiederholt, aber dieses Mal über die direkte 10G Verbindung.

Von Workstation A Richtung Workstation B über 10G sieht das Ergebnis nun folgend aus …

w11tow10-10g

Sprich, nun über 10G kann meiner Workstation mit der Auslastung des Kern 0 von ~75%, nun auf einmal ~7,5 Gbit/s befördern.
Das entspricht einem CPU-Verbrauch von …
4,4GHz/133%*75%=~2,48 GHz …
~2,48 GHz/7,5Gbit/s=~0,33GHz pro Gbit/s.
Das sind fast fünf Mal geringere CPU-Kosten als über 1G!

@microsoftianer
Frage Nr. 2
Warum kostet die TCP-Übermittlung bei einem W11 über eine 1G NIC, fast die fünffachen CPU- Ressourcen im Vergleich zu einer 10G NIC?

So jetzt der Vollständigkeit halber noch die das Ergebnis in die andere Richtung, also Workstation B sendend zu Workstation A über 10G.

w10tow11-10g

Beim eingehenden Datenverkehr über 10G verbraucht die Workstation A somit …
4,4GHz/133%*127%=~4,2 GHz … (5% Abzug wegen Grundlast)
~4,2 GHz/7,3Gbit/s=~0,57GHz pro Gbit/s.

Das sind ebenfalls fast fünf Mal geringere CPU-Kosten als über 1G.

@microsoftianer
Frage Nr. 3
WARUM macht ihr so einen Murks?

Übrigens sieht man auf der rechten Seite des letzten Screenshots ganz genau, was ich mit den 133% bei der CPU-Auslastung meine. 🙃😭🤢🤮

Beste Grüsse aus BaWü
Alex
MysticFoxDE
MysticFoxDE 26.07.2023 aktualisiert um 20:10:47 Uhr
Goto Top
Moin Zusammen,

noch eine kleine „witzige/traurige/verwirrende“ Ergänzung zu meinem letzten Post.
Ich habe denselben iPerf Test nun von der Workstation A gegen eine Debian VM laufen lassen, die auf einem Hyper-V läuft. Zwischen der Workstation A und der Debian VM befinden sich übrigens drei Aruba 2930F Switche + der vSwitch im Hyper-V. Alles ist über 1G miteinander verbunden.

Wenn ich nun den Iperf Test Sendend von der Workstation A Richtung Debian starte, bekomme ich das folgende Ergebnis.

w11todebian-1g

Sprich …
4,4GHz/133%*11%=~0,36 GHz … (5% Abzug wegen Grundlast)
~0,36 GHz/0,92Gbit/s=~0,391 GHz/Gbit/s.

Das ist übrigens +- derselbe Verbrach, wie auch bei dem Test von Workstation A (W11) zu Workstation B (W10), jedoch über 10G und nicht 1G. 😉

Sprich, zu einem Linux kann ein W11 über einen 1G Uplink die Daten mit fast genau derselben Effizienz senden, wie von W11 zu W10 über 10G, sprich viel effizienter, wie von W11 zu einem W10 über 1G. Ja, ich weiss … 😖😵‍💫🥴 … ich versuche es selbst noch zu verstehen.

Von Debian aus sendend Richtung W11 über 1G …

debiantow11-1g


4,4GHz/133%*85%=~2,81 GHz … (5% Abzug wegen Grundlast)
~2,81 GHz/0,92Gbit/s=~3,05 GHz/Gbit/s.
… hingegen noch Gruseliger aus als beim Test von W10 zu W11 über 1G. 😭🤢🤮

@microsoftianer
WTF? 🤨

Gruss Alex
MysticFoxDE
MysticFoxDE 27.07.2023 um 07:07:14 Uhr
Goto Top
Moin Zusammen,

ich habe gestern noch etwas nach der Ursache für das oben angesprochene Problem gesucht und bin über die folgenden, sehr interessanten Beiträge gestolpert.

https://learn.microsoft.com/en-us/answers/questions/89768/slow-wired-upl ...
https://learn.microsoft.com/en-us/answers/questions/330172/extreamly-slo ..)

Hier wird ein Problem im Zusammenhang mit SACK beschrieben, welches auch für meine Beobachtungen verantwortlich sein könnte.

Das wesentliche steht jedoch in dem folgenden Beitrag ganz unten ...

https://techcommunity.microsoft.com/t5/networking-blog/algorithmic-impro ...

no sack fix for w10

Sprich, ja, es gibt noch definitiv einen BUG im TCP-Stack von Windows 10 und nein, Microsoft möchte diesen bei Windows 10 wohl nicht mehr fixen. 😔
So viel zum Thema Supportende für Windows 10 erst ab dem 14.10.2025. 🤢
Und ich bin mir ganz sicher, das Microsoft dieses absolut schlampige Vorgehen nicht nur bei diesem BUG anwendet. 🤮

Beste Grüsse aus BaWü
Alex
luckyjoker
luckyjoker 06.08.2023 aktualisiert um 23:29:39 Uhr
Goto Top
Ist schon spannend der Beitrag. Recht lehrreich was sich da aktuell entwickelt.

Aber warum nicht einfach TCP Optimizer, (vlt. in Verbindung mit Cfosspeed), genommen wird verstehe ich nicht so recht. Was habe ich übersehen? Das wirkt so als würde das Rad zweimal erfunden werden?
Ist kein Affront, bitte nicht falsch verstehen, ich bin mir sicher was übersehen zu haben, nur was?

PS: Ein Warnhinweis "Nix für Otto-Normal-Nutzer*" oben drauf wäre vlt. auch sinnvoll.
Das Backup funktioniert zumindest bei mir nicht.
Ich suche mir nun mühsam meine vorherigen Einstellungen zusammen, da mein Ping jetzt 4-5 Ms höher ist als vorher. Ist eine einfache Windows-10-Pro-Maschine, nichts Besonderes.

*Und auch nichts für sich selbst überschätztende Ex-Admins wie mich der unbedingt auf ausführen klicken musste. face-smile
MysticFoxDE
MysticFoxDE 07.08.2023 aktualisiert um 07:36:59 Uhr
Goto Top
Moin @luckyjoker:

Ist schon spannend der Beitrag. Recht lehrreich was sich da aktuell entwickelt.

Aber warum nicht einfach TCP Optimizer, (vlt. in Verbindung mit Cfosspeed), genommen wird verstehe ich nicht so recht. Was habe ich übersehen? Das wirkt so als würde das Rad zweimal erfunden werden?
Ist kein Affront, bitte nicht falsch verstehen, ich bin mir sicher was übersehen zu haben, nur was?

Ich habe das Skript primär für den Enterprise Einsatz entwickelt, so dass es jeder Admin zum Einen durchschauen und zum Anderen, bei Bedarf auch anpassen kann. Besonders das letztere ist bei TCP Optimizer nicht möglich und beliebt (da EXE), ist dieser im Enterprise Umfeld auch nicht wirklich.

PS: Ein Warnhinweis "Nix für Otto-Normal-Nutzer*" oben drauf wäre vlt. auch sinnvoll.

Na ja, das Problem betrifft aber auch die Otto-Normal-Nutzer und die Meisten davon, hatten bisher durch das Skript keine grösseren Probleme.

Das Backup funktioniert zumindest bei mir nicht.

Hast du zum Zurücksetzen das folgende Skript versucht?

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Ich suche mir nun mühsam meine vorherigen Einstellungen zusammen, da mein Ping jetzt 4-5 Ms höher ist als vorher. Ist eine einfache Windows-10-Pro-Maschine, nichts Besonderes.

😯 ... das ist spannend, den genau das sollte nicht passieren. 😬

Wie hast du die Pingzeit genau gemessen, mit Ping über cmd oder über einen Speedtest?

Gruss Alex
MysticFoxDE
MysticFoxDE 07.08.2023 um 08:14:06 Uhr
Goto Top
Moin Zusammen,

ich habe letzte Woche noch herausgefunden warum die CPU Last bei einem 1G Uplink so durch die Decke geht.
Das ganze hängt mit der "Interrupt Moderation" zusammen.
Wenn ich "Interrupt Moderation" bei einer NIC mit einem 1G Uplink deaktiviere, geht die von dieser NIC ausgehende CPU Auslastung durch die Decke, sobald ich Last drüber jage.
Bei einem 10G Uplink, wirkt sich das Deaktivieren der "Interrupt Moderation" hingegen nicht so dramatisch aus. 😖😵‍💫

Warum das so ist verstehe ich momentan selber nicht so wirklich.
Eigentlich sollte eine 10G NIC bei hoher Auslastung wesentlich mehr Interrupts erzeugen und damit das System höher Auslasten als eine 1G NIC. 🤨

Kann mir mal bitte jemand plausibel erklären, warum das beim Windows nicht der Fall ist, danke. 🙏

Beste Grüsse aus BaWü
Alex
DanHot
DanHot 07.08.2023 um 08:37:12 Uhr
Goto Top
TCP Optimizer kann ich ja noch verstehen, aber cfoss ist ein totes Projekt und war in der Vergangenheit mal sehr nützlich. Alles über 100mb kommt cfoss doch garnicht mehr klar wenn man sich einige Post da im Forum anschaut und antworten kommen da auch keine mehr von den Admins. zumindest als ich mal vor Jahren rein geschaut habe.
ni.sch
ni.sch 11.08.2023 um 11:46:03 Uhr
Goto Top
Hi Alex,

aufgrund meines (oder fast unseres face-wink ) anderen Threads mit langsamer Software mal eine Frage zu deinem Script:
Ich habe das Gefühl, dass Rechner auf denen das Script lief länger brauchen wenn sie eine Weile (ohne bisher genau zu prüfen vll. 3-5+ Tage) aus waren um nach dem Boot Netzwerkkonnektivität zu bekommen.

Also an der Anmeldemaske dauert es durchaus bis zu 30 Sekunden bis der Erdball in das Netzwerksymbol wechselt.
Das hat dann auch zur Folge, dass die Netzlaufwerke nicht da sind wenn man sich voher anmeldet. Abmelden und direkt wieder anmeldet behebt das dann natürlich.

Könnte da ein Zusammenhang bestehen?

Gruß
Nico
MysticFoxDE
MysticFoxDE 14.08.2023 um 08:19:40 Uhr
Goto Top
Moin Nico,

aufgrund meines (oder fast unseres face-wink ) anderen Threads mit langsamer Software mal eine Frage zu deinem Script:

na ja, nach deinem Hinweis habe ich bei unseren Kunden genauer nachgesehen und diese waren vom selben Problem genauso betroffen. 😭

Ich habe das Gefühl, dass Rechner auf denen das Script lief länger brauchen wenn sie eine Weile (ohne bisher genau zu prüfen vll. 3-5+ Tage) aus waren um nach dem Boot Netzwerkkonnektivität zu bekommen.

Also an der Anmeldemaske dauert es durchaus bis zu 30 Sekunden bis der Erdball in das Netzwerksymbol wechselt.
Das hat dann auch zur Folge, dass die Netzlaufwerke nicht da sind wenn man sich voher anmeldet. Abmelden und direkt wieder anmeldet behebt das dann natürlich.

Könnte da ein Zusammenhang bestehen?

Ähm, jain, also theoretisch eigentlich nein, praktisch jedoch ja weil Windows. 😬

Das einzige was mir jetzt so auf die schnelle dazu einfällt, wäre beim Booten eine viel zu hohe CPU Last auf Kern 0,
wenn dieser Kern voll ausgelastet ist, dann bekommst du über die NIC auch keine Performance mehr hin, weil diese wegen dem abgeschalteten RSS, immer an Kern 0 gebunden ist.

Dann habe ich wie im letzten Post angesprochen, noch ein komisches Verhalten von Windows bei abgeschalteter Interrupt-Moderation beobachtet, konnte das Thema bisher aufgrund von Zeitmangel nicht wirklich weiter nachverfolgen.

Gruss Alex
Unikat2000
Unikat2000 02.11.2023 um 22:01:33 Uhr
Goto Top
Hi Alex,

ich habe dein Skript angewendet und muss leider als Feedback geben, das es zu einer Verschlechterung der Netzwerkgeschwindigkeit bei meiner Konfiguration geführt hat.

Generell hatte ich immer das Problem mit meinem Rechner bzw. Netzwerk nie die volle Übertragungsgeschwindigkeit zu erreichen. Weder im ursprünglichen 1GBit Netz mit Windows 7, noch im jetzigen nachgerüsteten 2,5GBit mit Windows 10. Über die Jahre habe ich viel ausprobiert: andere Kabel, verschiedene Netzwerkkarten und natürlich diverse Einstellungen, aber den Flaschenhals oder den limitierenden Faktor konnte ich nie ausfindig machen. Momentan möglich sind mit dem 2,5GBit Verbindung max. 175MB/s oder 1,46Gbit, gemessen mit iperf aber auch realer Datenübertragung.

Nachdem ich auf zwei Rechnern dein Skript ausgeführt hatte, hatte ich plötzlich nur noch 15-25MB/s oder ca. 125Mbit an Übertragungsrate. Ursächlich dafür scheint die von deinem Skript deaktivierte Flusskontrolle zu sein, da sobald wieder aktiviert wieder die gewohnten 175MB/s möglich sind.

Interessant wird das ganze jedoch unter Linux. So konnte ich unter Linux Mint (als Live System) iperf Messungen die mit Übertragungsraten von 2,35Gbit sehr nahe am technischen Möglichen waren. Ich verwende Realtek 2,5Gbit Netzwerkkarten mit dem RTL8125 bzw. RTL8125AG als Addon Karten

Hast du vielleicht eine Idee was die Ursache bei meinem Setup sein könnte oder wie ich mit der Diagnose weitermachen kann?

Gruß
Ralf
MysticFoxDE
MysticFoxDE 03.11.2023 um 08:29:07 Uhr
Goto Top
Moin Ralf,

Generell hatte ich immer das Problem mit meinem Rechner bzw. Netzwerk nie die volle Übertragungsgeschwindigkeit zu erreichen. Weder im ursprünglichen 1GBit Netz mit Windows 7, noch im jetzigen nachgerüsteten 2,5GBit mit Windows 10. Über die Jahre habe ich viel ausprobiert: andere Kabel, verschiedene Netzwerkkarten und natürlich diverse Einstellungen, aber den Flaschenhals oder den limitierenden Faktor konnte ich nie ausfindig machen.

die Probleme kenne ich nur zu gut. 😔

Nachdem ich auf zwei Rechnern dein Skript ausgeführt hatte, hatte ich plötzlich nur noch 15-25MB/s oder ca. 125Mbit an Übertragungsrate. Ursächlich dafür scheint die von deinem Skript deaktivierte Flusskontrolle zu sein, da sobald wieder aktiviert wieder die gewohnten 175MB/s möglich sind.

😖 … ähm, eine solche Auswirkung sollte das Deaktivieren von FC überhaupt nicht mit sich bringen, das ist schon ganz schön krass. 😬

Hast du vielleicht eine Idee was die Ursache bei meinem Setup sein könnte oder wie ich mit der Diagnose weitermachen kann?

Kannst du bitte auf dem entsprechenden Rechner mit der 2.5G NIC mal den folgenden Befehl ausführen und das Ergebnis hier posten, danke.

(Bitte PowerShell als Administrator starten und NICNAME entsprechend anpassen.)
Get-NetAdapterAdvancedProperty -Name "NICNAME" -AllProperties -IncludeHidden | FT -AutoSize   

Wenn die NIC Interrupt Moderation unterstützt, dann könntest du als nächstes mal die folgenden Szenarien testen.

- FC aus & IM an
- FC an & IM an

Gruss Alex
Unikat2000
Unikat2000 03.11.2023 aktualisiert um 17:01:41 Uhr
Goto Top
Hallo Alex,

bezüglich Interrupt Moderation die Messungen mit iperf3.exe -t 60 -c 192.168.10.x

- FC aus & IM an
[ ID] Interval Transfer Bitrate
[ 5] 0.00-60.00 sec 8.25 GBytes 1.18 Gbits/sec sender
[ 5] 0.00-60.00 sec 8.25 GBytes 1.18 Gbits/sec receiver

- FC an & IM an
[ ID] Interval Transfer Bitrate
[ 5] 0.00-60.00 sec 10.6 GBytes 1.52 Gbits/sec sender
[ 5] 0.00-60.01 sec 10.6 GBytes 1.52 Gbits/sec receiver

Hier noch die Ergebnisse von Get-NetAdapterAdvancedProperty. Der dritte PC = NAS Rechner beherrscht diesen Befehl leider nicht, aber hat die gleichen NIC wie PC1)

Unterschiede sehe ich nur bzgl Seitenskalierung und dem Parameter LTROBFF

PC1
Name DisplayName                                                 DisplayValue               RegistryKeyword
---- -----------                                                 ------------               ---------------
NAS  --                                                          --                         DriverDesc
NAS  --                                                          --                         ProviderName
NAS  --                                                          --                         DriverDate
NAS  --                                                          --                         DriverVersion
NAS  --                                                          --                         InfPath
NAS  --                                                          --                         InfSection
NAS  --                                                          --                         MatchingDeviceId
NAS  Geschwindigkeit & Duplex                                    2.5 Gbit/s Vollduplex      *SpeedDuplex
NAS  --                                                          --                         ForceMode
NAS  Fließkontrolle                                              Rx & Tx aktiviert          *FlowControl
NAS  Priorität & VLAN                                            Priorität & VLAN aktiviert *PriorityVLANTag
NAS  Interrupt-Moderation                                        Deaktiviert                *InterruptModeration
NAS  Puffer empfangen                                            512                        *ReceiveBuffers
NAS  Puffer übertragen                                           4096                       *TransmitBuffers
NAS  Jumbo-Rahmen                                                Deaktiviert                *JumboPacket
NAS  IPv4 Prüfsummenabladung                                     Rx & Tx aktiviert          *IPChecksumOffloadIPv4
NAS  TCP Prüfsummenabladung (IPv4)                               Rx & Tx aktiviert          *TCPChecksumOffloadIPv4
NAS  UDP Prüfsummenabladung (IPv4)                               Rx & Tx aktiviert          *UDPChecksumOffloadIPv4
NAS  Wake-On-Lan herunterfahren                                  Deaktiviert                S5WakeOnLan
NAS  --                                                          --                         PowerDownPll
NAS  --                                                          --                         DeviceRemovable
NAS  --                                                          --                         HwParaMask
NAS  --                                                          --                         HwPciOtherFunDevMask
NAS  --                                                          --                         HwOptimize
NAS  --                                                          --                         HwMode
NAS  --                                                          --                         HwOption
NAS  --                                                          --                         HwWolCrcVal
NAS  --                                                          --                         LogDisconnectEvent
NAS  --                                                          --                         EnableEDT
NAS  --                                                          --                         RIACP
NAS  --                                                          --                         S5NicKeepOverrideMacAddr
NAS  --                                                          --                         S5NicKeepOverrideMacAddrV2
NAS  --                                                          --                         PPSW
NAS  --                                                          --                         GPPSW
NAS  --                                                          --                         S0MgcPkt
NAS  --                                                          --                         HwFPSM
NAS  --                                                          --                         SwIML
NAS  --                                                          --                         SwIML100
NAS  --                                                          --                         SwIMLV2
NAS  --                                                          --                         SwIML100V2
NAS  --                                                          --                         ENPWMode
NAS  --                                                          --                         Diskless
NAS  --                                                          --                         DisklessOption
NAS  --                                                          --                         TxOptimizeThreshold
NAS  --                                                          --                         RxOptimizeThreshold
NAS  --                                                          --                         CFHTime
NAS  --                                                          --                         LDWTime
NAS  --                                                          --                         RMPT
NAS  --                                                          --                         CRSPDThreshold
NAS  --                                                          --                         ComboPerfAdjust
NAS  --                                                          --                         CHNLWTime
NAS  --                                                          --                         CHNLWCnt
NAS  --                                                          --                         L1L0sLT
NAS  --                                                          --                         MRRSize
NAS  --                                                          --                         TDBSize
NAS  --                                                          --                         RDBSize
NAS  --                                                          --                         HwOptionV2
NAS  --                                                          --                         HwOptionV3
NAS  --                                                          --                         HwOptionV4
NAS  --                                                          --                         HwOptionV5
NAS  --                                                          --                         HwBpMask
NAS  --                                                          --                         MonitorModeEnabled
NAS  --                                                          --                         UCEM
NAS  --                                                          --                         FactoryMode
NAS  --                                                          --                         SwParaMask
NAS  Power Saving Mode                                           Deaktiviert                PowerSavingMode
NAS  --                                                          --                         DisablePBA
NAS  TCP Prüfsummenabladung (IPv6)                               Rx & Tx aktiviert          *TCPChecksumOffloadIPv6
NAS  UDP-Prüfsummenabladung (IPv6)                               Rx & Tx aktiviert          *UDPChecksumOffloadIPv6
NAS  Seitenskalierung empfangen                                  Deaktiviert                *RSS
NAS  Abladung großer Übertragung V2 (IPv4)                       Aktiviert                  *LsoV2IPv4
NAS  Abladung großer Übertragung V2 (IPv6)                       Aktiviert                  *LsoV2IPv6
NAS  Bei Musterübereinstimmung aufwecken                         Deaktiviert                *WakeOnPattern
NAS  Bei Magic Packet aufwecken                                  Deaktiviert                *WakeOnMagicPacket
NAS  Wake on magic packet when system is in the S0ix power state Deaktiviert                *ModernStandbyWoLMagicPa...
NAS  Maximale RSS-Warteschlangenanzahl                           4 Warteschlangen           *NumRssQueues
NAS  WoL / Link-Geschwindigkeit reduzieren                       Nicht verlangsamen         WolShutdownLinkSpeed
NAS  ARP-Abladen                                                 Aktiviert                  *PMARPOffload
NAS  NS-Abladen                                                  Aktiviert                  *PMNSOffload
NAS  Energy-Efficient Ethernet (LAN-Energiesparen, EEE)          Deaktiviert                *EEE
NAS  Green-Ethernet                                              Deaktiviert                EnableGreenEthernet
NAS  Advanced EEE                                                Deaktiviert                AdvancedEEE
NAS  Gigabit Lite                                                Deaktiviert                GigaLite
NAS  EEE Max Support Speed                                       2.5 Gbit/s Vollduplex      EEEMaxSupportSpeed
NAS  VLAN ID                                                     0                          RegVlanid
NAS  --                                                          --                         *IfType
NAS  --                                                          --                         *MediaType
NAS  --                                                          --                         *PhysicalMediaType
NAS  --                                                          --                         BusType
NAS  --                                                          --                         Characteristics
NAS  --                                                          --                         IfTypePreStart
NAS  --                                                          --                         NetworkInterfaceInstallT...
NAS  --                                                          --                         DeviceInstanceID
NAS  --                                                          --                         ComponentId
NAS  --                                                          --                         NetCfgInstanceId
NAS  --                                                          --                         NetLuidIndex
NAS  --                                                          --                         BiosSetting
NAS  --                                                          --                         ASPM
NAS  --                                                          --                         CLKREQ
NAS  --                                                          --                         RtHwCapability
NAS  --                                                          --                         LTROBFF
NAS  --                                                          --                         HwAutoloadMedia
NAS  Netzwerkadresse                                                                        NetworkAddress
NAS  --                                                          --                         PnPCapabilities

PC2
Name DisplayName                                                 DisplayValue               RegistryKeyword
---- -----------                                                 ------------               ---------------
NAS  --                                                          --                         DriverDesc
NAS  --                                                          --                         ProviderName
NAS  --                                                          --                         DriverDate
NAS  --                                                          --                         DriverVersion
NAS  --                                                          --                         InfPath
NAS  --                                                          --                         InfSection
NAS  --                                                          --                         MatchingDeviceId
NAS  Geschwindigkeit & Duplex                                    2.5 Gbit/s Vollduplex      *SpeedDuplex
NAS  --                                                          --                         ForceMode
NAS  Fließkontrolle                                              Rx & Tx aktiviert          *FlowControl
NAS  Priorität & VLAN                                            Priorität & VLAN aktiviert *PriorityVLANTag
NAS  Interrupt-Moderation                                        Deaktiviert                *InterruptModeration
NAS  Puffer empfangen                                            512                        *ReceiveBuffers
NAS  Puffer übertragen                                           4096                       *TransmitBuffers
NAS  Jumbo-Rahmen                                                Deaktiviert                *JumboPacket
NAS  IPv4 Prüfsummenabladung                                     Rx & Tx aktiviert          *IPChecksumOffloadIPv4
NAS  TCP Prüfsummenabladung (IPv4)                               Rx & Tx aktiviert          *TCPChecksumOffloadIPv4
NAS  UDP Prüfsummenabladung (IPv4)                               Rx & Tx aktiviert          *UDPChecksumOffloadIPv4
NAS  Wake-On-Lan herunterfahren                                  Deaktiviert                S5WakeOnLan
NAS  --                                                          --                         PowerDownPll
NAS  --                                                          --                         DeviceRemovable
NAS  --                                                          --                         HwParaMask
NAS  --                                                          --                         HwPciOtherFunDevMask
NAS  --                                                          --                         HwOptimize
NAS  --                                                          --                         HwMode
NAS  --                                                          --                         HwOption
NAS  --                                                          --                         HwWolCrcVal
NAS  --                                                          --                         LogDisconnectEvent
NAS  --                                                          --                         EnableEDT
NAS  --                                                          --                         RIACP
NAS  --                                                          --                         S5NicKeepOverrideMacAddr
NAS  --                                                          --                         S5NicKeepOverrideMacAddrV2
NAS  --                                                          --                         PPSW
NAS  --                                                          --                         GPPSW
NAS  --                                                          --                         S0MgcPkt
NAS  --                                                          --                         HwFPSM
NAS  --                                                          --                         SwIML
NAS  --                                                          --                         SwIML100
NAS  --                                                          --                         SwIMLV2
NAS  --                                                          --                         SwIML100V2
NAS  --                                                          --                         ENPWMode
NAS  --                                                          --                         Diskless
NAS  --                                                          --                         DisklessOption
NAS  --                                                          --                         TxOptimizeThreshold
NAS  --                                                          --                         RxOptimizeThreshold
NAS  --                                                          --                         CFHTime
NAS  --                                                          --                         LDWTime
NAS  --                                                          --                         RMPT
NAS  --                                                          --                         CRSPDThreshold
NAS  --                                                          --                         ComboPerfAdjust
NAS  --                                                          --                         CHNLWTime
NAS  --                                                          --                         CHNLWCnt
NAS  --                                                          --                         L1L0sLT
NAS  --                                                          --                         MRRSize
NAS  --                                                          --                         TDBSize
NAS  --                                                          --                         RDBSize
NAS  --                                                          --                         HwOptionV2
NAS  --                                                          --                         HwOptionV3
NAS  --                                                          --                         HwOptionV4
NAS  --                                                          --                         HwOptionV5
NAS  --                                                          --                         HwBpMask
NAS  --                                                          --                         MonitorModeEnabled
NAS  --                                                          --                         UCEM
NAS  --                                                          --                         FactoryMode
NAS  --                                                          --                         SwParaMask
NAS  Power Saving Mode                                           Deaktiviert                PowerSavingMode
NAS  --                                                          --                         DisablePBA
NAS  TCP Prüfsummenabladung (IPv6)                               Rx & Tx aktiviert          *TCPChecksumOffloadIPv6
NAS  UDP-Prüfsummenabladung (IPv6)                               Rx & Tx aktiviert          *UDPChecksumOffloadIPv6
NAS  Seitenskalierung empfangen                                  Aktiviert                  *RSS
NAS  Abladung großer Übertragung V2 (IPv4)                       Aktiviert                  *LsoV2IPv4
NAS  Abladung großer Übertragung V2 (IPv6)                       Aktiviert                  *LsoV2IPv6
NAS  Bei Musterübereinstimmung aufwecken                         Deaktiviert                *WakeOnPattern
NAS  Bei Magic Packet aufwecken                                  Deaktiviert                *WakeOnMagicPacket
NAS  Wake on magic packet when system is in the S0ix power state Deaktiviert                *ModernStandbyWoLMagicPa...
NAS  Maximale RSS-Warteschlangenanzahl                           2 Warteschlangen           *NumRssQueues
NAS  WoL / Link-Geschwindigkeit reduzieren                       Nicht verlangsamen         WolShutdownLinkSpeed
NAS  ARP-Abladen                                                 Aktiviert                  *PMARPOffload
NAS  NS-Abladen                                                  Aktiviert                  *PMNSOffload
NAS  Energy-Efficient Ethernet (LAN-Energiesparen, EEE)          Deaktiviert                *EEE
NAS  Green-Ethernet                                              Deaktiviert                EnableGreenEthernet
NAS  Advanced EEE                                                Deaktiviert                AdvancedEEE
NAS  Gigabit Lite                                                Deaktiviert                GigaLite
NAS  EEE Max Support Speed                                       2.5 Gbit/s Vollduplex      EEEMaxSupportSpeed
NAS  VLAN ID                                                     0                          RegVlanid
NAS  --                                                          --                         *IfType
NAS  --                                                          --                         *MediaType
NAS  --                                                          --                         *PhysicalMediaType
NAS  --                                                          --                         BusType
NAS  --                                                          --                         Characteristics
NAS  --                                                          --                         IfTypePreStart
NAS  --                                                          --                         NetworkInterfaceInstallT...
NAS  --                                                          --                         DeviceInstanceID
NAS  --                                                          --                         ComponentId
NAS  --                                                          --                         NetCfgInstanceId
NAS  --                                                          --                         NetLuidIndex
NAS  --                                                          --                         BiosSetting
NAS  --                                                          --                         ASPM
NAS  --                                                          --                         CLKREQ
NAS  --                                                          --                         RtHwCapability
NAS  --                                                          --                         HwAutoloadMedia
NAS  Netzwerkadresse                                                                        NetworkAddress
NAS  --                                                          --                         PnPCapabilities
MysticFoxDE
MysticFoxDE 04.11.2023 aktualisiert um 08:13:51 Uhr
Goto Top
Moin @Unikat2000,

- FC aus & IM an
[ ID] Interval Transfer Bitrate
[ 5] 0.00-60.00 sec 8.25 GBytes 1.18 Gbits/sec sender
[ 5] 0.00-60.00 sec 8.25 GBytes 1.18 Gbits/sec receiver

- FC an & IM an
[ ID] Interval Transfer Bitrate
[ 5] 0.00-60.00 sec 10.6 GBytes 1.52 Gbits/sec sender
[ 5] 0.00-60.01 sec 10.6 GBytes 1.52 Gbits/sec receiver

OK, das sieht ja schonmal viel besser aus, wobei ich die Performancesteigerung die bei dir durch FC erzeugt wird, immer noch nicht so ganz verstehe.

Wogegen Testest du mit iPerf eigentlich?
Ist es PC1 gegen PC2?

Welche CPU's haben die Quelle und das Ziel (iPerf) genau verbaut?

Gruss Alex
Unikat2000
Unikat2000 04.11.2023 aktualisiert um 13:43:55 Uhr
Goto Top
Moin Alex,

PC2 war der Server, PC1 der Client

PC1 ist ein Intel Core i7-6700K @ 4GHz
PC2 ist ein Intel Core i5-650 @ 3,2 GHz

PC3 ist ein Intel Core Duo E8400 @ 3 GHz (NAS Rechner), aber hat die gleiche Transfergeschwindigkeit

Ja, das sind schon ältere Rechner. Beim obigen Test war die CPU-Last 5% (PC1) und 23% (PC2). Wie ist das mit der Seitenskalierung? Das Skript hat sie bei PC2 aktiviert, aber beim anderen deaktiviert?

Gruß Ralf
MysticFoxDE
MysticFoxDE 04.11.2023 um 15:18:27 Uhr
Goto Top
Moin Ralf,

PC2 war der Server, PC1 der Client

OK, das ist gut zu wissen.

PC1 ist ein Intel Core i7-6700K @ 4GHz
PC2 ist ein Intel Core i5-650 @ 3,2 GHz

PC3 ist ein Intel Core Duo E8400 @ 3 GHz (NAS Rechner), aber hat die gleiche Transfergeschwindigkeit

Ja, das sind schon ältere Rechner. Beim obigen Test war die CPU-Last 5% (PC1) und 23% (PC2).

🤔 ... die CPU's haben eigentlich genug Bums um nur mit einem Kern die 2.5G zu wuppen.
Komisch, sehr komisch.

Wie ist das mit der Seitenskalierung? Das Skript hat sie bei PC2 aktiviert, aber beim anderen deaktiviert?

Das ist das RSS und das sollte mit meinem Skript eigentlich deaktiviert werden, da es für 1G normalerweise nicht notwendig ist.

Das wäre aber eh der nächste Punkt an dem wir ansetzen können.
Kannst du bitte auf beiden Rechner mal das folgende ausführen ...

netsh int tcp set global RSS=Enabled
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Enabled
Get-Netadapter | Set-NetAdapterRss -Enabled $true
Get-Netadapter | Restart-NetAdapter

... und danach auf beiden Rechner bitte den folgenden Befehl ausführen und dessen Ausgabe bitte hier posten.

Get-NetAdapterRss

Gruss Alex
Unikat2000
Unikat2000 04.11.2023 um 16:34:46 Uhr
Goto Top
Hallo Alex,

hier die Ausgaben:

PC1
Name                                            : NAS
InterfaceDescription                            : Realtek PCIe 2.5GbE Family Controller
Enabled                                         : True
NumberOfReceiveQueues                           : 4
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0
IndirectionTable: [Group:Number]                : 0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6

Name                                            : NAS-alt
InterfaceDescription                            : Intel(R) Ethernet Connection (2) I219-V
Enabled                                         :
NumberOfReceiveQueues                           : 1
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0
IndirectionTable: [Group:Number]                :

Name                                            : LAN
InterfaceDescription                            : Killer E2400 Gigabit Ethernet Controller
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0
IndirectionTable: [Group:Number]                : 0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2

PC2
Name                                            : LAN
InterfaceDescription                            : Intel(R) 82578DM Gigabit Network Connection
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:2
MaxProcessors                                   : 2
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0
IndirectionTable: [Group:Number]                :

Name                                            : NAS
InterfaceDescription                            : Realtek Gaming 2.5GbE Family Controller
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:2
MaxProcessors                                   : 2
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0
IndirectionTable: [Group:Number]                : 0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2


Bei PC1 kam es bei "Get-Netadapter | Set-NetAdapterRss -Enabled $true" zu einer Fehlermeldung. Wahrscheinlich weil der Adapter deaktiviert ist.

PS C:\Windows\system32> Get-Netadapter | Set-NetAdapterRss -Enabled $true
Set-NetAdapterRss : Es wurden keine MSFT_NetAdapterRssSettingData-Objekte gefunden, bei denen die Name-Eigenschaft
gleich "NAS-alt" ist. Überprüfen Sie den Wert der Eigenschaft, und versuchen Sie es erneut.  
In Zeile:1 Zeichen:18
+ Get-Netadapter | Set-NetAdapterRss -Enabled $true
+                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (NAS-alt:String) [Set-NetAdapterRss], CimJobException
    + FullyQualifiedErrorId : CmdletizationQuery_NotFound_Name,Set-NetAdapterRss

Gruß Ralf
MysticFoxDE
MysticFoxDE 04.11.2023 um 17:01:15 Uhr
Goto Top
Moin Ralf,

PC1
Name                                            : NAS
InterfaceDescription                            : Realtek PCIe 2.5GbE Family Controller
Enabled                                         : True
NumberOfReceiveQueues                           : 4
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0
IndirectionTable: [Group:Number]                : 0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6
                                                  0:0   0:2     0:4     0:6     0:0     0:2     0:4     0:6

Name                                            : NAS-alt
InterfaceDescription                            : Intel(R) Ethernet Connection (2) I219-V
Enabled                                         :
NumberOfReceiveQueues                           : 1
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0
IndirectionTable: [Group:Number]                :

Name                                            : LAN
InterfaceDescription                            : Killer E2400 Gigabit Ethernet Controller
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:6
MaxProcessors                                   : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0  0:4/0  0:6/0
IndirectionTable: [Group:Number]                : 0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2

Bei PC1 solltest du mal das folgende machen.

Set-NetAdapterRss -Name "NAS" -Profile Closest -MaxProcessors 2 -NumberOfReceiveQueues 2  
Set-NetAdapterRss -Name "LAN" -Profile Closest -MaxProcessors 2 -NumberOfReceiveQueues 2  

PC2
Name                                            : LAN
InterfaceDescription                            : Intel(R) 82578DM Gigabit Network Connection
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:2
MaxProcessors                                   : 2
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0
IndirectionTable: [Group:Number]                :

Name                                            : NAS
InterfaceDescription                            : Realtek Gaming 2.5GbE Family Controller
Enabled                                         : True
NumberOfReceiveQueues                           : 2
Profile                                         : NUMAStatic
BaseProcessor: [Group:Number]                   : 0:0
MaxProcessor: [Group:Number]                    : 0:2
MaxProcessors                                   : 2
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0  0:2/0
IndirectionTable: [Group:Number]                : 0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2
                                                  0:0   0:2     0:0     0:2     0:0     0:2     0:0     0:2


Und bei PC2 das folgende ...

Set-NetAdapterRss -Name "LAN" -Profile Closest  


Was sagt iPerf nun?

Bei PC1 kam es bei "Get-Netadapter | Set-NetAdapterRss -Enabled $true" zu einer Fehlermeldung. Wahrscheinlich weil der Adapter deaktiviert ist.

Jup.

Gruss Alex
Unikat2000
Unikat2000 04.11.2023 um 20:11:50 Uhr
Goto Top
Hi Alex,

bei PC2 nur

Set-NetAdapterRss -Name "LAN" -Profile Closest   

ohne Parameter und der 2,5G Adapter NAS bleibt auf NUMAStatic ?

Gruß Ralf
MysticFoxDE
MysticFoxDE 04.11.2023 um 21:05:01 Uhr
Goto Top
Moin Ralf,

bei PC2 nur

Set-NetAdapterRss -Name "LAN" -Profile Closest   

ohne Parameter und der 2,5G Adapter NAS bleibt auf NUMAStatic ?

Ups, bei PC2 meinte ich eher ...

Set-NetAdapterRss -Name "NAS" -Profile Closest

Aber dem Adapter mit dem Namen "LAN" schadet das auch nicht. 🙃
Ist die "Intel(R) 82578DM" im PC2 überhaupt aktiv?

Gruss Alex
Herkul
Herkul 04.11.2023 aktualisiert um 22:13:15 Uhr
Goto Top
Hallo Alex

Mein Problem ist leider seit langem wieder aktuell, dass der eingehende Durchsatz bei meinem Windows 11 Workstation bei 10Gbe Netzwerk limitiert scheint auf einen Durchsatz, der normalerweise bei 2.5Gbe üblich ist und zwar auf 250-275MB/s während der ausgehende um die 900MB/s auch bei manchen Tests sogar die üblichen 1050MB/s erreicht.
windows_standart

Gestern habe ich den Windows 11 in Abgesicherter Modus gestartet und erneut den selben Test durchgeführt und plötzlich komme ich dann bei eingehende doch über 1000MB/s. Wieder zurück auf normalen Start, das Problem bleibt leider bestehen.

20231104_035529

Darüber hinaus, habe ich versucht Schrittweise , die Dienste ausgeschaltet sowohl meine eigene und auch vom Windows die Dienste, leider ändert sich nichts wie beim Abgesicherten Modus. Sonst habe ich mir dabei gewünscht, den Dienst ausfindig machen zu können, sobald ich erkenne bei welchem Dienst es sich etwas ändern würde. Ich habe zudem versucht im Geräte-Manager so viele Geräte zu deaktivieren um zu sehen, ob es mit irgendeinen in Zusammenhang steht.

Falls ich bis nächste Woche keine Lösung finden sollte, werde ich Windows neu installieren müssen. Ich habe nur die Befürchtung, dass es früher oder später wieder kommen wird.

Dein Skript ändert nichts mehr an dieser Limitierung, auch ein Reset in allen Varienten hat keinen Einfluss mehr, was früher schon teilweise hatte, ich hatte es ja genauer beschrieben zuletzt.

Hier wären die Properties von meinem NIC:

screenshot 2023-11-04 220105
Das ist übrigens der Stand, gleich nachdem gestrigen Reset. Danach habe ich nichts mehr angepasst.
Gruss
Furi
Unikat2000
Unikat2000 04.11.2023 um 23:06:44 Uhr
Goto Top
Hi Alex,

ich habe die Änderungen an dem PC2 noch gemacht, aber leider hat es nichts gebracht:

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-60.00  sec  10.6 GBytes  1.52 Gbits/sec                  sender
[  5]   0.00-60.01  sec  10.6 GBytes  1.52 Gbits/sec                  receiver

Der Intel 82578DM im PC2 und auch der Killer E2400 im PC1 sind beide aktiv und versorgen die PCs mit Internet. Das 2.5GB Netzwerk ist vom Internet getrennt.

Gruß Ralf
MysticFoxDE
MysticFoxDE 05.11.2023 um 07:53:26 Uhr
Goto Top
Moin @Herkul,

bin gerade wegen einem Hyper-V Cluster Update leicht im Stress, daher kann ich momentan nur verkürzt auf dein Problem eingehen.

netsh int tcp set global RSS=Enabled
netsh int tcp set global RSC=Disabled
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Enabled

Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*FlowControl" -RegistryValue "3" -NoRestart  
Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*TCPUPDChecksumOffloadIPv4" -RegistryValue "3" -NoRestart  
Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*TCPUPDChecksumOffloadIPv6" -RegistryValue "0" -NoRestart  
Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*LsoV2IPv4" -RegistryValue "1" -NoRestart  
Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*RSSProfile" -RegistryValue "1" -NoRestart  
Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*RSS" -RegistryValue "1" -NoRestart  
Set-NetAdapterAdvancedProperty -Name "Ethernet 2" -RegistryKeyword "*RSCIPv4" -RegistryValue "0" -NoRestart  

Restart-NetAdapter -Name "Ethernet 2"  

Gruss Alex
MysticFoxDE
MysticFoxDE 05.11.2023 um 08:58:13 Uhr
Goto Top
Moin Ralf,

ich habe die Änderungen an dem PC2 noch gemacht, aber leider hat es nichts gebracht:

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-60.00  sec  10.6 GBytes  1.52 Gbits/sec                  sender
[  5]   0.00-60.01  sec  10.6 GBytes  1.52 Gbits/sec                  receiver

Der Intel 82578DM im PC2 und auch der Killer E2400 im PC1 sind beide aktiv und versorgen die PCs mit Internet. Das 2.5GB Netzwerk ist vom Internet getrennt.

🤔 ... welcher Energiesparplan ist den auf den entsprechenden Rechner gewählt?

powercfg /list


Der mit dem Sternchen am ende ist der aktuell aktive.

Gruss Alex
Unikat2000
Unikat2000 05.11.2023 um 11:01:19 Uhr
Goto Top
Moin Alex,

auf PC1 ist Höchstleistung aktiv, auf PC2 war Ausbalanciert aktiv. Habe PC2 auf Höchstleitung geändert, was aber die Transferrate nicht beinflusst hat..

Gruß Ralf
kevsei
kevsei 05.11.2023 aktualisiert um 11:14:16 Uhr
Goto Top
Moin,

ich hab bei mir das selbe Problem im Netzwerk, wenn ich von meinem Windows 11 PC vom NAS was runterziehe. In die andere Richtung funktioniert es mit 2,4Gbits. Wenn ich

netsh int tcp set global autotuninglevel=disabled

setze, läuft es. Dafür sind Downloads aus dem Internet mit 1 TCP Verbindung um ein 5 faches langsamer. Daher ist das keine Option. Vll. kannst das mal ausprobieren?

Standard ist es so:

netsh int tcp set global autotuninglevel=normal

Grüße
MysticFoxDE
MysticFoxDE 05.11.2023 um 13:48:38 Uhr
Goto Top
Moin @kevsei,

ich hab bei mir das selbe Problem im Netzwerk, wenn ich von meinem Windows 11 PC vom NAS was runterziehe. In die andere Richtung funktioniert es mit 2,4Gbits. Wenn ich

netsh int tcp set global autotuninglevel=disabled

setze, läuft es. Dafür sind Downloads aus dem Internet mit 1 TCP Verbindung um ein 5 faches langsamer. Daher ist das keine Option. Vll. kannst das mal ausprobieren?

Standard ist es so:

netsh int tcp set global autotuninglevel=normal

👍👍👍
Zu dem Punkt wäre ich noch gekommen und ja diese Änderung hat wie du es selbst schon gemerkt hast auch negative folgen. 😔

Wenn du das TCP Autotuning Level abschaltest, dann wird die TCP-Fenstergröße bis höchstens 64K hoch skaliert.
Das bedeutet unter dem Strich, dass bei jeder TCP Übertragung spätestens nach 64K eine Quittierung (ACK) erfolgen muss und genau das beerdigt bei hochlatenten Verbindungen die Bandbreite.

Wenn du das TCP Autotuning jedoch nicht abschaltest, dann kann ein aktuelles Windows die TCP-Fenstergröße mittlerweile bis !!! 1 GByte !!! hochskalieren, was wiederum im LAN, bei der Übertragung von insbesondere kleineren Daten, ebenfalls die Performance ruiniert.

Folgend ein paar Details zu dem Thema.

https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking ...

Theoretisch wäre das auch kein Problem, weil man in den TCP Profilen die TCP-Fensterskalierung separat einstellen kann. Sprich z.B. Datacenter (LAN) mit ohne TCP-Fensterskalierung und bei Profil Internet von mir aus mit der TCP-Fensterskalierung. Leider wählt wie ich schon geschrieben habe, ein aktuelles Windows immer dasselbe Profil und zwar das "Internet", selbst wenn es sich um LAN Datenverkehr handelt. 🤢🤮😭

Gruss Alex
Unikat2000
Unikat2000 05.11.2023 aktualisiert um 15:04:43 Uhr
Goto Top
Hi Alex & Kevsei,

also mit netsh int tcp set global autotuninglevel=disabled wird es nur schlimmer:

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-60.00  sec  9.49 GBytes  1.36 Gbits/sec                  sender
[  5]   0.00-60.00  sec  9.49 GBytes  1.36 Gbits/sec                  receiver

wenn ich jetzt die Flusskontrolle ebenfalls noch deaktiviere

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-60.00  sec  7.59 GBytes  1.09 Gbits/sec                  sender
[  5]   0.00-60.00  sec  7.59 GBytes  1.09 Gbits/sec                  receiver

Dabei war bei beiden Messungen die Datenrate nie konstant!

Gruß Ralf
MysticFoxDE
MysticFoxDE 05.11.2023 um 15:58:59 Uhr
Goto Top
Moin Ralf,

was spuckt dein Rechner eigentlich bei dem folgenden Befehl aus?

Get-NetAdapterChecksumOffload

Gruss Alex
Unikat2000
Unikat2000 05.11.2023 um 16:36:49 Uhr
Goto Top
Hi Alex,

PC1

Name                           IpIPv4Enabled   TcpIPv4Enabled  TcpIPv6Enabled  UdpIPv4Enabled  UdpIPv6Enabled
----                           -------------   --------------  --------------  --------------  --------------
NAS                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled
NAS-alt                        RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled
LAN                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled

PC2

Name                           IpIPv4Enabled   TcpIPv4Enabled  TcpIPv6Enabled  UdpIPv4Enabled  UdpIPv6Enabled
----                           -------------   --------------  --------------  --------------  --------------
LAN                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled
NAS                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled


Hatte vor deinem Skript immer alle Offload Optionen auf Disable.. Macht irgendie auch keinen großen Unterschied...

Gruß Ralf
thomaz
thomaz 06.11.2023 aktualisiert um 16:15:35 Uhr
Goto Top
Zuerst: W10ANDW11-NETWORK-TCP-BACKSUBOPTIMIZATION.ps1
Danach: W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1

Aber es kommt imemr nur das mit "NUMAStatic" raus (Asus Z170 Pro Gaming, Intel i7-6700, Win10 22H2 x64).

Log: https://pastebin.com/wFRDbgTd
1
MysticFoxDE
MysticFoxDE 06.11.2023 um 19:47:30 Uhr
Goto Top
Moin Ralf,

PC1

Name                           IpIPv4Enabled   TcpIPv4Enabled  TcpIPv6Enabled  UdpIPv4Enabled  UdpIPv6Enabled
----                           -------------   --------------  --------------  --------------  --------------
NAS                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled
NAS-alt                        RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled
LAN                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled

PC2

Name                           IpIPv4Enabled   TcpIPv4Enabled  TcpIPv6Enabled  UdpIPv4Enabled  UdpIPv6Enabled
----                           -------------   --------------  --------------  --------------  --------------
LAN                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled
NAS                            RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled     RxTxEnabled


Hatte vor deinem Skript immer alle Offload Optionen auf Disable.. Macht irgendie auch keinen großen Unterschied...

ja, das mit dem nicht all zu grossen Unterschied ist auch meine Erfahrung.
Aber, im Normalfall bringt das aktivieren fieser Features durchaus eine kleine Verbesserung mit sich und zum anderen müssen diese Features aktiviert sein, damit andere Features wie z.B. LSO, überhaupt richtig funktionieren können.

Hast du den Vorschlag von @kevsei mit "netsh int tcp set global autotuninglevel=disabled" schon mal probiert?

Gruss Alex
MysticFoxDE
MysticFoxDE 06.11.2023 aktualisiert um 20:05:40 Uhr
Goto Top
Moin @thomaz,

Zuerst: W10ANDW11-NETWORK-TCP-BACKSUBOPTIMIZATION.ps1
Danach: W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1

Aber es kommt imemr nur das mit "NUMAStatic" raus (Asus Z170 Pro Gaming, Intel i7-6700, Win10 22H2 x64).

Log: https://pastebin.com/wFRDbgTd

na ja, das wird so auch nicht wirklich funktionieren, weil ASUS oder auch Intel selbst, verpennt hat in den Treibern deiner NIC die entsprechenden Schalter für RSS korrekt zu setzen, damit dieses auch richtig funktionieren kann. 😔

Wie du im Log an der folgenden Stelle ...
thomaz rss
... selber sehen kannst, hat deine NIC nicht eine einzige Option die mit "*RSS" beginnt. 😭

Führe auf dem Rechner bitte mal den folgenden Befehl aus ...

Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQueues 2 -MaxProcessors 2 -BaseProcessorNumber 0 -MaxProcessorNumber 6 -Enabled $true  

... danach bitte den folgenden Befehl ausführen und dessen Ausgabe bitte hier posten, danke.

Get-NetAdapterAdvancedProperty -Name "Ethernet"  

Gruss Alex
Unikat2000
Unikat2000 06.11.2023 um 22:09:17 Uhr
Goto Top
Hi Alex,

siehe meinen Beitrag vom 05.11.2023 aktualisiert um 15:04:43 Uhr face-smile

Gruß Ralf
MysticFoxDE
MysticFoxDE 07.11.2023 um 07:01:37 Uhr
Goto Top
Moin Ralf,

siehe meinen Beitrag vom 05.11.2023 aktualisiert um 15:04:43 Uhr face-smile

upps, da habe ich wohl was übersehen. 🙃

Das verhalten von deinen Rechner ist bisher sehr komisch. Das riecht irgendwie danach als ob die Kerne die bei deinen Rechnern für das NIC Handling verantwortlich sind (siehe IndirectionTable unter Get-NetadapterRSS), entweder am Limit laufen oder eine bestimmte Lastgrenze nicht überschreiten können.

Kannst du mal auf beiden Rechner den Taskmanager starten und auf Einzelkernansicht umstellen ...
https://kittmedia.com/2013/task-manager-alle-cpu-kerne-threads-anzeigen/
... und dann anschliessend nochmals mit iPerf testen.
Wie verhält sich dabei die Kernauslastung auf beiden Rechnern?

Kannst du ferner mal den iPerf Befehl hier rein posten mit dem du diese Tests machst, danke.

Gruss Alex
Unikat2000
Unikat2000 07.11.2023 um 09:57:48 Uhr
Goto Top
Moin Alex,

ich verwende iperf 3.15 64bit auf der Client Seite mit iperf3.exe -t 60 -c 192.168.10.3

Hier die Screenshots vom Taskmanager
pc1
pc2

Gruß Ralf
MysticFoxDE
MysticFoxDE 07.11.2023 um 10:36:29 Uhr
Goto Top
Moin Ralf,

iperf3.exe -t 60 -c 192.168.10.3

ich glaub, ich sehe schon dein Problem, versuch es mal mit den beiden ...

iperf3.exe -t 60 -l 256K -P 2 -N -c 192.168.10.3

iperf3.exe -t 60 -l 64K -P 4 -N -c 192.168.10.3

😉

Gruss Alex
Unikat2000
Unikat2000 07.11.2023 um 12:35:05 Uhr
Goto Top
Moin Alex,

also hier die mit 256K
pc1_256
pc2_256

und dann mit 64K
pc1_64
pc2_64

Also an der Gesamtübertragungsrate hat sich nichts geändert, nur halt diese auf 2 bzw 4 Threads augeteilt wurden.

Gruß Ralf
MysticFoxDE
MysticFoxDE 08.11.2023 um 09:35:49 Uhr
Goto Top
Moin Ralf,

Also an der Gesamtübertragungsrate hat sich nichts geändert, nur halt diese auf 2 bzw 4 Threads augeteilt wurden.

bin gerade im Stress, daher muss ich mich etwas kurz fassen.

Deine Aussage hat mich etwas zum grübeln gebracht und ich glaube ich habe nun einen weiteren gravierenden Fehler von Microsoft/Windows viel besser verstanden, der für die misse TCP Performance von aktuellen Windows sehr entscheidend verantwortlich ist. 😔

Kannst du das mal bei dir bitte ausprobieren.

iperf3.exe -t 10 -l 64K -P 1 -w 256K -N -c 192.168.10.3
iperf3.exe -t 10 -l 64K -P 1 -w 512K -N -c 192.168.10.3
iperf3.exe -t 10 -l 64K -P 1 -w 1024K -N -c 192.168.10.3

Und auch einmal in die andere Richtung, sprich ...

iperf3.exe -t 10 -l 64K -P 1 -w 256K -N -R -c 192.168.10.3
iperf3.exe -t 10 -l 64K -P 1 -w 512K -N -R -c 192.168.10.3
iperf3.exe -t 10 -l 64K -P 1 -w 1024K -N -R -c 192.168.10.3

Gruss Alex
Unikat2000
Unikat2000 08.11.2023 aktualisiert um 10:51:45 Uhr
Goto Top
Moin Alex,

hier mal die Ergebnisse der iperf Befehle...

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 64K -P 1 -w 256K -N -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
[  5] local 192.168.10.1 port 50714 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   152 MBytes  1.28 Gbits/sec
[  5]   1.00-2.00   sec   167 MBytes  1.40 Gbits/sec
[  5]   2.00-3.00   sec   178 MBytes  1.50 Gbits/sec
[  5]   3.00-4.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   4.00-5.00   sec   177 MBytes  1.49 Gbits/sec
[  5]   5.00-6.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   6.00-7.00   sec   178 MBytes  1.49 Gbits/sec
[  5]   7.00-8.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   8.00-9.00   sec   178 MBytes  1.49 Gbits/sec
[  5]   9.00-10.00  sec   178 MBytes  1.49 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.71 GBytes  1.47 Gbits/sec                  sender
[  5]   0.00-10.00  sec  1.71 GBytes  1.47 Gbits/sec                  receiver

iperf Done.

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 64K -P 1 -w 512K -N -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
[  5] local 192.168.10.1 port 50719 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   1.00-2.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   2.00-3.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   3.00-4.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   4.00-5.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   5.00-6.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   6.00-7.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   7.00-8.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   8.00-9.00   sec   179 MBytes  1.51 Gbits/sec
[  5]   9.00-10.00  sec   177 MBytes  1.49 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.75 GBytes  1.50 Gbits/sec                  sender
[  5]   0.00-10.00  sec  1.75 GBytes  1.50 Gbits/sec                  receiver

iperf Done.

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 64K -P 1 -w 1024K -N -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
[  5] local 192.168.10.1 port 50724 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   1.00-2.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   2.00-3.00   sec   176 MBytes  1.47 Gbits/sec
[  5]   3.00-4.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   4.00-5.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   5.00-6.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   6.00-7.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   7.00-8.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   8.00-9.00   sec   179 MBytes  1.50 Gbits/sec
[  5]   9.00-10.00  sec   180 MBytes  1.51 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.75 GBytes  1.51 Gbits/sec                  sender
[  5]   0.00-10.01  sec  1.75 GBytes  1.50 Gbits/sec                  receiver

iperf Done.

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 64K -P 1 -w 256K -N -R -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
Reverse mode, remote host 192.168.10.3 is sending
[  5] local 192.168.10.1 port 50730 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   1.00-2.00   sec   172 MBytes  1.45 Gbits/sec
[  5]   2.00-3.00   sec   172 MBytes  1.45 Gbits/sec
[  5]   3.00-4.00   sec   170 MBytes  1.43 Gbits/sec
[  5]   4.00-5.00   sec   170 MBytes  1.42 Gbits/sec
[  5]   5.00-6.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   6.00-7.00   sec   172 MBytes  1.45 Gbits/sec
[  5]   7.00-8.00   sec   172 MBytes  1.45 Gbits/sec
[  5]   8.00-9.00   sec   170 MBytes  1.43 Gbits/sec
[  5]   9.00-10.00  sec   173 MBytes  1.45 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.68 GBytes  1.44 Gbits/sec                  sender
[  5]   0.00-10.00  sec  1.68 GBytes  1.44 Gbits/sec                  receiver

iperf Done.

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 64K -P 1 -w 512K -N -R -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
Reverse mode, remote host 192.168.10.3 is sending
[  5] local 192.168.10.1 port 50735 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   169 MBytes  1.42 Gbits/sec
[  5]   1.00-2.00   sec   174 MBytes  1.46 Gbits/sec
[  5]   2.00-3.00   sec   169 MBytes  1.42 Gbits/sec
[  5]   3.00-4.00   sec   173 MBytes  1.45 Gbits/sec
[  5]   4.00-5.00   sec   174 MBytes  1.46 Gbits/sec
[  5]   5.00-6.00   sec   174 MBytes  1.46 Gbits/sec
[  5]   6.00-7.00   sec   171 MBytes  1.44 Gbits/sec
[  5]   7.00-8.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   8.00-9.00   sec   173 MBytes  1.45 Gbits/sec
[  5]   9.00-10.00  sec   173 MBytes  1.45 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.68 GBytes  1.44 Gbits/sec                  sender
[  5]   0.00-10.00  sec  1.68 GBytes  1.44 Gbits/sec                  receiver

iperf Done.

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 64K -P 1 -w 1024K -N -R -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
Reverse mode, remote host 192.168.10.3 is sending
[  5] local 192.168.10.1 port 50740 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   1.00-2.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   2.00-3.00   sec   174 MBytes  1.46 Gbits/sec
[  5]   3.00-4.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   4.00-5.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   5.00-6.00   sec   173 MBytes  1.45 Gbits/sec
[  5]   6.00-7.00   sec   172 MBytes  1.44 Gbits/sec
[  5]   7.00-8.00   sec   174 MBytes  1.46 Gbits/sec
[  5]   8.00-9.00   sec   174 MBytes  1.46 Gbits/sec
[  5]   9.00-10.00  sec   174 MBytes  1.46 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.69 GBytes  1.45 Gbits/sec                  sender
[  5]   0.00-10.00  sec  1.69 GBytes  1.45 Gbits/sec                  receiver

iperf Done.

Taskmanager für die drei Runden:
pc1_b1b
pc2_b1b

Taskmanager für die drei Rückrunden:
pc1_b2b
pc2_b2b

Gruß Ralf
MysticFoxDE
MysticFoxDE 08.11.2023 um 11:39:39 Uhr
Goto Top
Moin Ralf,

das mit den 1,5G ist echt schräg.

Ich erreiche bei mir mit den angepassten iPerf Parametern über meine 10G NIC wieder die volle Leistung mit nur 2 Threads, theoretisch würde mein Rechner die 10G auch nur mit einem Thread bedienen können, der Rechner der als Gegenstelle dient, ist jedoch CPU technisch etwas langsamer.

iperf - result 01

Das Ergebnis erreiche ich übrigens ohne IM oder FC aber mit aktiviertem autotuninglevel=normal.

Gruss Alex
thomaz
thomaz 08.11.2023 um 12:00:40 Uhr
Goto Top
Zitat von @MysticFoxDE:
Führe auf dem Rechner bitte mal den folgenden Befehl aus ...

Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQueues 2 -MaxProcessors 2 -BaseProcessorNumber 0 -MaxProcessorNumber 6 -Enabled $true  

... danach bitte den folgenden Befehl ausführen und dessen Ausgabe bitte hier posten, danke.

Get-NetAdapterAdvancedProperty -Name "Ethernet"  

Gruss Alex

Hi,

bei dem Befehl kommt folgendes:

PS C:\Users\XXX> Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQueues 2 -MaxProcessors 2 -BaseProcessorNumber 0 -MaxProcessorNumber 6 -Enabled $true  
Set-NetAdapterRss : Failed to set 'Enabled' of 'RSS' configuration of adapter 'Ethernet'  
In Zeile:1 Zeichen:1
+ Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQ ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (MSFT_NetAdapter...4A83AAB30D38}"):ROOT/StandardCi...rRssSettingData) [Set-NetAdapterRss], CimException  
    + FullyQualifiedErrorId : MI RESULT 6,Set-NetAdapterRss
 
Set-NetAdapterRss : Failed to set 'NumberOfReceiveQueues' of 'RSS' configuration of adapter 'Ethernet'  
In Zeile:1 Zeichen:1
+ Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQ ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...4A83AAB30D38}"):ROOT/StandardCi...rRssSettingData) [Set-NetAdapterRss], CimException  
    + FullyQualifiedErrorId : Windows System Error 50,Set-NetAdapterRss
und dann:

Name                      DisplayName                    DisplayValue                   RegistryKeyword RegistryValue  
----                      -----------                    ------------                   --------------- -------------  
Ethernet                  Flow Control                   Disabled                       *FlowControl    {0}            
Ethernet                  Interrupt Moderation           Disabled                       *InterruptMo... {0}            
Ethernet                  IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}            
Ethernet                  Jumbo Packet                   Disabled                       *JumboPacket    {1514}         
Ethernet                  Large Send Offload V2 (IPv4)   Enabled                        *LsoV2IPv4      {1}            
Ethernet                  Large Send Offload V2 (IPv6)   Enabled                        *LsoV2IPv6      {1}            
Ethernet                  ARP Offload                    Enabled                        *PMARPOffload   {1}            
Ethernet                  NS Offload                     Enabled                        *PMNSOffload    {1}            
Ethernet                  Packet Priority & VLAN         Packet Priority & VLAN Enabled *PriorityVLA... {3}            
Ethernet                  Receive Buffers                2048                           *ReceiveBuffers {2048}         
Ethernet                  Speed & Duplex                 Auto Negotiation               *SpeedDuplex    {0}            
Ethernet                  TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}            
Ethernet                  TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}            
Ethernet                  Transmit Buffers               2048                           *TransmitBuf... {2048}         
Ethernet                  UDP Checksum Offload (IPv4)    Rx & Tx Enabled                *UDPChecksum... {3}            
Ethernet                  UDP Checksum Offload (IPv6)    Rx & Tx Enabled                *UDPChecksum... {3}            
Ethernet                  Adaptive Inter-Frame Spacing   Disabled                       AdaptiveIFS     {0}            
Ethernet                  Interrupt Moderation Rate      Adaptive                       ITR             {65535}        
Ethernet                  Log Link State Event           Enabled                        LogLinkState... {51}           
Ethernet                  Gigabit Master Slave Mode      Auto Detect                    MasterSlave     {0}            
Ethernet                  Locally Administered Address                                  NetworkAddress  {--}           
Ethernet                  Wait for Link                  Auto Detect                    WaitAutoNegC... {2}
MysticFoxDE
MysticFoxDE 08.11.2023 um 16:32:59 Uhr
Goto Top
Moin Ralf,

hier mal die Ergebnisse der iperf Befehle...

sind auf diesen Rechnern noch die Optimierungen aus meinem Skript aktiv?

Zudem habe ich heute den folgenden interessanten Artikel von den Microsoftians gefunden.

https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking ...

In dem die doch selbst schwarz auf weis den folgenden Humbug zugeben.
dack
Ein Delay per Default von !!! 200 ms !!! 🙈😭🙊

Und das was unter Methode 3 Beschrieben ist, ist schon von Anbeginn an in meinem Optimierungsskript enthalten.

Zudem habe ich in diesem Artikel unter Methode 4 einen weiteren interessanten Reg-Key gefunden ("NonBlockingSendSpecialBuffering") den ich so nicht kannte und der so wie es aussieht auch wahre Wunder bewirkt.

Und nachdem mir bewusst wurde, dass sich die Elche aus Redmond beim setzen der "TCP Socket Buffer Size" zum Teil kräftigst vergaloppieren, habe ich noch weitere interessante Reg-Key's die man unter Microsoft AFD Parameter setzen kann, gefunden. 🤪

afd parameter

Und nach diesen Änderungen kratzt meine Workstation über ihre 10G NIC mit iPerf bei einer Blockgrösse von 32K und lediglich einem Thread ...

iperf - result 02

... fast schon an dem maximalen Übertragungslimit. 😁

Gruss Alex
MysticFoxDE
MysticFoxDE 08.11.2023 um 17:04:31 Uhr
Goto Top
Moin @thomaz,

bei dem Befehl kommt folgendes:

PS C:\Users\XXX> Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQueues 2 -MaxProcessors 2 -BaseProcessorNumber 0 -MaxProcessorNumber 6 -Enabled $true  
Set-NetAdapterRss : Failed to set 'Enabled' of 'RSS' configuration of adapter 'Ethernet'  
In Zeile:1 Zeichen:1
+ Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQ ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (MSFT_NetAdapter...4A83AAB30D38}"):ROOT/StandardCi...rRssSettingData) [Set-NetAdapterRss], CimException  
    + FullyQualifiedErrorId : MI RESULT 6,Set-NetAdapterRss
 
Set-NetAdapterRss : Failed to set 'NumberOfReceiveQueues' of 'RSS' configuration of adapter 'Ethernet'  
In Zeile:1 Zeichen:1
+ Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQ ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...4A83AAB30D38}"):ROOT/StandardCi...rRssSettingData) [Set-NetAdapterRss], CimException  
    + FullyQualifiedErrorId : Windows System Error 50,Set-NetAdapterRss
und dann:

Name                      DisplayName                    DisplayValue                   RegistryKeyword RegistryValue  
----                      -----------                    ------------                   --------------- -------------  
Ethernet                  Flow Control                   Disabled                       *FlowControl    {0}            
Ethernet                  Interrupt Moderation           Disabled                       *InterruptMo... {0}            
Ethernet                  IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}            
Ethernet                  Jumbo Packet                   Disabled                       *JumboPacket    {1514}         
Ethernet                  Large Send Offload V2 (IPv4)   Enabled                        *LsoV2IPv4      {1}            
Ethernet                  Large Send Offload V2 (IPv6)   Enabled                        *LsoV2IPv6      {1}            
Ethernet                  ARP Offload                    Enabled                        *PMARPOffload   {1}            
Ethernet                  NS Offload                     Enabled                        *PMNSOffload    {1}            
Ethernet                  Packet Priority & VLAN         Packet Priority & VLAN Enabled *PriorityVLA... {3}            
Ethernet                  Receive Buffers                2048                           *ReceiveBuffers {2048}         
Ethernet                  Speed & Duplex                 Auto Negotiation               *SpeedDuplex    {0}            
Ethernet                  TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}            
Ethernet                  TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}            
Ethernet                  Transmit Buffers               2048                           *TransmitBuf... {2048}         
Ethernet                  UDP Checksum Offload (IPv4)    Rx & Tx Enabled                *UDPChecksum... {3}            
Ethernet                  UDP Checksum Offload (IPv6)    Rx & Tx Enabled                *UDPChecksum... {3}            
Ethernet                  Adaptive Inter-Frame Spacing   Disabled                       AdaptiveIFS     {0}            
Ethernet                  Interrupt Moderation Rate      Adaptive                       ITR             {65535}        
Ethernet                  Log Link State Event           Enabled                        LogLinkState... {51}           
Ethernet                  Gigabit Master Slave Mode      Auto Detect                    MasterSlave     {0}            
Ethernet                  Locally Administered Address                                  NetworkAddress  {--}           
Ethernet                  Wait for Link                  Auto Detect                    WaitAutoNegC... {2}

ich vermute, dass dein Problem, sprich, das nicht funktionierende RSS, durch Konfigurationsänderungen leider nicht zu beseitigen ist.

Aber, das ist gar nicht so schlimm, da RSS vor 10 Jahren, so gesehen nicht wirklich für 1G NIC's auf die Welt losgelassen wurde sondern eher wegen den 10G NIC's, mit denen die damaligen CPU's nicht wirklich zurecht kamen, zumindest nicht nur mit einem ihrer Kerne. 🙃
Sprich, dein Rechner sollte die 1 GBit/s die deine Intel I219-V maximal bringt, auch vollkommen ohne RSS bewältigen können.

Zudem, nur weil Intel in der allgemeinen Beschreibung für die "I219-V" schreibt, dass dieser LAN Chip RSS beherrscht, bedeutet das noch lange nicht, dass Asus dieses Feature auch wirklich mit gekauft hat.

Kannst du mal auf deinem Rechner den folgenden Befehl abfeuern und dessen Ausgabe hier posten.
Get-NetAdapterHardwareInfo -Name "Ethernet" | FL  

Dann kann ich dir genau sagen, ob deine NIC RSS überhaupt kann.

Gruss Alex
thomaz
thomaz 08.11.2023 um 22:51:36 Uhr
Goto Top
Zitat von @MysticFoxDE:

Moin @thomaz,

bei dem Befehl kommt folgendes:

PS C:\Users\XXX> Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQueues 2 -MaxProcessors 2 -BaseProcessorNumber 0 -MaxProcessorNumber 6 -Enabled $true  
Set-NetAdapterRss : Failed to set 'Enabled' of 'RSS' configuration of adapter 'Ethernet'  
In Zeile:1 Zeichen:1
+ Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQ ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (MSFT_NetAdapter...4A83AAB30D38}"):ROOT/StandardCi...rRssSettingData) [Set-NetAdapterRss], CimException  
    + FullyQualifiedErrorId : MI RESULT 6,Set-NetAdapterRss
 
Set-NetAdapterRss : Failed to set 'NumberOfReceiveQueues' of 'RSS' configuration of adapter 'Ethernet'  
In Zeile:1 Zeichen:1
+ Set-NetAdapterRss -Name "Ethernet" -Profile Closest -NumberOfReceiveQ ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetAdapter...4A83AAB30D38}"):ROOT/StandardCi...rRssSettingData) [Set-NetAdapterRss], CimException  
    + FullyQualifiedErrorId : Windows System Error 50,Set-NetAdapterRss
und dann:

Name                      DisplayName                    DisplayValue                   RegistryKeyword RegistryValue  
----                      -----------                    ------------                   --------------- -------------  
Ethernet                  Flow Control                   Disabled                       *FlowControl    {0}            
Ethernet                  Interrupt Moderation           Disabled                       *InterruptMo... {0}            
Ethernet                  IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}            
Ethernet                  Jumbo Packet                   Disabled                       *JumboPacket    {1514}         
Ethernet                  Large Send Offload V2 (IPv4)   Enabled                        *LsoV2IPv4      {1}            
Ethernet                  Large Send Offload V2 (IPv6)   Enabled                        *LsoV2IPv6      {1}            
Ethernet                  ARP Offload                    Enabled                        *PMARPOffload   {1}            
Ethernet                  NS Offload                     Enabled                        *PMNSOffload    {1}            
Ethernet                  Packet Priority & VLAN         Packet Priority & VLAN Enabled *PriorityVLA... {3}            
Ethernet                  Receive Buffers                2048                           *ReceiveBuffers {2048}         
Ethernet                  Speed & Duplex                 Auto Negotiation               *SpeedDuplex    {0}            
Ethernet                  TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}            
Ethernet                  TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}            
Ethernet                  Transmit Buffers               2048                           *TransmitBuf... {2048}         
Ethernet                  UDP Checksum Offload (IPv4)    Rx & Tx Enabled                *UDPChecksum... {3}            
Ethernet                  UDP Checksum Offload (IPv6)    Rx & Tx Enabled                *UDPChecksum... {3}            
Ethernet                  Adaptive Inter-Frame Spacing   Disabled                       AdaptiveIFS     {0}            
Ethernet                  Interrupt Moderation Rate      Adaptive                       ITR             {65535}        
Ethernet                  Log Link State Event           Enabled                        LogLinkState... {51}           
Ethernet                  Gigabit Master Slave Mode      Auto Detect                    MasterSlave     {0}            
Ethernet                  Locally Administered Address                                  NetworkAddress  {--}           
Ethernet                  Wait for Link                  Auto Detect                    WaitAutoNegC... {2}

ich vermute, dass dein Problem, sprich, das nicht funktionierende RSS, durch Konfigurationsänderungen leider nicht zu beseitigen ist.

Aber, das ist gar nicht so schlimm, da RSS vor 10 Jahren, so gesehen nicht wirklich für 1G NIC's auf die Welt losgelassen wurde sondern eher wegen den 10G NIC's, mit denen die damaligen CPU's nicht wirklich zurecht kamen, zumindest nicht nur mit einem ihrer Kerne. 🙃
Sprich, dein Rechner sollte die 1 GBit/s die deine Intel I219-V maximal bringt, auch vollkommen ohne RSS bewältigen können.

Zudem, nur weil Intel in der allgemeinen Beschreibung für die "I219-V" schreibt, dass dieser LAN Chip RSS beherrscht, bedeutet das noch lange nicht, dass Asus dieses Feature auch wirklich mit gekauft hat.

Kannst du mal auf deinem Rechner den folgenden Befehl abfeuern und dessen Ausgabe hier posten.
Get-NetAdapterHardwareInfo -Name "Ethernet" | FL  

Dann kann ich dir genau sagen, ob deine NIC RSS überhaupt kann.

Gruss Alex

Name                        : Ethernet
InterfaceDescription        : Intel(R) Ethernet Connection (2) I219-V
DeviceType                  : Conventional PCI
SegmentNumber               : 0
BusNumber                   : 0
DeviceNumber                : 31
FunctionNumber              : 6
SlotNumber                  : 
NumaNode                    : 
PciCurrentSpeedAndMode      : 0
PciExpressCurrentLinkSpeed  : Unknown
PciExpressCurrentLinkWidth  : 
PciExpressMaxLinkSpeed      : Unknown
PciExpressMaxLinkWidth      : 
PciExpressVersion           : 
LineBasedInterruptSupported : False
MsiInterruptSupported       : False
MsiXInterruptSupported      : False
Unikat2000
Unikat2000 09.11.2023 um 00:13:06 Uhr
Goto Top
Hi Alex,

also ich habe Registry-Werte aus den Screenshot in die Registry von PC1 und PC2 übernommen und beide PCs neugestartet. Vorher war der Zweig nämlich völlig leer. Er erneuter Testlauf mit "iperf3.exe -t 10 -l 32K -P 1 -N -c 192.168.10.3" brachte weder eine Verschlechterung noch Verbesserung.

Ich habe dann nochmal dein Skript auf beiden Rechner ausgeführt und hatte dann hatte ich auf einmal 10 MB/s :D

Nachdem ich die Fließkontrolle aktiviert hatte waren es dann ca.150 MB/s und nach Aktivierung Interrupt Moderation und den ganzen Tweaks:

netsh int tcp set global RSS=Enabled
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Enabled
Get-Netadapter | Set-NetAdapterRss -Enabled $true
Get-Netadapter | Restart-NetAdapter
Set-NetAdapterRss -Name "NAS" -Profile Closest -MaxProcessors 2 -NumberOfReceiveQueues 2    
Set-NetAdapterRss -Name "LAN" -Profile Closest -MaxProcessors 2 -NumberOfReceiveQueues 2    
netsh int tcp set global autotuninglevel=normal

ergibt sich jetzt folgender Stand:

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 32K -P 1 -N -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
[  5] local 192.168.10.1 port 56571 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   177 MBytes  1.48 Gbits/sec
[  5]   1.00-2.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   2.00-3.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   3.00-4.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   4.00-5.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   5.00-6.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   6.00-7.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   7.00-8.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   8.00-9.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   9.00-10.00  sec   181 MBytes  1.52 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.76 GBytes  1.51 Gbits/sec                  sender
[  5]   0.00-10.01  sec  1.76 GBytes  1.51 Gbits/sec                  receiver


Hab durch Suchen noch dieser Seite gefunden:

Optimizing Windows Networking Keine Ahnung ob das alles hilfreich ist.

Grüße Ralf
MysticFoxDE
MysticFoxDE 09.11.2023 aktualisiert um 07:19:29 Uhr
Goto Top
Moin @thomaz,

LineBasedInterruptSupported : False
MsiInterruptSupported       : False
MsiXInterruptSupported      : False

wie ich schon vermutet habe, das wird so nichts mir RSS.

In der Intel Community gibt es zu diesem Thema schon einen längeren Beitrag.

https://community.intel.com/t5/Ethernet-Products/I217-LM-no-RSS-possible ...

Ist bei meiner I219-V die ebenfalls auf einem ASUS Board sitzt, übrigens dasselbe.

nichwinfo

nicrss

Gruss Alex
MysticFoxDE
MysticFoxDE 09.11.2023 aktualisiert um 07:43:31 Uhr
Goto Top
Moin Ralf,

Ich habe dann nochmal dein Skript auf beiden Rechner ausgeführt und hatte dann hatte ich auf einmal 10 MB/s :D

Nachdem ich die Fließkontrolle aktiviert hatte waren es dann ca.150 MB/s und nach Aktivierung Interrupt Moderation und den ganzen Tweaks:

alleine schon dieses Verhalten, lässt sich logisch überhaupt nicht erklären, da Flow Control eigentlich nur bei Überlast /Überflutung eingreift, in dem es der nächstgelegenen aktiven Ethernet Gegenstelle was im normallfall ein Switch ist, ein Pause-Frame zuschickt um diesem zu signalisieren, dass er kurz das Senden unterbrechen soll, damit sich der Empfänger wieder erholen kann.

10 MB/s, respektive 150 MB/s sind jedoch keine Last, die eine 2.5G NIC fluten sollten.


netsh int tcp set global RSS=Enabled
Set-NetOffloadGlobalSetting -PacketCoalescingFilter Enabled
Get-Netadapter | Set-NetAdapterRss -Enabled $true
Get-Netadapter | Restart-NetAdapter
Set-NetAdapterRss -Name "NAS" -Profile Closest -MaxProcessors 2 -NumberOfReceiveQueues 2    
Set-NetAdapterRss -Name "LAN" -Profile Closest -MaxProcessors 2 -NumberOfReceiveQueues 2    

Damit aktivierst und optimierst du lediglich RSS, was den NIC's erlaubt ihre Last über mehrere CPU's abzutragen,
wie ich jedoch schon mehrfach geschrieben habe, müsste eine 2.5G NIC auch ohne RSS, sprich mit nur einem Kern einer halbwegs aktuellen CPU, eigentlich vollständig auszureizen sein.

netsh int tcp set global autotuninglevel=normal

Der Parameter müsste nach der Ausführung meines Skripts eh auf normal stehen, da das Skript ganz am Anfang TCP und WINSOCK eh auf Default zurücksetzt.

ergibt sich jetzt folgender Stand:

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 32K -P 1 -N -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
[  5] local 192.168.10.1 port 56571 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   177 MBytes  1.48 Gbits/sec
[  5]   1.00-2.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   2.00-3.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   3.00-4.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   4.00-5.00   sec   180 MBytes  1.51 Gbits/sec
[  5]   5.00-6.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   6.00-7.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   7.00-8.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   8.00-9.00   sec   181 MBytes  1.52 Gbits/sec
[  5]   9.00-10.00  sec   181 MBytes  1.52 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.76 GBytes  1.51 Gbits/sec                  sender
[  5]   0.00-10.01  sec  1.76 GBytes  1.51 Gbits/sec                  receiver

Sprich, einzig und allein das aktivieren von RSS, hat zu dieser Veränderung geführt?!

Ähm, Moment, du hast ja noch den "PacketCoalescingFilter" wieder eingeschaltet. 🤔

Kannst du mal mit eingeschaltetem "PacketCoalescingFilter" das RSS ausschalten und nochmals einen Test machen, danke.

Hab durch Suchen noch dieser Seite gefunden:

Optimizing Windows Networking Keine Ahnung ob das alles hilfreich ist.

Über die bin ich gestern auch schon gestolpert als ich gezielt nach "DefaultSendWindow" und "DefaultReceiveWindow" gesucht habe, die anderen aufgelisteten Optionen kannte ich jedoch schon und denke nicht, dass die uns bei deinem Problem weiterhelfen.

Kannst du bei dir bitte auch mal ...

Get-NetAdapterHardwareInfo -Name "LAN", "NAS" | FL  


... ausführen und die Ausgabe hier posten, danke.

Du hast mal davor geschrieben, dass du mit Linux die 2.5G erreichen kannst.
War das auf derselben Hardware?

Gruss Alex
MysticFoxDE
MysticFoxDE 09.11.2023 aktualisiert um 07:42:10 Uhr
Goto Top
Moin Ralf,

Ich habe dann nochmal dein Skript auf beiden Rechner ausgeführt und hatte dann hatte ich auf einmal 10 MB/s :D

ich habe jetzt auf meinem Rechner und der Gegenstelle genau denselben Zustand hergestellt, den du nach der Ausführung meines Skripts auch haben solltest, sprich, RSS, FC, IM und auch der PacketCoalescingFilter sind aus.
Die gestern erwähnten Registry Optionen, sind jedoch gesetzt.

Und so sieht bei mir danach das Ergebnis von iPerf aus.
iperf - result 03

Wie ist bei dir PC1 mit PC2 verbunden, ist da noch ein Switch dazwischen?
Wenn geswitcht, kannst du die Rechner für einen Test mal direkt mit einem Patchkabel miteinander verbinden, danke.

Gruss Alex
MysticFoxDE
MysticFoxDE 09.11.2023 um 08:49:42 Uhr
Goto Top
Moin Ralf,

ähm, ich habe doch noch ein paar Optimierungen der bei mir beteiligten Workstations unterschlagen, die durch mein Optimierungsskript (noch) nicht gesetzt werden, aber auf diesen aktuell aktiv sind. 😬

reg multimedia parameter

Vielleicht bringen die etwas mehr Licht ins Dunkle.

Gruss Alex

P.S. Kannst du bitte auch kontrollieren ob bei deinen 2.5G NIC's in den erweiterten Einstellungen der Sende- und Empfangspuffer auf dem maximal möglichen Wert steht.
Unikat2000
Unikat2000 09.11.2023 um 11:13:43 Uhr
Goto Top
Moin Alex,

Kannst du mal mit eingeschaltetem "PacketCoalescingFilter" das RSS ausschalten und nochmals einen Test machen, danke.

E:\_TOOLS\_special\jperf\iperf3.15_64>iperf3.exe -t 10 -l 32K -P 1 -N -c 192.168.10.3
Connecting to host 192.168.10.3, port 5201
[  5] local 192.168.10.1 port 50365 connected to 192.168.10.3 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   152 MBytes  1.28 Gbits/sec
[  5]   1.00-2.00   sec   173 MBytes  1.45 Gbits/sec
[  5]   2.00-3.00   sec   156 MBytes  1.31 Gbits/sec
[  5]   3.00-4.00   sec   150 MBytes  1.26 Gbits/sec
[  5]   4.00-5.00   sec   173 MBytes  1.45 Gbits/sec
[  5]   5.00-6.00   sec   167 MBytes  1.40 Gbits/sec
[  5]   6.00-7.00   sec   173 MBytes  1.45 Gbits/sec
[  5]   7.00-8.00   sec   147 MBytes  1.23 Gbits/sec
[  5]   8.00-9.00   sec   165 MBytes  1.39 Gbits/sec
[  5]   9.00-10.00  sec   158 MBytes  1.32 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.58 GBytes  1.35 Gbits/sec                  sender
[  5]   0.00-10.02  sec  1.57 GBytes  1.35 Gbits/sec                  receiver


Wie du siehst wieder eine Verschlechterung...

PC1

Name                        : NAS
InterfaceDescription        : Realtek PCIe 2.5GbE Family Controller
DeviceType                  : PCI Express treated as PCI
SegmentNumber               : 0
BusNumber                   : 4
DeviceNumber                : 0
FunctionNumber              : 0
SlotNumber                  :
NumaNode                    :
PciCurrentSpeedAndMode      :
PciExpressCurrentLinkSpeed  : 5.0 GT/s
PciExpressCurrentLinkWidth  : 1
PciExpressMaxLinkSpeed      : 5.0 GT/s
PciExpressMaxLinkWidth      : 1
PciExpressVersion           : 1.1
LineBasedInterruptSupported : True
MsiInterruptSupported       : True
MsiXInterruptSupported      : True

Name                        : LAN
InterfaceDescription        : Killer E2400 Gigabit Ethernet Controller
DeviceType                  : PCI Express treated as PCI
SegmentNumber               : 0
BusNumber                   : 8
DeviceNumber                : 0
FunctionNumber              : 0
SlotNumber                  :
NumaNode                    :
PciCurrentSpeedAndMode      :
PciExpressCurrentLinkSpeed  : 2.5 GT/s
PciExpressCurrentLinkWidth  : 1
PciExpressMaxLinkSpeed      : 2.5 GT/s
PciExpressMaxLinkWidth      : 1
PciExpressVersion           : 1.1
LineBasedInterruptSupported : True
MsiInterruptSupported       : True
MsiXInterruptSupported      : True

PC2

Name                        : LAN
InterfaceDescription        : Intel(R) 82578DM Gigabit Network Connection
DeviceType                  : Conventional PCI
SegmentNumber               : 0
BusNumber                   : 0
DeviceNumber                : 25
FunctionNumber              : 0
SlotNumber                  :
NumaNode                    :
PciCurrentSpeedAndMode      : 0
PciExpressCurrentLinkSpeed  : Unknown
PciExpressCurrentLinkWidth  :
PciExpressMaxLinkSpeed      : Unknown
PciExpressMaxLinkWidth      :
PciExpressVersion           :
LineBasedInterruptSupported : False
MsiInterruptSupported       : False
MsiXInterruptSupported      : False

Name                        : NAS
InterfaceDescription        : Realtek Gaming 2.5GbE Family Controller
DeviceType                  : PCI Express treated as PCI
SegmentNumber               : 0
BusNumber                   : 1
DeviceNumber                : 0
FunctionNumber              : 0
SlotNumber                  : 1
NumaNode                    :
PciCurrentSpeedAndMode      :
PciExpressCurrentLinkSpeed  : 2.5 GT/s
PciExpressCurrentLinkWidth  : 1
PciExpressMaxLinkSpeed      : 5.0 GT/s
PciExpressMaxLinkWidth      : 1
PciExpressVersion           : 1.1
LineBasedInterruptSupported : True
MsiInterruptSupported       : True
MsiXInterruptSupported      : True

Hmm PciExpressVersion 1.1 ..
Laut Handbuch bei PC1 alles 3.0 und bei PC2 Version 2.0 laut CPU-Z und Chipsatz-Info. Handbuch spricht von 1.1. Keine Ahnung wie akkurat das ist, aber selbst 1.1 sollte mehr als 200MB/s bringen. Hatte aber die PCIe Übertragungsgeschwindigkeit auch mal im Verdacht.


Du hast mal davor geschrieben, dass du mit Linux die 2.5G erreichen kannst.
War das auf derselben Hardware?

Ja war auf derselben Hardware, aber nur mit Iperf getestet, da ich auf die Schnelle nicht wusste SAMBA Shares zum Datentransfer einzurichten...

Momentan sind die PCs über einen Switch verbunden, aber davor waren sie direkt verbunden.

Quelle?
n1kobg.blogspot.com/p/blog-page_23.html


Zu den RegTweaks:
NetworkThrottlingIndex war 10 auf beiden PCs. Die anderen Einträge existierten nicht. Sende und Emfangspuffer sind auf Maximum. Mit dem Kabel muss ich heute Abend nach der Arbeit probieren...

Die Regteaks bei beiden PCs eintragen, aber keine Verbesserung nach Neustart

Nochmal dannke das du an der Sache so dran bleibst face-smile


Gruß Ralf
thomaz
thomaz 09.11.2023 um 12:00:28 Uhr
Goto Top
Zitat von @MysticFoxDE:
wie ich schon vermutet habe, das wird so nichts mir RSS.

In der Intel Community gibt es zu diesem Thema schon einen längeren Beitrag.

https://community.intel.com/t5/Ethernet-Products/I217-LM-no-RSS-possible ...

Ist bei meiner I219-V die ebenfalls auf einem ASUS Board sitzt, übrigens dasselbe.

Ok, hab da nich so den Plan von.
Aber sonst ist alles so gut wie möglich eingestellt?
MysticFoxDE
MysticFoxDE 09.11.2023 aktualisiert um 14:10:14 Uhr
Goto Top
Moin Ralf,

Name                        : NAS
InterfaceDescription        : Realtek Gaming 2.5GbE Family Controller
DeviceType                  : PCI Express treated as PCI
SegmentNumber               : 0
BusNumber                   : 1
DeviceNumber                : 0
FunctionNumber              : 0
SlotNumber                  : 1
NumaNode                    :
PciCurrentSpeedAndMode      :
PciExpressCurrentLinkSpeed  : 2.5 GT/s
PciExpressCurrentLinkWidth  : 1
PciExpressMaxLinkSpeed      : 5.0 GT/s
PciExpressMaxLinkWidth      : 1
PciExpressVersion           : 1.1
LineBasedInterruptSupported : True
MsiInterruptSupported       : True
MsiXInterruptSupported      : True

😮 ... ja, ich sehe das Problem ...

Hmm PciExpressVersion 1.1 ..

Der Parameter "PciExpressVersion" ist nicht das entscheidende, auch bei einer PCI-E 2.0/2.1 oder 3.0/3.1 Verbindung, steht an dieser Stelle 1.1.

Das entscheidende ist eher "PciExpressCurrentLinkSpeed" und gemäss der oberen Ausgabe, läuft die 2.5G NIC im PC2 im PCI-E 1.0/1.1 Modus mit nur einer Lane. 😬
Das ist nix gut, weil viel zu wenig.

Laut Handbuch bei PC1 alles 3.0 und bei PC2 Version 2.0 laut CPU-Z und Chipsatz-Info. Handbuch spricht von 1.1. Keine Ahnung wie akkurat das ist, aber selbst 1.1 sollte mehr als 200MB/s bringen. Hatte aber die PCIe Übertragungsgeschwindigkeit auch mal im Verdacht.

Ja, theoretisch solltest du bei PCI-E 1.1 mit einer Lane etwa 250 MB/s schaffen, aber, das ist das absolute Limit für den Datenverkehr zwischen CPU und der entsprechenden Karte, sprich, es ist die maximale theoretische Bruttotransferrate, was jedoch nicht gleichzeitig bedeutet, dass du diese auch netto per TCP haben kannst.
Da ist noch eine ganze menge Steuerungsdatenverkehr & Co, sprich Overhead dazwischen.

Ausserdem kann es z.B. auch sein, dass die PCI-E Lanes von diesem Steckplatz nicht direkt an die CPU gehen, sondern vom Chipsatz bereitgestellt werden. In dem Fall ist es sehr oft so, dass der Chipsatz eine PCI-E Lane der CPU , auf mehrere PCI-E Lanes der an diesem angeschlossenen Endgeräte verteilt. In dem Fall kannst du die volle PCI-E Performance eh knicken.

Ja war auf derselben Hardware, aber nur mit Iperf getestet, da ich auf die Schnelle nicht wusste SAMBA Shares zum Datentransfer einzurichten...

Wahrscheinlich war das der PC1, bei diesem läuft die 2.5G NIC mit PCI-E 2.0/2.1.

Kannst du die NIC im PC2 vielleicht mal testweise in einen anderen PCI-E Slot reinstopfen?

Nochmal dannke das du an der Sache so dran bleibst face-smile

Aber gerne und ausserdem habe ich bei deiner Geschichte ja auch eine Menge neues dazugelernt. 😁

Gruss Alex
DanHot
DanHot 09.11.2023 um 14:34:56 Uhr
Goto Top
Also zum Thema:
LineBasedInterruptSupported :
MsiInterruptSupported :
MsiXInterruptSupported :

https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled ...
Mit dem tool kann man seine Devices das dort aktivieren, geht auch über registry, aber tool ist angenehmer ;)
MysticFoxDE
MysticFoxDE 09.11.2023 aktualisiert um 18:32:52 Uhr
Goto Top
Moin @DanHot,

Also zum Thema:
LineBasedInterruptSupported :
MsiInterruptSupported :
MsiXInterruptSupported :

https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled ...
Mit dem tool kann man seine Devices das dort aktivieren, geht auch über registry, aber tool ist angenehmer ;)

ja, das ist schon bei manchen Geräten möglich diese Funktionen im Nachgang zu aktivieren.
Ich würde dies für unerfahrene User aber nicht wirklich empfehlen, weil man sich damit ratz fatz auch die Windows Installation zerschiessen kann. 😬
Für fortgeschrittene User ist es hingegen einen interessante Experimentiermöglichkeit. 🤪

Aber ... ich finde die Entwicklung/das Verhalten der 2.5 G NIC vom @Unikat2000 extrem spannend.
Denn das was bei ihm geschehen ist, sprich, dass die Performance seiner NIC, die wiederum BUS technisch nicht mit der vollen erforderlichen Bandbreite angebunden ist, fast komplett zusammenbrach sobald RSS deaktiviert wurde, ist fürchte ich in der freien Wildbahn gar nicht so selten. 😔

Und zwar denke ich hier insbesondere an ganz gängige 1G NIC's, die z.B. in irgendwelchen USB 3.0 & Co Dockingstations stecken!
Denn bei diesen ist es gar nicht so selten, dass die eingebauten NIC nicht mit der vollen erforderlichen Busbandbreite bedient werden kann, weil entweder die an den Dockingstations angeschlossenen Monitore und oder andere Geräte bereits schon zu viel Bandbreite ziehen, oder schlechtes USB Kabel zwischen Dockingstation und Rechner/Notebook, u.s.w..
Und genau diese NIC's unterstützen sehr oft von Haus aus auch kein RSS. 😬
Sprich, sobald die Bus-Bandbreite einer NIC unter deren max. möglichen Transfergeschwindigkeit sinkt und wenn die NIC dann auch kein RSS unterstützt, kann man der NIC Performance aber so richtig Tschüs sagen. 😭

Das erklärt nun diverse Phänomene, die ich in letzter Zeit mit den NIC's dieser besch...... USB Dockingstations erleben durfte.

Gruss Alex
Unikat2000
Unikat2000 09.11.2023 um 23:27:06 Uhr
Goto Top
Hi Alex,

also ich habe mir die Specs vom Mainboard des PC2 nochmal angeschaut. Dort ist ein Q57 Chipsatz verbaut der tatsächlich PCIe 2.0 bereitstellt, aber nur 2.5 GT/s für alle Lanes. Bislang war ich davon ausgegangen das 2.0 generell 5.0GT/s zur Vefügung stellt.

Interessant wird es beim NAS Rechner mit P45 Chipsatz. Angeblich soll dieser 2.0 haben aber mit 5GT/s laut Blockdiagram. Bei meinem Board wird mit HWINFO aber auch nur 1.1 (2.5 GT/s) für die PCIe x1 Steckplätze angezeigt.

Werde trotzdem nochmal das Gante mit Linux am Wochenende ausprobieren, um zu verfizieren, was ich da gesehen habe.

Ich danke Dir nochmal. Habe auch wieder viel gelernt face-smile

Grüße Ralf
DanHot
DanHot 10.11.2023 um 02:06:25 Uhr
Goto Top
glaube einfach das es nicht richtig ausgelesen wird oder im treiber die Werte nicht richtig eingetragen werden, den selbst bei meinem X570 Chipsatz ist es genau das gleiche.
Mal wieder der Punkt das nicht ordentlich gecodet worden ist.
MysticFoxDE
MysticFoxDE 10.11.2023 um 08:32:35 Uhr
Goto Top
Moin Ralf,

also ich habe mir die Specs vom Mainboard des PC2 nochmal angeschaut. Dort ist ein Q57 Chipsatz verbaut der tatsächlich PCIe 2.0 bereitstellt, aber nur 2.5 GT/s für alle Lanes. Bislang war ich davon ausgegangen das 2.0 generell 5.0GT/s zur Verfügung stellt.

ähm, das mit PCIe 2.0 und 5 GT/s ist vollkommen korrekt!
Ich weis ehrlich gesagt nicht wirklich, was sich Intel bei diesem Chipsatz und seinen PCIe 2.0 Steckplätzen die nur 2,5 GT's können, wirklich gedacht hat. Das ist schlichtweg ein Blödsinn. 😔
Es ist zwar korrekt, dass ein PCIe 2.0 Steckplatz auch zu PCIe 1.0/1.1 kompatibel sein muss, sprich auch den 2,5 GT's Modus unterstützen muss. Aber, ein PCIe Steckplatz der nur mit max. 2.5 GT/s betrieben werden kann, ist gemäss der PCIe Spezifikation, eigentlich nicht wirklich ein PCIe 2.0 Steckplatz, weil dieser schlichtweg zwingend auch die 5GT's liefern muss.

Interessant wird es beim NAS Rechner mit P45 Chipsatz. Angeblich soll dieser 2.0 haben aber mit 5GT/s laut Blockdiagram. Bei meinem Board wird mit HWINFO aber auch nur 1.1 (2.5 GT/s) für die PCIe x1 Steckplätze angezeigt.

Das hängt von dem eingesteckten Gerät ab. Wenn du in ein PCIe 2.0/2.1 Steckplatz ein PCI 1.0/1.1 Gerät einsteckst, dann muss dieser mit 2.5 GT/s laufen.

Gruss Alex
MysticFoxDE
MysticFoxDE 10.11.2023 aktualisiert um 08:49:43 Uhr
Goto Top
Moin @DanHot,

glaube einfach das es nicht richtig ausgelesen wird oder im treiber die Werte nicht richtig eingetragen werden, den selbst bei meinem X570 Chipsatz ist es genau das gleiche.
Mal wieder der Punkt das nicht ordentlich gecodet worden ist.

Ich glaube du missinterpretierst die Anzeige von „Get-NetAdapterHardwareInfo“ etwas.

nichwinfo 2

Der grün markierten Werte zeigen nicht die maximal mögliche Leistung des PCIe Slots in dem die entsprechende NIC drin steckt, sondern lediglich deren eigene maximal mögliche PCIe Anbindungsgeschwindigkeit.

x540 pcie

Und die rot Markierten Werte zeigen die Geschwindigkeit, mit der die entsprechende NIC stand jetzt am entsprechenden PCIe Slot dran hängt.

Gruss Alex
DanHot
DanHot 10.11.2023 aktualisiert um 11:51:56 Uhr
Goto Top
Es ging doch um "PciExpressVersion : 1.1" und der steht bei allen geposteten Beiträgen auf "1.1" was ja nicht stimmen kann!
Meine Werte:
Name                        : Ethernet
InterfaceDescription        : Intel(R) I211 Gigabit Network Connection
DeviceType                  : PCI Express treated as PCI
SegmentNumber               : 0
BusNumber                   : 5
DeviceNumber                : 0
FunctionNumber              : 0
SlotNumber                  : 
NumaNode                    : 
PciCurrentSpeedAndMode      : 
PciExpressCurrentLinkSpeed  : 2.5 GT/s
PciExpressCurrentLinkWidth  : 1
PciExpressMaxLinkSpeed      : 2.5 GT/s
PciExpressMaxLinkWidth      : 1
PciExpressVersion           : 1.1
LineBasedInterruptSupported : True
MsiInterruptSupported       : True
MsiXInterruptSupported      : True

Genau so "DeviceType : PCI Express treated as PCI" das muss auch falsch sein, das hat glaube ich mit dem im Geräte Manager ausgewählten Treiber zu tun, die Windows vorgibt:
ASUS X570 Hero
s2c4frt
PCI-zu-PCI-Brücke "wahrscheinlich falsch"

Wenn ich bei meinem Sohn auf den PC gehe, gleiche Chipsatz X570 andere Hersteller, werden "andere" Treiber benutzt:
Gigabyte X570
ieo6luo
Downstream-Switchport für PCI-Express "eher richtig"
aqui
aqui 10.11.2023 um 11:51:35 Uhr
Goto Top
Bitte keine externen Bilderlinks mit Zwangswerbung!! 😡
Das Forum hat eigens eine Option Bilder hier im Kontext hochzuladen! FAQs lesen hilft...
Formatierungen in den Beiträgen
DanHot
DanHot 10.11.2023 aktualisiert um 12:45:32 Uhr
Goto Top
Also ich hab keine Werbung, AD Blocker hilft hab ich gehört. Deswegen hab ich ja schon den direktlink gepostet btw.

Dann müsste ich noch die Bilder bei mir Speichern, dann hier wieder hochladen, sry das ist mir zu viel Arbeit!

Einfach mal eine Funktion hier einbinden, wo man externe Bilder als Links einbinden kann, so wie in den meisten Foren ist, DANKEEE face-smile

Danke fürs einbinden face-kiss
MysticFoxDE
MysticFoxDE 10.11.2023 um 12:37:05 Uhr
Goto Top
Moin @DanHot,

Name                        : Ethernet
InterfaceDescription        : Intel(R) I211 Gigabit Network Connection
DeviceType                  : PCI Express treated as PCI
SegmentNumber               : 0
BusNumber                   : 5
DeviceNumber                : 0
FunctionNumber              : 0
SlotNumber                  : 
NumaNode                    : 
PciCurrentSpeedAndMode      : 
PciExpressCurrentLinkSpeed  : 2.5 GT/s
PciExpressCurrentLinkWidth  : 1
PciExpressMaxLinkSpeed      : 2.5 GT/s
PciExpressMaxLinkWidth      : 1
PciExpressVersion           : 1.1
LineBasedInterruptSupported : True
MsiInterruptSupported       : True
MsiXInterruptSupported      : True

vergiss am Besten gleich wieder, was unter "PciExpressVersion" steht, das ist nicht die PCIe Version, mit der die Karte aktuell läuft!

Die PCIe Version mit der die entsprechende NIC aktuell angebunden ist, kannst du lediglich durch das was unter "PciExpressCurrentLinkSpeed" steht, herauslesen.

2.5 GT/s = PCIe 1.0/1.1
5 GT/s = PCIe 2.0/2.1
8 GT/s = PCIe 3.0/3.1
16 GT/s = PCIe 4.0

Siehe ...
nichwinfo 3
... die obere NIC ist hierbei mit einer PCIe 2.0/2.1 Lane und die untere ist mit zwei PCIe 3.0/3.1 Lanes angebunden und bei beiden steht unter "PciExpressVersion" dasselbe, sprich, "1.1".

Gruss Alex
DanHot
DanHot 10.11.2023 um 12:44:17 Uhr
Goto Top
Ja GENAU das meinte ich doch :D das es einfach falsch angezeigt wird, weil irgend einer beim Programmieren wieder zu faul war ;)
MysticFoxDE
MysticFoxDE 10.11.2023 um 13:06:04 Uhr
Goto Top
Moin @DanHot,

Ja GENAU das meinte ich doch :D das es einfach falsch angezeigt wird, weil irgend einer beim Programmieren wieder zu faul war ;)

ja, das kann schon sein, vor allem bei Microsoft.

Wenn es um Dingen wie noch mehr nutzlosen Blink Blink und oder noch rundere Ecken geht, so sind die Microsoftians mittlerweile fast so gut wie auch die Appleianer. 🤪
Wenn es jedoch um das Verstehen und die Umsetzung von in der IT zum Teil seit Jahrzehnten geltenden Grundlagen geht, wie z.B. die Implementierung eines effizienten und performanten TCP-Stacks, so komme ich mir bei Microsoft mittlerweile eher wieder wie in einem Kindergarten vor. 😔

Gruss Alex
MysticFoxDE
MysticFoxDE 17.11.2023 um 07:16:37 Uhr
Goto Top
Moin Zusammen,

gestern hat mein Kollege sich endlich dazu entschieden seine Workstation, gegen die ich die letzten 10G Tests gemacht habe, mal auf den neusten Stand zu bringen. Sprich, er hat das Windows 10 gegen Windows 11 ausgetauscht.

Die Workstation wurde frisch installiert, sprich alles auf Microsoft Default.

Nachdem er mit der Installation des Betriebssystems fertig war und auch alle Treiber drauf installiert hat, habe ich gleich einen iPerf Test mit den selben Parameter wie auch noch vor ein paar Tagen drüber gejagt, bei dem ich noch das folgende Ergebnis erreichen konnte ...
Wie man das Windows 10 und 11 TCP-Handling wieder desuboptimieren kann
iperf - result 03
... sprich, 9,08 GBit/s, bei nur einem Tread und einer Blockgrösse von gerade mal 32K. 😁

Und nun, nach der Neuinstallation der zweiten Workstation, sieht das Ergebnis folgend aus ...
iperf - result 04
... sprich, selbst wenn ich die Blockgrösse auf 512K schraube, komme ich nun nicht über 5,19 GBit/s drüber. 🤢🤮😡

Gruss Alex
MysticFoxDE
MysticFoxDE 17.11.2023 um 08:08:24 Uhr
Goto Top
Und in die andere Richtung sieht es nun "per Default" noch beschissener aus. 😡🤬

iperf - result 05

😔😭
MysticFoxDE
MysticFoxDE 17.11.2023 um 08:36:42 Uhr
Goto Top
Bei einer Blockgrösse von !! 1MB !!, wird es sogar noch viel gruseliger. 😱

iperf - result 06
Herkul
Herkul 22.11.2023 um 08:18:43 Uhr
Goto Top
Hallo Alex

Das scheint genau dasselbe Problem zu sein wie meins, worüber ich mich seit fast einem Jahr aufrege. Ich wollte eine Neuinstallation demnächst durchführen, jedoch du bestätigst mir meine Befürchtung.

Was denkst du, wo genau das Problem liegt und wie man es nachhaltig lösen könnte ohne auf Windows 11 verzichten zu müssen.

Gruss
HERKUL
MysticFoxDE
MysticFoxDE 22.11.2023 um 09:03:18 Uhr
Goto Top
Moin @Herkul,

Was denkst du, wo genau das Problem liegt und wie man es nachhaltig lösen könnte ohne auf Windows 11 verzichten zu müssen.

das musst du auch nicht, denn bisher lässt sich so gut wie alles was MS performancetechnisch per Default vermurkst hat, halbwegs wieder zurück bauen.
Siehe die neuen zusätzlichen Optimierungen in diesem Post jüngst gepostet habe, die aber noch nicht im Optimierungsskript enthalten sind.

Sprich, wenn ich die Workstation von meinem Kollegen wieder optimiere, flutscht die auch wieder so wie es sein sollte. 😁

Sprich, ich wollte mit den oberen Posts einfach nur festhalten, wie bescheiden die Performance eines aktuellen W11 per Default ist, nicht jedoch die Hoffnung rauben, dass man daran nichts ändern kann. 😉

Vielleicht bekomme ich es zwischen den Jahren auf die Kette, das Skript mal wieder auf einen aktueller Stand zu bringen.

Gruss Alex
limesy
limesy 24.11.2023 aktualisiert um 01:51:23 Uhr
Goto Top
So ganz grundlegend sind da schon Dinge drin, die Performancezuwachs (je nach Einsatzzweck) bringen können und vorallem auch gut dokumentiert sind.

Was allerdings einen bitteren Beigeschmack hinterlässt:

"EnableConnectionRateLimiting" - ein Tweak aus XP Zeiten um das TCP Half-Open(!) Connection Limit zu erhöhen. Habt ihr noch eMule o.ä. am laufen? Vor allem wurde das Limit ab Windows 7 entfernt und meines Wissens nach nicht wieder eingeführt. Die Ereignisanzeige zeigte auch durchaus an, falls man an das Limit gekommen ist. Ist alles schon seit Jahren kein Thema mehr.

"NoLazyMode" (noch nicht im offiziellen Script aber scheinbar geplant?) - ich weiß ehrlich gesagt nicht, was das in einem grundlegenden Netzwerkoptimierungsscript zu suchen hat. Ein ziemlich wenig dokumentierter Switch, der hauptsächlich von Seiten und Leuten aufgegriffen werden, die sich auch einbilden, dass das deaktivieren von Secure Boot ihre Mausbewegungen weicher machen ohne konkrete Unterschiede irgendwo faktisch festgehalten zu haben und selbst 'wenn' es irgendeinen Einfluss auf den MMCSS Scheduler und den Sleep/Idle Zeiten von diesen hat, "vorausgesetzt" die Anwendungen nutzen diesen auch, ist das wohl kaum eine Ursache von Netzwerkproblemen.

Weniger schlimm finde ich da noch die Aktivierung von ECN. Kann man machen, bringt ohne Active Queue Management aber nicht viel und hat hier und da auch schon zu Problemen geführt. (keine eigenen Erfahrungen mit Problemen) - nur finde ich es "merkwürdig", auf der einen Seite die Flusskontrolle zu deaktivieren nur um dann ein Protokoll / Bit zu nutzen / setzen, welches sowieso nur funktioniert solange von Punkt A zu Punkt B jeder Hop das unterstützt UND die Flusskontrolle mit in die Entscheidung OB überhaupt ein Bit gesetzt wird, einbezieht. Zumindest meines Verständnisses der Implementierung nach.

Am RSS und den Transmit und Receive Buffern zu basteln, obwohl diese z.B. bei neueren Treibern für Intel-Heimnetzwerkkarten auf Windows 11 wie z.B. der I225V, mittlerweile aus den NIC-Einstellungen verschwunden sind, finde ich persönlich vom Script auch nicht gerade nett.
Ich bleibe da doch lieber bei dem von Intel vorgesehenen Weg, dass mir das neueste Treiberpaket (W11) diese Optionen nicht mehr gibt, wobei es die "älteren" (WS2022 und NDIS68) noch tun.

Ich habe überlegt ob ich noch was zum Thema Nagle Algorithm sagen möchte aber es kann durchaus etwas bringen.
Allerdings auch die Kehrseite betrachten, weil man für eine schnellere Reaktionsfreudigkeit an Effizienz einbüßt, die sich auch auf Dateitransfers negativ auswirken kann.

Vielleicht sollte sich das Script nicht in ein zu tiefes Rabbithole begeben und man könnte einigen Entwicklern bei MS durchaus auch zutrauen, dass sie hier und da durchaus wissen was sie tun (nein, durchaus nicht immer und nein, ich werde auch nicht von ihnen bezahlt...) und sich vielleicht auf das konzentrieren, was es am besten kann.

Denn ich würde zu 100% wetten, dass das Script auch ohne die o.g. Funktionen noch wunderbar und genau so funktioniert und ich danach nicht das Gefühl habe, dass es mir das System zermurkst. Man kann sich nämlich auch vieles kaputt optimieren und am Ende ist die Suche nach dem Fehler lang.

Ansonsten greife ich wenn, dann auch lieber auf eine, je nach Anwendungszweck-abhängige, manuelle Optimierung zurück von: https://www.speedguide.net/articles/windows-10-tcpip-tweaks-5077 (allerdings auf CUBIC bleiben und nicht CTCP.) und ggf. noch https://www.speedguide.net/articles/gaming-tweaks-5812 - auch wenn ich mich beim normalen Browsen mittlerweile schwer tue, ab Windows 11 dort Unterschiede zu sehen. Ich müsste schon ausführliche Messungen durchführen.

Würde ich noch Gaming betreiben würde ich hier und da sicherlich noch einen "Schalter" umlegen aus den Guides aber den größten Zuwachs an "gefühlter" Surfgeschwindigkeit hatte ich kürzlich tatsächlich durch simples Wechseln meines DNS Servers am Router und nicht durch das komplette Verteufeln von dem Default preset und den kompletten Switch auf ein Datacenter Profil, welches nichts anderes tut, als diverse Timer bzw. Time-Outs (minrto + delayedAckTimeout(ms)) zu verringern, etwas, das ich manuell auch ohne diesen Schritt tun könnte.

Gruß
MysticFoxDE
MysticFoxDE 24.11.2023 um 07:35:23 Uhr
Goto Top
Moin @limesy,

habe gerade nicht viel Zeit, daher kann ich jetzt nur verkürzt auf deine Punkte eingehen.

"EnableConnectionRateLimiting" - ein Tweak aus XP Zeiten um das TCP Half-Open(!) Connection Limit zu erhöhen. Habt ihr noch eMule o.ä. am laufen? Vor allem wurde das Limit ab Windows 7 entfernt und meines Wissens nach nicht wieder eingeführt. Die Ereignisanzeige zeigte auch durchaus an, falls man an das Limit gekommen ist. Ist alles schon seit Jahren kein Thema mehr.

Ja, das ist korrekt, der Tweak hat bei aktuellen Windows keine Auswirkung.
Dieser ist lediglich auf eine Bitte von einem User eingebaut worden und nachdem ich bei Tests keine nachteilige Veränderung Veränderung festgestellt habe, habe ich ihm den Wunsch erfüllt.

"NoLazyMode" (noch nicht im offiziellen Script aber scheinbar geplant?) - ich weiß ehrlich gesagt nicht, was das in einem grundlegenden Netzwerkoptimierungsscript zu suchen hat. Ein ziemlich wenig dokumentierter Switch, der hauptsächlich von Seiten und Leuten aufgegriffen werden, die sich auch einbilden, dass das deaktivieren von Secure Boot ihre Mausbewegungen weicher machen ohne konkrete Unterschiede irgendwo faktisch festgehalten zu haben und selbst 'wenn' es irgendeinen Einfluss auf den MMCSS Scheduler und den Sleep/Idle Zeiten von diesen hat, "vorausgesetzt" die Anwendungen nutzen diesen auch, ist das wohl kaum eine Ursache von Netzwerkproblemen.

Na ja, nach dem setzen von mitunter auch diesem Schalter, haben insbesondere die 10G NIC's meiner Workstation,
wieder ihre volle Leistung gebracht, ohne dabei x Kerne an CPU Leistung zu fressen.

Und was das Secure Boot angeht, boote mal eine VM mit und einmal ohne und dann siehst du direkt den Unterschied.

Weniger schlimm finde ich da noch die Aktivierung von ECN. Kann man machen, bringt ohne Active Queue Management aber nicht viel und hat hier und da auch schon zu Problemen geführt. (keine eigenen Erfahrungen mit Problemen) - nur finde ich es "merkwürdig", auf der einen Seite die Flusskontrolle zu deaktivieren nur um dann ein Protokoll / Bit zu nutzen / setzen, welches sowieso nur funktioniert solange von Punkt A zu Punkt B jeder Hop das unterstützt UND die Flusskontrolle mit in die Entscheidung OB überhaupt ein Bit gesetzt wird, einbezieht. Zumindest meines Verständnisses der Implementierung nach.

ECN habe ich wegen DCTCP aktiviert, da es für dessen korrekte Funktion notwendig ist.

Am RSS und den Transmit und Receive Buffern zu basteln, obwohl diese z.B. bei neueren Treibern für Intel-Heimnetzwerkkarten auf Windows 11 wie z.B. der I225V, mittlerweile aus den NIC-Einstellungen verschwunden sind, finde ich persönlich vom Script auch nicht gerade nett.
Ich bleibe da doch lieber bei dem von Intel vorgesehenen Weg, dass mir das neueste Treiberpaket (W11) diese Optionen nicht mehr gibt, wobei es die "älteren" (WS2022 und NDIS68) noch tun.

Es zwingt dich ja auch keiner das Skript zu verwenden.
Aber, die Übertragungspuffer, spielen übrigens eine Schlüsselrolle bei der vermurksten Performance von aktuellen Windows Systemen, ich hatte lediglich noch keine Zeit, einen entsprechenden Artikel dazu zu schreiben.

Ich habe überlegt ob ich noch was zum Thema Nagle Algorithm sagen möchte aber es kann durchaus etwas bringen.

Das mit dem Nagle Algorithm ist eine ganz schräge Geschichte, eigentlich sollte dieser bei aktuellen Windows Versionen nicht mehr aktiv sein, sondern nur noch die Delayed ACK's, die einen zusätzlichen Delay von bis zu 40ms erzeugen können.
Aber, ich habe schon öfters im Ressorcenmonitor eine Latenz von 200ms bei TCP Anwendungen beobachten können,
und Microsoft erwähnt die 200ms Delay auch selbst noch in aktuellen Dokus. 🙃

Allerdings auch die Kehrseite betrachten, weil man für eine schnellere Reaktionsfreudigkeit an Effizienz einbüßt, die sich auch auf Dateitransfers negativ auswirken kann.

Das ist mir durchaus sehr bewusst.

Vielleicht sollte sich das Script nicht in ein zu tiefes Rabbithole begeben und man könnte einigen Entwicklern bei MS durchaus auch zutrauen, dass sie hier und da durchaus wissen was sie tun (nein, durchaus nicht immer und nein, ich werde auch nicht von ihnen bezahlt...) und sich vielleicht auf das konzentrieren, was es am besten kann.

Das habe ich so auch mal geglaubt, bis ich persönlich mit einigen dieser Entwickler gesprochen habe. 😔

Oh, verflixt, jetzt muss ich schnell weiterflitzen.
Der Rest und auch mehr Details kommen später.

Gruss Alex
MysticFoxDE
MysticFoxDE 24.11.2023 um 10:59:26 Uhr
Goto Top
Moin @limesy,

kurz noch zu dem folgenden Punkt, dann muss ich aber auch schon wieder weiterflitzen.

Denn ich würde zu 100% wetten, dass das Script auch ohne die o.g. Funktionen noch wunderbar und genau so funktioniert und ich danach nicht das Gefühl habe, dass es mir das System zermurkst. Man kann sich nämlich auch vieles kaputt optimieren und am Ende ist die Suche nach dem Fehler lang.

Für den Fall, dass das Optimierungsskript etwas zerschiesst, habe ich schon von Anfang an das folgende Skript bereitgestellt, welches sämtliche Änderungen des Optimierungsskriptes wieder auf Default zurückbiegt.

https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11 ...

Gruss Alex
limesy
limesy 24.11.2023 um 18:10:07 Uhr
Goto Top
Sorry, war etwas spät gestern.

Die Übertreibung mit Secure Boot war etwas aus der Luft gegriffen und mittlerweile, dank Windows 11 durchaus auch konfliktreich. Nein, mir ging es eher um sogenannte "Tweaker" die schon bekannt dafür waren, solche Aussagen 2013 zu treffen, allerdings ging es um gefühlte Unterschiede zwischen UEFI & CSM Boot.

Das Problem mit den VMs liegt evtl. daran weil HVCI und VBS unter 11 aktiv werden, wenn Secure Boot eingerichtet ist.

Bzgl. NoLazyMode und co. Ich habe viel mit diesen sogenannten "Gaming-Tweaks" in der frühen Vergangenheit herumgespielt und das ist heute mit einer der Gründe, warum ich sage, die Windows Kernel Devs haben eine gewisse "Ahnung" was sie machen. Ich sage nicht, dass es nicht "vielleicht" irgendwo mal einen "speziellen" Fall gegeben hat wo z.B. die Deaktivierung von HPET (bitte nicht machen) mal etwas Performance gebracht hat, weil irgendeine Anwendung oder ein Spiel oder ein Hardwarekonflikt, was auch immer, es versäumt hat, den richtigen Timer zu setzen aber im Grunde, sind das einfach nur Zeitbomben der Instabilität die darauf warten irgendwann hochzugehen und Grund für eine lange Fehlersuche sein können.

Ein gewisser englischsprachiger Blog da draußen ist z.B. ist in meinen Augen keiner, an den man sich richten sollte.
Eine zusammengesuchte Kollektion von Tweaks, quer durch alle Windows Versionen ohne Benchmarks.
Schwierig ist es, weil mitunter gute Dinge dabei sind, die aber v.a. von Speedguide und co. stammen.
Aber wenn im Blog dann RSS aktiviert wird und im gleichen Atemzug Offloading abgeschaltet wird... Ich weiß ja nicht.


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
"AlwaysOn"=dword:00000001
"NetworkThrottlingIndex"=dword:ffffffff
"SystemResponsiveness"=dword:00000000
"NoLazyMode"=dword:00000001

Der einzige Wert, über den man hier für den Fall der Netzwerkoptimierung, aus seriöser / meiner Sicht vielleicht anrühren sollte, ist NetworkThrottlingIndex.

Im Blog selbst wurde (mittlerweile?) erkannt, hey SystemResponsiveness auf 0 zu setzen, ist gleich wie ihn auf 10% zu setzen. (vom Standardwert 20% für den Freiraum für wichtige Prozesse...) - er sagt dann aber im gleichen Atemzug, setzt es aber auf 0, weil es ja sein kann, dass Microsoft es irgendwann ermöglichen wird. - Nein, Microsoft wird nicht seine eigenen lebenswichtige Prozesse komplett abwürgen... Es wird hier so getan, als ob das System nur mit 80% Leistung statt der 90 oder 100% läuft, was halt völlig inkorrekt ist.

Windows ist tatsächlich sehr gut darin geworden zu bemerken, wann Leistung gefordert wird und stellt diese auch zur Verfügung. (Vorausgesetzt z.B. es gibt nicht wieder Probleme mit diversen AMD Chipsätzen und dem Scheduler, Stichwort CPPC, welches dann irgendwann in diesem Jahr mit einem Chipsatztreiberupdate gefixt wurde. Oder die fehlerhafte TPM Implementation von AMD, welche zu Lags und co führten...

Wie gesagt, man zieht gerne über Microsoft her und ich will nicht abstreiten, dass es hier und da mal immer Phasen gab, in denen es Probleme gab mit der (Gaming)Performance. Aber dann alles an offiziellen Tweaks (die u.A. auch durchaus auf Microsoft Seiten zu finden sind) und Mythen, wie zum Beispiel in dem genannten Blog durcheinander zu würfeln und sich dann anmaßen, man wüsste es besser als die Kernel-Entwickler, weil man ein paar Registrywerte geändert hat und der Placebo Effekt einen in der nächsten Runde Counter-Strike zur Höchstleistung anstrebt, ich weiß ja nicht...

Es gibt so einige weitere Dinge, die immer noch für viele Gang und Gebe sind bei einer Neuinstallation von Windows sofort einzustellen aber wie gesagt, meine Meinung bleibt, dass man sich da auf Dauer eher mehr kaputt macht.
Beispiel? Deaktivierung von Vollbildoptimierungen bei Spielen. Windows 11 bietet mittlerweile in den Standardgrafik-Einstellungen "Optimierungen für Fensterspiele" an, in denen (Borderless)Windowed quasi als Fullscreen behandelt wird und es afaik keine messbaren Unterschiede mehr gibt. Schon vorher hat die Deaktivierung von Vollbildoptimierungen ja bei einigen angeblich mehr Leistung gebracht - allerdings dann auf Kosten der Eingabeverzögerung..
Iirc ist GSYNC oder war GSYNC mit diesen Einstellungen ebenfalls nicht lauffähig gewesen. Aber ich schweife weit, weit ab.

Ich meine, wenn jeder es besser weiß, wo ist die bessere Performance in .... Linux im "Alltag"? Warum ist es heute immer noch nicht so "snappy" selbst mit AMD GPUs und einer M2? Nur wegen den Treibern? Aber nein, das Fass möchte ich wirklich nicht aufmachen, das ist ein Wespennest, da muss jeder seine eigenen Erfahrungen machen und vielleicht waren meine Hardwarekonfigurationen bisher auch alle einfach nichts für Linux....

Dinge, die hier im Thread, glaube ich schon genannt wurden und über die man durchaus nachdenken kann: https://www.igorslab.de/interrupt-probleme-loesen-message-signaled-inter ...
Standardmäßig läuft bei mir die NIC im MSI Modus, für meine alte Nvidia 1070 musste nach jeder neuen Treiberinstallation der MSI Wert neu gesetzt werden, bei meiner neuen aus der 3000er Reihe passiert das automatisch.

Oh, versteh mich nicht falsch, ich weiß ich muss das Script nicht nutzen, vielleicht würde ich aber gerne. :D
Vielleicht nutze ich es sogar auch mal hier und da in abgewandelter Form um mal schnell und quasi mit einem Klick zu prüfen, ob ich vielleicht nicht doch irgendwo einen Unterschied spüre und gewisse Werte (RSC und Packet Coalescing z.B.) tun das hier und da vielleicht auch...
Nur in seiner aktuellen Fassung macht es mir persönlich etwas zu viel.

Ich wäre wirklich interessiert an der Transmit / Receive Buffer Geschichte, mein Gedanke war (und ich habe mich noch nicht damit genauer mit den Vorgaben beschäftigt) das es eine Anforderung an die neuere NDIS Version ist, welche W11 nutzt. In meiner Vorstellung sind also entweder die Werte in den neueren Treibern verschwunden, weil Windows es anders handhabt (dynamisch?) oder es sind im Hintergrund die gleichen Werte, die uns in den Standardeinstellungen schon seit Jahren begleiten. Und, viel wichtiger, werden die Werte überhaupt noch abgefragt oder passiert das mittlerweile auf einer ganz anderen Ebene? Was, wenn diese fixen, forcierten Werte irgendwo und irgendwann zu einem Problem werden, selbst wenn dieser Wert in der Vergangenheit keine Probleme bereitet hat? Nur als rein rhetorische Frage natürlich und in einem Umfeld wo einem vielleicht Zuverlässigkeit über einen 'möglichen' 1% Zuwachs an Performance steht.

Gruß
MysticFoxDE
MysticFoxDE 25.11.2023 aktualisiert um 10:51:45 Uhr
Goto Top
Moin @limesy:

Das Problem mit den VMs liegt evtl. daran weil HVCI und VBS unter 11 aktiv werden, wenn Secure Boot eingerichtet ist.

🤔 … interessanter Hinweis, danke.

Bzgl. NoLazyMode und co. Ich habe viel mit diesen sogenannten "Gaming-Tweaks" in der frühen Vergangenheit herumgespielt und das ist heute mit einer der Gründe, warum ich sage, die Windows Kernel Devs haben eine gewisse "Ahnung" was sie machen.

Das Hauptproblem bei Microsoft sehe ich weniger in einem einzelnen Feature, sondern eher darin,
dass die den immer grösser werdenden Featuer-Zoo eines aktuellen Windows, selbst überhaupt nicht mehr richtig im Griff haben. Beschäftige dich mal etwas tiefer mit Interrupt Moderation und RSC dann verstehst du was ich meine. Noch ein kleiner Tipp an dieser Stelle, die richtige Grösse des Empfangspuffers, ist für das richtige funktionieren beider Features, auch nicht unwichtig, zumindest dann, wenn man nach deren Aktivierung auch noch Durchsatz haben möchte. 😉
Ausserdem sollte höchstens entweder RSC oder IM aktiviert werden, aber nicht beides wie es per Default leider der Fall ist, weil sich beide Features meiner Ansicht nach, extrem gegenseitig beissen, da beide +- dasselbe tun, respektive ähnliche Ziele verfolgen.

Aber wenn im Blog dann RSS aktiviert wird und im gleichen Atemzug Offloading abgeschaltet wird... Ich weiß ja nicht.

Den Fehler kann ich durchaus nachvollziehen.
Es ist ja nicht so, dass es von Microsoft eine brauchbare Doku gibt, in der für normalsterbliche verständlich beschrieben steht, wie die ganzen Features der Hardware mit den Features des Betriebssystems in Verbindung stehen.
Und deshalb muss man viele Dinge erst durch „try and error“ herausfinden. 😔

Der einzige Wert, über den man hier für den Fall der Netzwerkoptimierung, aus seriöser / meiner Sicht vielleicht anrühren sollte, ist NetworkThrottlingIndex.

Eine positive Auswirkung auf die Systemperformance durch die Optimierung des „NetworkThrottlingIndex“ kann ich von meiner Seite auch bestätigen.

Im Blog selbst wurde (mittlerweile?) erkannt, hey SystemResponsiveness auf 0 zu setzen, ist gleich wie ihn auf 10% zu setzen. (vom Standardwert 20% für den Freiraum für wichtige Prozesse...) - er sagt dann aber im gleichen Atemzug, setzt es aber auf 0, weil es ja sein kann, dass Microsoft es irgendwann ermöglichen wird. - Nein, Microsoft wird nicht seine eigenen lebenswichtige Prozesse komplett abwürgen... Es wird hier so getan, als ob das System nur mit 80% Leistung statt der 90 oder 100% läuft, was halt völlig inkorrekt ist.

Zu dem Punkt kann ich nicht viel sagen, da ich momentan noch nicht ausreichend durchgetestet.

Wie gesagt, man zieht gerne über Microsoft her und ich will nicht abstreiten, dass es hier und da mal immer Phasen gab, in denen es Probleme gab mit der (Gaming)Performance. Aber dann alles an offiziellen Tweaks (die u.A. auch durchaus auf Microsoft Seiten zu finden sind) und Mythen, wie zum Beispiel in dem genannten Blog durcheinander zu würfeln und sich dann anmaßen, man wüsste es besser als die Kernel-Entwickler, weil man ein paar Registrywerte geändert hat und der Placebo Effekt einen in der nächsten Runde Counter-Strike zur Höchstleistung anstrebt, ich weiß ja nicht...

Limesy, die Gaming Performance eines Windows ist mir ehrlich gesagt vollkommen schnuppe, weil ich auf einem Windows Rechner, trotz einer RTX GPU, schon seit Jahren nicht mehr zocke.
Wenn ich Lust zum Zocken habe, dann schalte ich die Playstation ein, weil ich mich bei dieser meistens wirklich mit auf das zocken konzentrieren kann und nur sehr selten einem Hersteller wegen irgendwelchen Bugs hinterherrennen muss.

Meine Intensionen für das Skript, kommen zu 100% aus dem Enterprise Bereich, wo eine Nachoptimierung, insbesondere der aktuellen Serverbetriebssysteme von Microsoft, aber auch die der Clients, bei sehr vielen Applikationen eine Performancesteigerung von mehreren hundert, manchmal sogar mehreren tausend Prozent, im Vergleich zum Defaultzustand mit sich bring!

Oh, versteh mich nicht falsch, ich weiß ich muss das Script nicht nutzen, vielleicht würde ich aber gerne. :D

Alles gut. Das Skript ist ja auch weniger als „in Stein gemeisselt“ gedacht, sondern eher als eine Vorlage, die man nach dem eigenen Gusto/Bedarf anpassen/kürzen/erweitern kann.

Nur in seiner aktuellen Fassung macht es mir persönlich etwas zu viel.

Na ja, wie du an den letzten Posts siehst, muss ich es eher noch etwas aufblähen, damit es „flächendeckender“ noch besser funktioniert. Vor allem was >1G NIC’s angeht, den für diese ist es stand jetzt nicht wirklich gut ausgelegt.
Sprich, der RSS Part muss komplett überarbeitet werden und alleine das bedeutet Arbeit für mehrere Tage, da sehr komplex. 😩

Ich wäre wirklich interessiert an der Transmit / Receive Buffer Geschichte, mein Gedanke war (und ich habe mich noch nicht damit genauer mit den Vorgaben beschäftigt) das es eine Anforderung an die neuere NDIS Version ist, welche W11 nutzt. In meiner Vorstellung sind also entweder die Werte in den neueren Treibern verschwunden, weil Windows es anders handhabt (dynamisch?) oder es sind im Hintergrund die gleichen Werte, die uns in den Standardeinstellungen schon seit Jahren begleiten.

Wenn der Wert im Treiber (GUI) und oder in der Registry nicht (mehr) vorhanden ist, dann bedeutet das bei Windows leider nicht automatisch, dass dieses Feature nicht aktiv ist. In vielen Fällen gilt dann schlichtweg ein fixer Default Wert.
Ob das jetzt bei den „*TransmitBuffers“ und „*ReceiveBuffers“ auch so ist, weiß ich ehrlich gesagt stand jetzt aber nicht wirklich.

Laut MS selbst ist aber die korrekte Konfiguration beider Parameter, durchaus sehr performancerelevant.

https://learn.microsoft.com/en-us/windows-hardware/drivers/network/keywo ...
https://learn.microsoft.com/de-de/windows-server/administration/performa ...
https://learn.microsoft.com/de-de/biztalk/technical-guides/general-guide ...


Und, viel wichtiger, werden die Werte überhaupt noch abgefragt oder passiert das mittlerweile auf einer ganz anderen Ebene? Was, wenn diese fixen, forcierten Werte irgendwo und irgendwann zu einem Problem werden, selbst wenn dieser Wert in der Vergangenheit keine Probleme bereitet hat? Nur als rein rhetorische Frage natürlich und in einem Umfeld wo einem vielleicht Zuverlässigkeit über einen 'möglichen' 1% Zuwachs an Performance steht.

Ja, die Werte haben noch nach wie vor eine Gültigkeit und vor allem bei schnelleren NIC’s, macht sich eine Erhöhung der Empfangs- und Sendepuffer, zum Teil extrem positiv bemerkbar.

Gruss Alex
MysticFoxDE
MysticFoxDE 26.11.2023 um 13:53:31 Uhr
Goto Top
Moin @limesy,

Die Übertreibung mit Secure Boot war etwas aus der Luft gegriffen und mittlerweile, dank Windows 11 durchaus auch konfliktreich. Nein, mir ging es eher um sogenannte "Tweaker" die schon bekannt dafür waren, solche Aussagen 2013 zu treffen, allerdings ging es um gefühlte Unterschiede zwischen UEFI & CSM Boot.

Das Problem mit den VMs liegt evtl. daran weil HVCI und VBS unter 11 aktiv werden, wenn Secure Boot eingerichtet ist.

zu dem oberen Thema.

Ich habe gerade beim Upgrade eines Kundensystems, nebenher ein paar Tests gemacht.
Wenn ich bei einer (Hyper-V)VM nur "Sicherer Start" aktiviere, dann bleibt VBS zum Glück aus.
Die VM selbst, benötigt danach jedoch deutlich länger zum Booten.

Ich habe zudem vorhing mal testweise VBS auf meiner Workstation deaktiviert ...

CMD als Administrator
bcdedit /set hypervisorlaunchtype off

... und schon bringt meine CPU, je nach Lastszenario, zwischen 10% bis 20% mehr Leistung. 😁

Sprich, nochmals, herzlichen Dank für diesen Hinweis!

Gruss Alex
Bruckschi
Bruckschi 18.12.2023 um 20:11:55 Uhr
Goto Top
Hallo Alex,

will hier auch mal meinen Senf ("Erfahrungen") mit deinem Script preis geben.
Kurzum. Ich stelle fest, in 99,8% der Fälle funktioniert das einwandfrei. Performance von Windows 10/11 ist deutlich besser. Dafür vielen Dank.
Lediglich von einem Fall möchte ich euch in Kenntnis setzen, bei dem Ihr es besser bleiben lasst.
SIDEXIS RCU Röntgen-Einheit mit 2 NIC. Eine ins Kunden-LAN, eine zur Aufnahmeeinheit. Kunden-LAN alles iO. Datenübetragung zur Einheit mau.
Dort hatte ich nach Einsatz des Scriptes massive Probleme mit nicht übertragenen Röntgenbildern von der Einheit zur RCU. NIC getauscht. Ohne Erfolg.
Letzlich brachte nur das Rollback des Scriptes wieder konstante Aufnahmen zur RCU.
Leider lässt sich da SIRONA nicht in die Karten schauen, um das Problem zu analysieren.

Gruß Micha
MysticFoxDE
MysticFoxDE 19.12.2023 aktualisiert um 08:36:17 Uhr
Goto Top
Moin @Bruckschi,

will hier auch mal meinen Senf ("Erfahrungen") mit deinem Script preis geben.
Kurzum. Ich stelle fest, in 99,8% der Fälle funktioniert das einwandfrei. Performance von Windows 10/11 ist deutlich besser. Dafür vielen Dank.

schon mal herzlichen Dank für dein Feedback. 👍👍👍

Lediglich von einem Fall möchte ich euch in Kenntnis setzen, bei dem Ihr es besser bleiben lasst.
SIDEXIS RCU Röntgen-Einheit mit 2 NIC. Eine ins Kunden-LAN, eine zur Aufnahmeeinheit. Kunden-LAN alles iO. Datenübetragung zur Einheit mau.
Dort hatte ich nach Einsatz des Scriptes massive Probleme mit nicht übertragenen Röntgenbildern von der Einheit zur RCU. NIC getauscht. Ohne Erfolg.
Letzlich brachte nur das Rollback des Scriptes wieder konstante Aufnahmen zur RCU.

Ja, bei einigen Konstellationen läuft es leider noch nicht ganz rund. 😬

Leider lässt sich da SIRONA nicht in die Karten schauen, um das Problem zu analysieren.

Das würde ich so nicht sagen.
Wenn du das Optimierungsskript auf einem Rechner durchlaufen lässt, dann legt dieses Automatisch unter "C:\Backup" diverse Sicherungsdateien an und schreibt in der "WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log", mitunter auch ein umfangreiches Log.

Wenn du mir dieses zukommen lassen könntest, (Link zum Download per PN), dann könnte ich da mal reinschauen und danach sagen, was beim SIRONA wahrscheinlich schief gelaufen ist. 😉

Du kannst auch alternativ das folgende Skript durchjagen ...

<#
.SYNOPSIS
    This Script backup all important settings.

 .NOTES
    Version:        1.00
    Author:         MysticFoxDE (Alexander Fuchs)
    Creation Date:  10.12.2023
#>

# PROMPT THE USER TO ELEVATE THE SCRIPT
if (-not (New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
  {
  $arguments = "-NoExit -ExecutionPolicy Bypass -File `"$($myInvocation.MyCommand.Definition)`""  
  Start-Process powershell -Verb runAs -ArgumentList $arguments
  exit
  }


# CREATE A BACKUP OF THE EXISTING SETTINGS
$BAKLOGPATH = "C:\BACKUP"  
$BAKLOGDATE = Get-Date
$TIMESTAMP = Get-Date -Format o | ForEach-Object { $_ -replace ":", "." }  
$BAKLOGFILENAME = "CURRENT_CONFIGURATION_" + $TIMESTAMP + ".log"  

if (!(Test-Path $BAKLOGPATH))
  {New-Item -Path $BAKLOGPATH -ItemType Directory}

Start-Transcript -Path "$BAKLOGPATH\$BAKLOGFILENAME" -Append  

Write-Host (" ") -ForegroundColor White  
Write-Host ("************************************************************************************************************") -ForegroundColor White  
Write-Host ("*** Beginning of the configuration-backup from " + $BAKLOGDATE) -ForegroundColor White  
Write-Host ("************************************************************************************************************") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-ComputerInfo:") -ForegroundColor White  
Get-ComputerInfo

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface tcp show global:") -ForegroundColor White  
netsh interface tcp show global

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface tcp show heuristics:") -ForegroundColor White  
netsh interface tcp show heuristics

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface tcp show rscstats:") -ForegroundColor White  
netsh interface tcp show rscstats

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface tcp show security:") -ForegroundColor White  
netsh interface tcp show security

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface tcp show supplemental:") -ForegroundColor White  
netsh interface tcp show supplemental

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show addresses:") -ForegroundColor White  
netsh interface ip show addresses

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show config:") -ForegroundColor White  
netsh interface ip show config

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show dnsservers:") -ForegroundColor White  
netsh interface ip show dnsservers

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show dynamicportrange tcp:") -ForegroundColor White  
netsh interface ip show dynamicportrange tcp

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show dynamicportrange udp:") -ForegroundColor White  
netsh interface ip show dynamicportrange udp

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show excludedportrange tcp:") -ForegroundColor White  
netsh interface ip show excludedportrange tcp

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show excludedportrange udp:") -ForegroundColor White  
netsh interface ip show excludedportrange udp

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show global:") -ForegroundColor White  
netsh interface ip show global

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show icmpstats:") -ForegroundColor White  
netsh interface ip show icmpstats

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show interfaces:") -ForegroundColor White  
netsh interface ip show interfaces

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show ipaddresses:") -ForegroundColor White  
netsh interface ip show ipaddresses

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show ipnettomedia:") -ForegroundColor White  
netsh interface ip show ipnettomedia

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show ipstats:") -ForegroundColor White  
netsh interface ip show ipstats

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show joins:") -ForegroundColor White  
netsh interface ip show joins

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show neighbors:") -ForegroundColor White  
netsh interface ip show neighbors

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show offload:") -ForegroundColor White  
netsh interface ip show offload

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("netsh interface ip show subinterfaces:") -ForegroundColor White  
netsh interface ip show subinterfaces

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  
Write-Host ("Get-NetOffloadGlobalSetting:") -ForegroundColor White  
Get-NetOffloadGlobalSetting

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterAdvancedProperty:") -ForegroundColor White  
Get-NetAdapterAdvancedProperty -IncludeHidden -AllProperties | FT -AutoSize

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterRsc:") -ForegroundColor White  
Get-NetAdapterRsc | FT -AutoSize

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterRss:") -ForegroundColor White  
Get-NetAdapterRss | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterVmq:") -ForegroundColor White  
Get-NetAdapterVmq | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterVmqQueue:") -ForegroundColor White  
Get-NetAdapterVmqQueue -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterChecksumOffload:") -ForegroundColor White  
Get-NetAdapterChecksumOffload -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterEncapsulatedPacketTaskOffload:") -ForegroundColor White  
Get-NetAdapterEncapsulatedPacketTaskOffload -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterHardwareInfo:") -ForegroundColor White  
Get-NetAdapterHardwareInfo -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterIPsecOffload:") -ForegroundColor White  
Get-NetAdapterIPsecOffload -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterLso:") -ForegroundColor White  
Get-NetAdapterLso -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterPacketDirect:") -ForegroundColor White  
Get-NetAdapterPacketDirect -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterPowerManagement:") -ForegroundColor White  
Get-NetAdapterPowerManagement -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterQos:") -ForegroundColor White  
Get-NetAdapterQos -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterRdma:") -ForegroundColor White  
Get-NetAdapterRdma -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterSriov:") -ForegroundColor White  
Get-NetAdapterSriov -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterSriovVf:") -ForegroundColor White  
Get-NetAdapterSriovVf -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-NetAdapterVPort:") -ForegroundColor White  
Get-NetAdapterVPort -IncludeHidden | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Status ACK-Frequency: (Registry)") -ForegroundColor White  
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID, Name
foreach ($adapter in $NICs)
  {
  $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
  $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
  $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream  
  $TARGETVALUE = 1
  $CHECKVALUE = Get-ItemProperty -Path "$REGKEYPATH" -Name "TcpAckFrequency" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty "TcpAckFrequency"  
  if (($CHECKVALUE -ne $null) -and ($CHECKVALUE.Length -gt 0))
    {
    Write-Host ("The TcpAckFrequency Key for NIC " + $NICNAME + " is present in the registry with value " + $CHECKVALUE + ".") -ForegroundColor White  
    }
  else
    {
    Write-Host ("The TcpAckFrequency Key for NIC " + $NICNAME + " is NOT present in the registry.") -ForegroundColor White  
    }
  }

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Status TCP-Delay: (Registry)") -ForegroundColor White  
$NICs = Get-NetAdapter -Physical | Select-Object DeviceID, Name
foreach ($adapter in $NICs)
  {
  $NICGUID = $adapter | Select-Object DeviceID | Select DeviceID -ExpandProperty DeviceID | Out-String -Stream
  $NICNAME = $adapter | Select-Object Name | Select Name -ExpandProperty Name | Out-String -Stream
  $REGKEYPATH = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$NICGUID\" | Out-String -Stream  
  $TARGETVALUE = 1
  $CHECKVALUE = Get-ItemProperty -Path "$REGKEYPATH" -Name "TcpNoDelay" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty "TcpNoDelay"  
  if (($CHECKVALUE -ne $null) -and ($CHECKVALUE.Length -gt 0))
    {
    Write-Host ("The TcpNoDelay Key for NIC " + $NICNAME + " is present in the registry with value " + $CHECKVALUE + ".") -ForegroundColor White  
    }
  else
    {
    Write-Host ("The TcpNoDelay Key for NIC " + $NICNAME + " is NOT present in the registry.") -ForegroundColor White  
    }
  }

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-VMSwitch:") -ForegroundColor White  
Get-VMSwitch | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-VM | Get-VMNetworkAdapter | FL:") -ForegroundColor White  
Get-VM | Get-VMNetworkAdapter | FL

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-VM | Get-VMCheckpoint:") -ForegroundColor White  
Get-VM | Get-VMCheckpoint

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Get-VM | Get-SilWindowsUpdate:") -ForegroundColor White  
Get-SilWindowsUpdate


Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Create Backup from HKLM\SYSTEM\CurrentControlSet\Services\Winsock to " + $BAKLOGPATH + "\WinSock-RegBackup-" + $TIMESTAMP + ".reg") -ForegroundColor White  
reg export HKLM\SYSTEM\CurrentControlSet\Services\Winsock $BAKLOGPATH\WinSock-RegBackup-$TIMESTAMP.reg

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Create Backup from HKLM\SYSTEM\CurrentControlSet\Services\WinSock2 to " + $BAKLOGPATH + "\Winsock2-RegBackup-" + $TIMESTAMP + ".reg") -ForegroundColor White  
reg export HKLM\SYSTEM\CurrentControlSet\Services\WinSock2 $BAKLOGPATH\WinSock2-RegBackup-$TIMESTAMP.reg


Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Create Backup from HKLM\SYSTEM\CurrentControlSet\Control\Nsi to " + $BAKLOGPATH + "\NSI-RegBackup-" + $TIMESTAMP + ".reg") -ForegroundColor White  
reg export HKLM\SYSTEM\CurrentControlSet\Control\Nsi $BAKLOGPATH\NSI-RegBackup-$TIMESTAMP.reg

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Create Backup from HKLM\SYSTEM\CurrentControlSet\Services\Tcpip to " + $BAKLOGPATH + "\TCPIP-RegBackup-" + $TIMESTAMP + ".reg") -ForegroundColor White  
reg export HKLM\SYSTEM\CurrentControlSet\Services\Tcpip $BAKLOGPATH\TCPIP-RegBackup-$TIMESTAMP.reg

Write-Host (" ") -ForegroundColor White  
Write-Host ("------------------------------------------------------------------------------------------------------------") -ForegroundColor White  
Write-Host (" ") -ForegroundColor White  

Write-Host ("Create Backup from HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318} to " + $BAKLOGPATH + "\NICSETTINGS-RegBackup-" + $TIMESTAMP + ".reg") -ForegroundColor White  
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}" $BAKLOGPATH\NICSETTINGS-RegBackup-$TIMESTAMP.reg  

Write-Host (" ") -ForegroundColor White  
Write-Host ("************************************************************************************************************") -ForegroundColor White  
Write-Host ("*** End of the configuration-backup from " + $BAKLOGDATE) -ForegroundColor White  
Write-Host ("************************************************************************************************************") -ForegroundColor White  
Stop-Transcript
!!! Bitte jedoch nicht das Log hier direkt reinposten, da es zum Teil auch sensible Informationen enthält. !!!

... das sammelt viele notwendigen Informationen zusammen, ohne eine einzige Änderung am System vorzunehmen. 😉

Und erschrecke dich bitte nicht über eventuelle Fehlermeldungen, die kommen deshalb zustande, weil z.B. Hyper-V nicht installiert ist, das Skript aber dennoch die vSwitch Konfig auslesen möchte.

Ich putz das die Tage noch raus und dann kommt das Ding auch zu GitHub.

Gruss Alex

Gruss Alex
S.Krat
S.Krat 28.12.2023 aktualisiert um 06:16:15 Uhr
Goto Top
Guten Morgen,

ich verfolge diesen Thread (sowie korrespondierende von @MysticFoxDE bei Spiceworks, wo es teils eher um Windows Server geht) bereits seit einiger Zeit und mit sehr positiven Auswirkungen auf unsere Systeme.

Sowohl bei unseren Win10 Clients als auch bei einem relativ komplexen Serverkonstrukt mit Windows Server 2019/2022, welches Kommunikationsbeziehungen über 10G LAN im RZ, aber auch mit breitbandig oder per 4G angebundenen Standorten beinhaltet, konnten teils gravierende Verbesserungen durch Nutzung und Anpassungen der TCP Profile erzielt werden (u.a. auch Autotuninglevel).

Seit im Oktober oder November im RZ vom Dienstleister, welcher für die Platform zuständig ist, ausgerollten Windows (Server)Updates scheint sich Windows Server 2019/2022 nun aber auf einmal eher wie Windows10/11 zu verhalten:

Die Server nutzen zwar noch je nach Verbindung die Profile Datacenter oder Internet aber unterschiedliche Autotuninglevel Einstellungen für unterschiedliche TCP Profile werden (zumindest mit den bislang funktionierenden PS Befehlen) nicht mehr angenommen (keine Fehlermeldung, aber hinterher auch keine Änderung sichtbar bei get-nettcpsetting) und waren bei allen TCP Profilen auf einmal zurückgesetzt auf "normal". Nur noch eine globale Einstellung für Autotuninglevel (und evtl. weitere Parameter?) scheint nun möglich zu sein?
Unserer Anwendung tat aber beim Internet TCP Profil z.B. "HighlyRestricted" sehr gut, während im RZ 10G LAN vorhanden ist und mit größerem TCP Window zurecht kommt.

Wie kriegt man das wieder hin? Was hat MS geändert?

Ist dazu hier etwas bekannt? Bei Recherchen könnte ich bislang nichts dazu finden.

Auffällig war noch eine Info-Meldung nach dem Update in der Taskleiste, die irgendetwas mit Azure mitteilte. Azure wird aber nicht verwendet.

Vielen Dank!

Viele Grüße S.Krat
MysticFoxDE
MysticFoxDE 28.12.2023 um 08:37:31 Uhr
Goto Top
Moin @S.Krat,

vielen Dank für dein sehr ausführliches Feedback. 👍👍👍

Seit im Oktober oder November im RZ vom Dienstleister, welcher für die Platform zuständig ist, ausgerollten Windows (Server)Updates scheint sich Windows Server 2019/2022 nun aber auf einmal eher wie Windows10/11 zu verhalten:

Die Server nutzen zwar noch je nach Verbindung die Profile Datacenter oder Internet aber unterschiedliche Autotuninglevel Einstellungen für unterschiedliche TCP Profile werden (zumindest mit den bislang funktionierenden PS Befehlen) nicht mehr angenommen (keine Fehlermeldung, aber hinterher auch keine Änderung sichtbar bei get-nettcpsetting) und waren bei allen TCP Profilen auf einmal zurückgesetzt auf "normal". Nur noch eine globale Einstellung für Autotuninglevel (und evtl. weitere Parameter?) scheint nun möglich zu sein?
Unserer Anwendung tat aber beim Internet TCP Profil z.B. "HighlyRestricted" sehr gut, während im RZ 10G LAN vorhanden ist und mit größerem TCP Window zurecht kommt.

Wie kriegt man das wieder hin? Was hat MS geändert?

Ist dazu hier etwas bekannt? Bei Recherchen könnte ich bislang nichts dazu finden.

😲 ... das werde ich mir gleich etwas genauer anschauen, das ist mir bisher noch gar nicht aufgefallen.
Und danke schon mal für die Info!

Auffällig war noch eine Info-Meldung nach dem Update in der Taskleiste, die irgendetwas mit Azure mitteilte. Azure wird aber nicht verwendet.

Ich glaube du sprichst von dem "AzureArcSetup".

Dieser Murks lässt sich damit ...
# Disable AzureArcSetup 
Disable-WindowsOptionalFeature -Online -FeatureName AzureArcSetup
... ganz einfach wieder beseitigen. 😉

Gruss Alex
MysticFoxDE
MysticFoxDE 28.12.2023 aktualisiert um 09:06:52 Uhr
Goto Top
Moin @S.Krat,

Seit im Oktober oder November im RZ vom Dienstleister, welcher für die Platform zuständig ist, ausgerollten Windows (Server)Updates scheint sich Windows Server 2019/2022 nun aber auf einmal eher wie Windows10/11 zu verhalten:

Die Server nutzen zwar noch je nach Verbindung die Profile Datacenter oder Internet aber unterschiedliche Autotuninglevel Einstellungen für unterschiedliche TCP Profile werden (zumindest mit den bislang funktionierenden PS Befehlen) nicht mehr angenommen (keine Fehlermeldung, aber hinterher auch keine Änderung sichtbar bei get-nettcpsetting) und waren bei allen TCP Profilen auf einmal zurückgesetzt auf "normal". Nur noch eine globale Einstellung für Autotuninglevel (und evtl. weitere Parameter?) scheint nun möglich zu sein?
Unserer Anwendung tat aber beim Internet TCP Profil z.B. "HighlyRestricted" sehr gut, während im RZ 10G LAN vorhanden ist und mit größerem TCP Window zurecht kommt.

Wie kriegt man das wieder hin? Was hat MS geändert?

Ist dazu hier etwas bekannt? Bei Recherchen könnte ich bislang nichts dazu finden.

so, ich habe gerade auf einem komplett aktualisiertem aber noch nicht optimierten Server 2022,
beim Datacenter Profil folgende Änderung vorgenommen ...

Set-NetTCPSetting -SettingName Datacenter -CongestionProvider DCTCP -EcnCapability Enabled -AutoTuningLevelLocal Disabled

... habe danach den Sever durchgebootet und anschliessend die Einstellungen geprüft.
tcp datacenter
Und siehe da, die Einstellungen sind zum Glück geblieben.

Kann es sein, dass du das "AutoTuningLevel" oder andere TCP Parameter bereits schon global angepasst hast?
Wenn ja, dann ist wahrscheinlich das auch schon das Problem, den sobald etwas global angepasst wurde,
greifen die entsprechenden Einstellungen in den TCP Profilen nicht mehr wirklich.

Mit ...

netsh interface tcp reset

... kannst du die globalen TCP Einstellungen wieder auf Default setzen.

Danach sollten die TCP Profile wieder normal anpassbar sein.

Gruss Alex
S.Krat
S.Krat 29.12.2023 um 00:23:15 Uhr
Goto Top
Hallo, vielen Dank für das schnelle Gegenchecken und die Erläuterungen!

Werde ich gleich morgen nochmal prüfen und dann berichten.
S.Krat
S.Krat 02.01.2024 um 16:46:30 Uhr
Goto Top
Hallo und zunächst noch ein gutes Neues!

Sorry, ich hatte es leider nicht mehr geschafft hier zu schreiben.

Ein Test bei mir mit TCP Reset und neuem Verbiegen der TCP Profile hat Merkwürdiges zutage gefördert:
Manche Parameter wie CongestionProvider sind in der Tat noch individuell anpassbar, aber AutotuningLevelLocal wirkt seit den Updates anscheinend immer global auf alle Profile.
Und zwar egal, ob ich mit netsh global was verbiege oder per set-nettcpsetting nur für ein (!) bestimmtes Profil - am Ende steht immer bei allen (!) Profilen die Änderung drinnen.

Gestestet an mehreren Maschinen mit WS2019 und WS2022. WS2016 bislang noch nicht.

Oder mit anderen Worten: Unterstützt WS nun nur noch ein globales TCP Receive Window?
Ich glaube eher nicht, dass das "unsere" Domain Admins verbrochen haben.
MysticFoxDE
MysticFoxDE 02.01.2024 aktualisiert um 19:21:03 Uhr
Goto Top
Moin @S.Krat,

Hallo und zunächst noch ein gutes Neues!

dir auch ein gutes Neues.

Manche Parameter wie CongestionProvider sind in der Tat noch individuell anpassbar, aber AutotuningLevelLocal wirkt seit den Updates anscheinend immer global auf alle Profile.
Und zwar egal, ob ich mit netsh global was verbiege oder per set-nettcpsetting nur für ein (!) bestimmtes Profil - am Ende steht immer bei allen (!) Profilen die Änderung drinnen.

Gestestet an mehreren Maschinen mit WS2019 und WS2022. WS2016 bislang noch nicht.

ich muss dieses sehr verwirrende Verhalten leider auch bestätigen. 😭
Habe soeben auf einem Server 2022 nur beim Datacenter Profil das AutotuningLevelLocal auf "Disabled" gestellt ...

Set-NetTCPSetting -SettingName "Datacenter" -AutoTuningLevelLocal Disabled  

... und schon war das AutoTuningLevel global und nicht nur beim Datacenter Profil deaktiviert ...

tcp autotuninglevel global disabled

... dann habe ich mit dem folgenden Befehl ...

Set-NetTCPSetting -SettingName "Internet" -AutoTuningLevelLocal Normal  

das AutoTuningLevel des Internet Profils auf "normal" setzen wollen ...

tcp autotuninglevel global normal

... und schwups galt diese Änderung global, sprich bei allen Profile und nicht nur für das Internet Profil. 😵‍💫

Habe das Ganze gerade auch mir einem Server 2012R2 getestet, selbes Verhalten. 😭

Ich denke, dass es schon immer so gewesen und bisher nur niemandem aufgefallen ist. 🙃

In der folgenden Doku ...
https://learn.microsoft.com/en-us/powershell/module/nettcpip/set-nettcps ...
... steht aber nichts davon, dass es auch so sein sollte.

Gruss Alex
S.Krat
S.Krat 02.01.2024 um 19:44:39 Uhr
Goto Top
Hm, bis vor November hatte ich definitiv an mehreren Windows Server 2019 Maschinen für die Profile Internet und Datacenter unterschiedliche Autotuninglevel Einstellungen im Einsatz, um per LTE/VPN angebundene externe Standorte optimal bzw. "reaktionsfreudig" für den Zugriff über einen zentralen Server, der darauf zugreift, zu tunen, der aber auch auf Storage im RZ zugreift, wo andere Bedingungen gelten.

Nach Windows Updates, die meiner Erinnerung nach Anfang November eingespielt wurden, ging das auf einmal nicht mehr.
MysticFoxDE
MysticFoxDE 02.01.2024 um 20:11:35 Uhr
Goto Top
Moin @S.Krat,

Hm, bis vor November hatte ich definitiv an mehreren Windows Server 2019 Maschinen für die Profile Internet und Datacenter unterschiedliche Autotuninglevel Einstellungen im Einsatz, um per LTE/VPN angebundene externe Standorte optimal bzw. "reaktionsfreudig" für den Zugriff über einen zentralen Server, der darauf zugreift, zu tunen, der aber auch auf Storage im RZ zugreift, wo andere Bedingungen gelten.

Nach Windows Updates, die meiner Erinnerung nach Anfang November eingespielt wurden, ging das auf einmal nicht mehr.

der 2012R2 auf dem ich gerade nachgesehen habe, hat bestimmt das ganze 2023 keine Updates mehr gesehen, da dieser nur noch temporär hochgefahren wird und er verhält sich genau so, wie auch ein komplett aktueller 2022.
Daher glaube ich nicht, dass das Verhalten neu ist.

Weist du noch, bei welchem Profil du das Autotuninglevel als letztes auf den entsprechenden angepasst hast, respektive auf welchen Wert das Profil gesetzt wurde?

Den das ist höchstwahrscheinlich die Option, die global gesetzt wurde und mit der du anscheinend viel besser gefahren bist. 😉

Gruss Alex
S.Krat
S.Krat 02.01.2024 aktualisiert um 22:12:33 Uhr
Goto Top
Ich hatte so einiges ausprobiert und zuletzt mehrere Monate lang "Internet" auf "HighlyRestricted" und "Datacenter" nach "Normal" auch zeitweise testweise auf "Restricted".
Basis war ein MysticFoxDE Server-Skript aus einem Spiceworks WS2019 Thread.
Daher würde ich mit ziemlicher Sicherheit sagen, dass dass zu dem Zeitpunkt definitiv gleichzeitig so ging, dass da unterschiedliche Werte bei den Profilen standen, wenn man Get-nettcpsetting gemacht hat.

Daher war mir auch ziemlich schnell aufgefallen, dass nach dem einen Update auf einmal alles zurück auf "Normal" gedreht war und danach nicht mehr gleichermaßen zu verbiegen war wie davor.

Merkwürdige Sache.

Edit:
Was noch möglich wäre ist, dass die Server bei uns vor dem November längere Zeit keine Windows Updates hatten oder bestimmte erst dann freigegeben wurden.
Bruckschi
Bruckschi 04.01.2024 um 15:37:04 Uhr
Goto Top
Hallo Alex,
erstmal alles Gute fürs neue Jahr. Bin erst jetzt wieder im Dienst.

Ich werde das Script nächste Woche mal durchlaufen lassen und dir dann die Ergebnisse zukommen lassen.
Vielen Dank

Wenn du das Optimierungsskript auf einem Rechner durchlaufen lässt, dann legt dieses Automatisch unter "C:\Backup" diverse Sicherungsdateien an und schreibt in der "WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log", mitunter auch ein umfangreiches Log.

Wenn du mir dieses zukommen lassen könntest, (Link zum Download per PN), dann könnte ich da mal reinschauen und danach sagen, was beim SIRONA wahrscheinlich schief gelaufen ist. 😉

Du kannst auch alternativ das folgende Skript durchjagen ...


!!! Bitte jedoch nicht das Log hier direkt reinposten, da es zum Teil auch sensible Informationen enthält. !!!

... das sammelt viele notwendigen Informationen zusammen, ohne eine einzige Änderung am System vorzunehmen. 😉

Und erschrecke dich bitte nicht über eventuelle Fehlermeldungen, die kommen deshalb zustande, weil z.B. Hyper-V nicht installiert ist, das Skript aber dennoch die vSwitch Konfig auslesen möchte.

Ich putz das die Tage noch raus und dann kommt das Ding auch zu GitHub.

Gruss Alex

Gruss Alex

VG Micha
Micele1709
Micele1709 15.08.2024 um 16:06:50 Uhr
Goto Top
Hallo Alex,

ich habe Dein Script auf einer Win11 Hyper-V VM durchlaufen lassen und es hat auch hier schon einiges an Performance gebracht. Du hattest weiter oben in Deinem Post geschrieben dass man bei einer VM andere Einstellungen durchführen muss und dazu am Hyper-V. Hast Du mir vielleicht ein paar Links dazu.
Ich habe einen Server 2019 laufen und die Performance der Win11 VM vor allem bei Anwendungen ist wirklich schlecht.

VG
Michi
MysticFoxDE
MysticFoxDE 15.08.2024 um 16:51:25 Uhr
Goto Top
Moin @Micele1709,

Du hattest weiter oben in Deinem Post geschrieben dass man bei einer VM andere Einstellungen durchführen muss und dazu am Hyper-V. Hast Du mir vielleicht ein paar Links dazu.

leider kann ich dir für den Hyper-V keine Links zur Verfügung stellen, die auch nur ansatzweise das beschreiben, was man heutzutage alles optimieren muss um beim Hyper-V aber auch VMware die volle Leistung zu bekommen.
Das ist auch nicht ganz einfach, da die entsprechenden Optimierungen extrem von der jeweiligen Umgebung abhängig sind. 😔😭

Denn je nach eingesetzter CPU, NIC oder deren Uplinkgeschwindigkeit können die entsprechenden Optimierungen durchaus sehr unterschiedlich ausfallen.

Das ganze fängt schon dabei an, dass man zuerst das BIOS des entsprechenden Servers/Workstation als erste korrekt einstellen muss. Wenn das nicht der Fall ist, dann siehst du von deinen NIC's und auch anderen per PCIe oder auch per USB angeschlossenen Komponenten eh niemals die volle Leistung.

Siehe z.B. eine meiner jüngsten Erfahrungen.
NVIDIA L40S - Die erste Erfahrung ist etwas bescheiden

Ich habe einen Server 2019 laufen und die Performance der Win11 VM vor allem bei Anwendungen ist wirklich schlecht.

Beim 2022er ist es nicht viel besser und beim 2025 wird es fürchte ich nochmals etwas schlimmer. 😔

Ich kann aber gerne mal ein Auge z.B. per TeamViewer auf dass entsprechende System werfen und danach kann ich dir auch bestimmt ein paar Tipps geben, wie du diese beschleunigen kannst.

Es gibt dafür jedoch eine Bedingung!
Du solltest das entsprechende Wissen nicht nur für dich behalten, sondern deine Erfahrung/Erkenntnisse auch bitte mit anderen öffentlich teilen. 😉

Du kannst im Vorfeld auf dem Hyper-V mal das folgende Skript durchlaufen lassen ...
Wie man das Windows 10 und 11 TCP-Handling wieder desuboptimieren kann
... und mir dessen Log zuschicken, dann habe ich schon mal viele der Infos die ich benötige.

Kontaktdaten kommen gleich per PN.

Gruss Alex