Optimierung von Microsofts TCP-Murks in Windows 10 und 11

Windows[English]Heute mal ein kleiner Beitrag in Sachen "wie man eine Funktion vermurksen kann". Microsoft hat sich in der TCP-Implementierung von Windows 10 und Windows 11 einige Klopper geleistet, die die mögliche Leistung von TCP/IP-Verbindungen arg einschränken. Ein Blog-Leser hat mich darauf aufmerksam gemacht und gleich Wege aufgezeigt, wie sich so etwas eventuell optimieren kann. Ich bereite es mal in einem Blog-Beitrag für interessierte Nutzer auf.


Anzeige

Hintergrund TCP

Das Kürzel TCP steht für Transmission Control Protocol, ein Netzwerkprotokoll, das definiert, auf welche Art und Weise Daten zwischen Netzwerkkomponenten ausgetauscht werden sollen. Nahezu sämtliche aktuelle Betriebssysteme moderner Computer beherrschen TCP und nutzen es für den Datenaustausch mit anderen Rechnern.

Das Protokoll ist ein zuverlässiges, verbindungsorientiertes, paketvermitteltes Transportprotokoll in Computernetzwerken. Es ist Teil der Internetprotokollfamilie, der Grundlage des Internets. Bei der Implementierung können die Entwickler aber zahlreiche Parameter zur Flusssteuerung der TCP-Übertragungen festlegen.

Eine Diskussion zu RDP bei Windows Server 2022

Blog-Leser Alexander Fuchs (tritt online unter dem Alias MysticFox  auf) hat mich vor einigen Tagen per Mail auf das Thema aufmerksam gemacht und mich auf die betreffenden Quellen, wo er die Informationen zusammen getragen hat, aufmerksam gemacht – danke dafür.

Auf administrator.de gibt es Anfang Januar 2023 einen Thread Remote Desktop Services unter 2022 – Erfahrungen? in dem sich ein Administrator bezüglich der Performance von RDP-Verbindungen unter Windows Server 2022 auslässt. Die soll laut seinen Recherchen grottig sein.

Der Blog-Leser litt unter Rucklern und Performace-Probleme bei Remote Desktop-Verbindungen unter Windows Server 2022 und hat sich dann sowohl die Dokumentation von Microsoft als auch die Einstellungen unter Windows angesehen. Im Verlauf der Diskussion geht MysticFox in diesem Kommentar auf die Frage ein, warum die Leistung der RDP-Verbindung so schlecht ist.

Im Laufe der Diskussion kommt dann auch das Thema auf, dass RDP auf Windows 10/11 Clients, auch bei performanter Hardware, sehr viel zäher als unter Windows Server 2012 R2 laufe. MysticFox  weist dann in diesem Kommentar darauf hin, dass die TCP-Netzwerkverbindungen in den Windows 10/11 Clients durch Microsofts Implementierung künstlich verlangsamt werden.

Der TCP-Implementierungsmurks

Alex hat das Ganze dann genauer untersucht und ist auf einen ziemlichen Implementierungsmurks beim Transmission Control Protocol unter Windows 10 und Windows 11 gestoßen.

TCP-Profil
TCP-Profil Internet


Anzeige

  • In Windows 10/11 werden alle ausgehenden TCP-Verbindungen über das Internet TCP-Profil gehandhabt (siehe obige Abbildung, die sich mit dem PowerShell-Befehl Get-NetTCPConnection ausgeben lässt). Durch die Verwendung des Profils Internet werden TCP-Verbindungen ins Netzwerk (u.a. über die Latzenz der ACK-Pakete) künstlich verlangsamt. Dan Cuomo von Microsoft hat das in diesem Artikel bestätigt.
  • Die Einstellungen der TCP-Profile Internet und Datacenter der aktuellen Windows Versionen, wurden zu Zeiten vom Server 2012, abgestimmt auf die damaligen Internetanschlusseigenschaften, definiert.

Mit anderen Worten: Im Jahr 2023 benutzt Microsoft in den Clients Windows 10 und Windows 11 zwei gewaltige Handbremsen, indem alle TCP-Verbindungen über das Profil "Internet" geleitet werden, und indem die "Optimierungsparameter" für dieses Profil noch auf Eigenschaften von Internetanschlüssen, die vor weit über 10 Jahren üblich waren, abgestimmt sind.

Alex schreibt in seiner Zusammenfassung Wie man das Windows 10 und 11 TCP-Handling wieder desuboptimieren kann: 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. Ein normaler Nutzer kann an diesen Vorgaben auch nichts umstellen …

Ansatz zur TCP-Optimierung

Alexander  F. ist nun hingegangen und hat ein Powershell-Script entwickelt, welches die obigen Handbremsen in Windows 10 und Windows 11 löst und die TCP-Parameter so optimiert, dass die Latenzen verringert und die Leistung verbessert wird. Zum Wochenende (Stand vom 27. Januar 2023) hat er die aktuelle Fassung veröffentlicht. Die aktuelle Fassung des PowerShell-Scripts W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1 stellt Alex F. auf GitHub bereit. Dazu schreibt Alexander:

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.

Alexander hat auf administrator.de in diesem Thread einige Performance-Messungen veröffentlicht und auch von anderen Administratoren gibt es Feedback. Vielleicht für den einen oder anderen Administrator oder Power-Nutzer von Interesse. An dieser Stelle natürlich der Hinweis, dass jeder für den Einsatz des PowerShell-Scripts selbst verantwortlich ist. Es empfiehlt sich, vor der Anwendung ein Backup zu machen, um ggf. auf den vorherigen Zustand zurückgehen zu können.

Ergänzung: Das Thema findet sich nun auch bei Golem, siehe Die versteckte Netzwerkbremse in Windows 10 und 11

Artikelreihe:
Optimierung von Microsofts TCP-Murks in Windows 10 und 11
Windows 10/11: Grottige Netzwerktransfer-Leistung, hohe Windows 11 CPU-Last  – Teil 1
Windows 11: Netzwerktransfer-Leistung und CPU-Last  optimieren – Teil 2


Cookies blockieren entzieht uns die Finanzierung: Cookie-Einstellungen

Dieser Beitrag wurde unter Netzwerk, Problemlösung, Windows, Windows 10 abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

149 Antworten zu Optimierung von Microsofts TCP-Murks in Windows 10 und 11

  1. squat sagt:

    Ahja…
    Ein Toller Script den ich nie ausführen werde, weil da einfach alles fehlt.
    – warum?
    – Benchmarks ?
    – Tests
    – welche HW getestet wurden
    – wie man es wieder resetten

    gerade TCP gehört zu den am meisten missverstanden Protokollen.
    Jemand der Interrupt Moderation ausschaltet.. dem kann man nicht mehr helfen.

    • Günter Born sagt:

      Ich frage mich ad hoc an dieser Stelle, was der Kommentar soll? Nicht falsch verstehen. Es wird auf ein Thema hingewiesen und erläutert, was Sache ist. Es gibt den Hinweis, dass man sich des Eingriffs bewusst sein sollte und auf eigenes Risiko agiert.

      Wer sagt: Brauche ich nicht, wird ja nicht gezwungen, das Script auszuführen. Wie bringt der Kommentar dann einen Leser weiter?

      PS: Ich möchte hier die Diskussion einfangen, dass über Sinn und Unsinn des Scripts diskutiert wird und das Thema am grünen Tisch entgleitet. Details können gerne diskutiert werden.

      PPS: Die Frage nach dem "Rückgängig machen" ist in einem anderen Kommentar beantwortet – zudem gehe ich davon aus, dass jeder erfahrende Administrator bei so etwas ein Backup seiner (Test-)Maschine hat. Wir reden hier nicht von Onkel Otto, der seinen privaten Rechner mal per Klick tunen will.

      • Norbert sagt:

        Nicht aufregen Günter, Trolls gibt es inzwischen überall!

        Und ja, der Beitrag ich bei der Sache nicht hilfreich, er soll der Gesundheit des Verfassers des Blogs beitragen, wir wollen schließlich alle noch lange von ihm haben.

        Ich werde mir das Script gleich mal anschauen, danke für den Tipp.

        Grüße Norbert

        • Günter Born sagt:

          Ich rege mich nicht wirklich auf und würde ihn auch nicht als Troll kategorisieren. Aber versuche die Situation einzufangen, dass über Sinn und Unsinn des Scripts am "grünen Tisch" diskutiert wird, ohne die Randbedingungen zu beachten. Das hatten wir ja häufiger – und dann entgleitet der Kommentarthread (was ich schade für die Mitleserschaft finde, da diese zig Kommentare durchgehen muss, um ggf. zum Beef zu kommen).

          Ein gut beschäftigter Admin, der keine Probleme mit TCP unter Windows 10/11 feststellt, wird das Thema links liegen lassen. Der Rest schaut sich das an und entscheidet, ob er einen Test an einer isolierten Maschine fährt und z.B. das Datacenter-Profile verwendet.

          Aber die Forderung nach Benchmarks, Hardware-Specs etc. fand ich beim Kommentator überzogen – speziell im Kontext, dass Alexander da nichts verkaufen muss, sondern die erarbeiteten Informationen mit der Leserschaft teilt.

          Dass man selbstredend über einzelne Punkte diskutieren können darf, ist klar. Und wer die Kommentare auf administrator.de verfolgt, erkennt, dass das Script schrittweise verbessert und erweitert wurde und dass da einige Tester eigene Erfahrungen machen konnten. Der kluge Administrator wird das alles berücksichtigen und entscheiden.

          • Alexander Fuchs sagt:

            Moin Günter,
            ich kann mich dem "nicht aufregen" nur anschliessen.
            Manche schimpfen sich halt gerne Profis und können dabei nicht mal so einen kleinen Happen selbst anständig durchkauen.
            Gruss Alex

          • McAlex777 sagt:

            Hallo Günter,
            erstmal danke für den informativen Artikel, auch dem Autor für seine Mühen.

            Ich denke es ist nicht grundverkehrt wenn auch "harsche" und unfreundliche Kritik geäußert wird. Das regt bei allen, auch beim Entwickler selbst, nochmal ein Nachdenken über den Gesamtsinn an. Auch verdeutlicht solche Kritik Laien das es sich um "tiefgreifende" Änderungen handelt, die man nicht leichtfertig umsetzen sollte.

            Auch in meinem Fall des Datenschutz-Scriptums habe ich durch harte Kritiken einige Punkte klarer in den Dokumentatation hervorgehoben – was letztlich zu einer Qualitätsverbesserung geführt hat :-)

          • Mark sagt:

            Also bisher hat niemand von euch auch nur Ansatzweise seine Argumente widerlegen können.

            Auf Interrupt Moderation wollt ihr nichtmal eingehen. Ich verwende ein anderes Tool, und das kann auch auf Standard zurücksetzen.

            Eigentlich logisch, das man sowas miteinbaut:
            https://www.heise.de/download/product/tcp-optimizer-51778

            Legt auch backups von alleine an.
            So geht es richtig, Meine Herren! Ja.

          • Günter Born sagt:

            @Mark: Vielleicht einfach nochmals meinen initialen Kommentar lesen – den "Troll" hatte ich eingefangen.

            Genau, was ich vermeiden wollte, ist doch jetzt passiert – es wird über Kommentarstil und Ton diskutiert und nicht über das eigentliche Thema.

            Wenn jemand sagt: Mit diesem und jenem Tool arbeitet ich, kann sogar die Optionen rückgängig machen, ist das doch ok. Obwohl ich ad-hoc bei dem von dir auf heise verlinkten SG TCP Optimizer 4.1.1 sofort den Vorwurf sehe "wer weiß, was das Tool macht?". Im Script von Alexander kann jeder Interessierte nachsehen, was gedreht wird.

            Aber an dieser Stelle klinke ich mich aus der Diskussion aus und werde nur moderierend eingreifen, wenn es "persönlich" wird. Es kann und soll ja auf der Ebene der Technik diskutiert werden.

          • Mark sagt:

            @Günni
            Ich bin aber der Mark mit k und nicht der andere mit c ;)

            War mir nicht klar, das man dich damit angehen wollte. Ich finde das Troll-Argument halt immer schwach. Das ist ein Totschlagargument im Netz.

            >sofort den Vorwurf sehe "wer weiß, was das Tool macht?".
            >

            Günni es macht saubere Backups, sogar von allen Einstellungen VOR der Benutzung. Du kannst als nicht nur zu Standards des Programmieres zurück sondern 100% zu deinen eigenen. Finde ich genial. Das Backup kommt als File. Ich habe meine Einstellungen noch heute nach Jahren der Verwendung.

            >wenn es "persönlich" wird
            >

            Ich finde Trollvorwürfe persönlich :)
            Besser ist:
            "Das ist falsch, weil X von dir mit Y von mir widerlegt werden kann."

            Oder so ähnlich. Troll ist ein schimpfwort, wenn man jede Unterhaltung im Keim ersticken will!

      • Peter sagt:

        Der Kommentar von squat mag ein wenig flapsig sein. Das Warum ergibt sich aus dem Artikel, die Benchmarks werden für jeden anders zu beurteilen sein.
        Aber die beiden Fragen nach dem Rückgängig machen und insbesondere der Interrupt Moderation finde ich durchaus valide.
        Hier muss man eventuell auch in Betract ziehen, dass die erhöhte CPU-Last durch deren Deaktivierung nicht für alle sinnvoll ist.

        • Mark sagt:

          Ist der moderne Kommentar-Stil, inklusive dass ihn jemand anderes direkt als Troll abstempeln wollte. Diskurs und kritisch antworten ist OUT. Weswegen meine Aktivität auf allen Seiten immer weiter sinkt.

    • Frank sagt:

      Richtig! Zumal es auch keinen Hinweis gibt, wie man das Ganze wieder umkehrt, falls das Sys nur noch Fehler produziert.

      Ich verweise da gerne (sofern man "spielen" möchte auf einem Testsystem) auf den TCP Optimizer von speedguide.net. Der macht wenigstens ein Backup der Registry, welches man zurückspielen kann.

      Ich würde mich, wie squat auch, auf mehr Infos und Benches freuen.

    • Anonymous sagt:

      "Jemand der Interrupt Moderation ausschaltet… dem kann man nicht mehr helfen."
      Richtig, zumal es zur Leistungssteigerung bessere Lösungen gibt (bei Intel-Adaptern bspw. Interrupts mit geringer Latenz – setzt vom Sender aber PSH-Flags im TCPacket voraus, um einen Interrupt auszulösen – oder bis zu 8 Ports können festgelegt werden, die dann jeweils beim Empfang einen sofortigen Interrupt auslösen.

      "DISABLE FLOW CONTROL ON ALL NIC's"
      Leute, ernsthaft? Am besten noch in einem LAN wo 10 Gbps/1 Gbps / 100 Mbps / 10 Mps Geräte vertreten sind?
      "Wer nutzt denn noch 100 / 10 Mbps Geräte?" SoCs wie der RPI3 über LAN, bspw., Terminals und vor allem Systeme im Standby, die dann und wann im Hintergrund senden.
      Absolutes No-Go.

      Aber dem Thread entnehme ich auch, daß es primär (nicht nur) um 10 Gb-Karten geht, denen man ein Datacenter-Custom-Profil unterjubelt.

      Wer es braucht, kann es ja gerne machen. Diese Konfiguration gehört in dieser Form aber keinesfalls in 08/15-Nutzer-Hände. Energieverschwendung (NIC auf Hochleistung, Prozessor höhere Last = mehr Stromverbrauch ohne tatsächlichen Nutzen).

    • TomTom sagt:

      Moin Moin,

      Der Reset Code wurde ebenfalls geliefert:
      Kommentare zu WINDOWS10AND11-NETWORK-BACKSUBOPTIMIZATION bei administrator.de.

      Dein Ton ist nicht sehr freundlich.
      Ja, wenn man nicht bereit ist eventuelle Folgen zu tragen sollte man das erarbeiten/nutzen des Skripts/Tools lassen.
      Man sollte auch ansatzweise verstehen was dort gemacht wird.
      Vor allem wenn man es für andere verwendet.

      Für mich ist das Skript gleichzusetzen wie zB 7zip in der Anfangsphase.
      Es gab damals einige ähnliche Tools.
      Auch vergleichbar mit 7zip.
      Aber 7zip ist der Entwickler dran geblieben und hat es auch immer weiter entwickelt. Auch wenn es tiefschläge gab. (Bei 7zip wurde etwas gefunden wodurch Systeme die 7zip oder deren DLL verwendeten komprimitiert werden konnten. Und der entwickler hat nicht darauf reagiert… )

      In dem Entwicklungs thread, denn das ist es im Prinzip, werden auch Benchmarks und HW aufgeführt.

      Aber es ist ein Entwicklungs thread um Fehler und allgemeines zu vereinen.
      Nicht ein Informationsthread in dem das fertige Produkt angepriesen wird.

      Davon ab, Präsentationsthreads sind auch bei Github nicht so viele (prozentual). Erst wenn es eventuell monetäre Vorteile für den entwickler gibt wie eine Kaffeekasse.
      Was aus meiner Sicht völlig ok ist.

      Also, der Hinweis, die Untermauerung dessen was Günter Born schon drauf hingewiesen hat,
      das diese Aspekte nicht ungefährlich sind, sie GANZ in der Tiefe eines Betriebssystem agieren !,
      und man dort zwar sachen optimieren kann, aber noch VIEL VIEL schneller das Gesamtsystem zerschießen kann,
      ist mehr als berechtigt.
      Und Forderung nach mehr Infos auch.

      Aber bitte den Ton berücksichtigen wie das gemacht wird.
      Das versuche Ich auch immer den Azubis beizubringen, das der Ton die Musik macht.
      Und andere üerlegen lässt sich den Inhalt anzuschauen und drauf einzugehen.

      So long

      • TomTom sagt:

        PS:
        Ich habe das Skript auf verschiedenen Systemen eingesetzt.
        Zuhause, mit fast reiner Browser Tätigkeit (was die Netzwerktätigkeit betrifft) ist der Effekt zwar vorhanden.
        Aber nicht so stark merkbar.
        Die Huppel sind geringer geworden.
        Im Testsystem mit NAS und VNC ist es dagegen stark zu merken.
        1GB Netz im Testnetz, privat WLAN.

  2. Marc sagt:

    Hallo,

    also ich kann bestätigen, dass in Server 2022 die Remote Desktop Umgebung extrem schlecht läuft. Wir betreiben mehrere Kunden und Cluster mit 2022. Ab 20 gleichzeitiger Teilnehmer werden die Verbindungen instabil und die Probleme beginnen erst richtig. Wir haben teilweise Workarounds implementiert, aber das sollte nicht die finale Lösung sein.

    Ich werde das Skript testweise an einigen Clients versuchen, bin aber skeptisch, da viele Einstellungen auf dem Papier Kontraproduktiv sein müssten und händisch von mir in der Regel in genau die gegenteilige Einstellungen gesetzt werden.
    Daher bin ich umso interessierter ob die Einstellungen Auswirkungen haben.

    • Günter Born sagt:

      Nur für die Mitleserschaft: Alexander wies darauf hin, dass sein Script nur für Clients vorgesehen ist – für die Server-Seite ist noch nichts getestet.

      @Marc: Beim letzten Preview-Update hat Microsoft für die Windows-Clients was am RDP gedreht – will da nach einen Blog-Beitrag schreiben (bin am Wochenende nicht dazu gekommen). Vielleicht hilft das Preview-Update bereits.

      Windows 11 22H1: RDP-Probleme per Preview-Update gefixt, wie ist sonst der Status?

      • Marc sagt:

        Hallo Günter,

        danke, das Update werden wie einspielen und testen. Daumen drücken bitte, da unsere Kunden schon arg genervt sind was RDP und 2022 angeht.

        Das Skript werden wir nur an Clients testen. Auf internen Testservern wage ich mich dennoch mal dran. Da ich hier auch gut Benchmarks insbesondere Latenzen testen kann (Datev z.B. erhoffe ich mir mehr Schwung, das sehr träge im LAN laufen kann).

        • Günter Born sagt:

          Aktuell scheint es den Patch nur für Windows 11 22H2 als Preview zu geben. Bin da aber noch am sortieren.

        • Daniel sagt:

          Ui, ich lese DATEV? Da bin ich auf Deine Ergebnisse gespannt. Bislang ist die DATEV Community bzgl. Server 2022 und RDP echt ruhig. DATEV hatte ein paar UI/UX Fehler mit den Steuerprogrammen aber dass RDP so schlecht sein soll, ist mir neu. Auf der anderen Seite lässt DATEV selbst im DATEVasp maximal 12 User pro Kiste drauf.

  3. Lukas sagt:

    Das Skript hat mittlerweile die Version 1.08.

  4. Alexander Fuchs sagt:

    Moin Anonymous,

    bevor du das nächste mal solche Sachen wie …

    > "Jemand der Interrupt Moderation ausschaltet… dem kann man nicht mehr helfen."

    postest, solltest du dir vielleicht mal Dinge wie das hier anschauen.

    Performance Tuning Network Adapters

    "Disable the Interrupt Moderation setting for network card drivers that require the lowest possible latency." 😉

    Nix verstehen, aber Hauptsache mal seinen Senft mit dazu geben. 😔

    Beste Grüsse aus BaWü
    Alex

    • Anonymous sagt:

      "Nix verstehen, aber Hauptsache mal seinen Senft mit dazu geben. 😔"
      Schon mal was von Dunning und Kruger gehört? Ich gehe da jetzt mal nicht weiter drauf ein, aber…

      "Jemand der Interrupt Moderation ausschaltet… dem kann man nicht mehr helfen." kommt ursprünglich von squat – ich habe lediglich darauf reagiert. Fehler #1, Du hast falsch zitiert.

      Fehler #2, Du verlinkst eine Url, ohne Dich mit dem Hintergrund zu befassen oder hervorzuheben, worauf Du Dich beziehst.

      Zur Interrupt Moderation bin ich bereits eingegangen (bezüglich Intel Netzwerkadapter) – nein, es ist nicht bei allen NICs dasselbe. Es differiert sogar innerhalb der Hersteller in der Klasse (Consumer / Enterprise).

      "Disable the Interrupt Moderation setting for network card drivers that require the lowest possible latency."
      Ja… und zu welchem Preis? Na? Mochtest Du da nicht weiterlesen?
      "You should consider interrupt moderation for CPU-bound workloads. When using interrupt moderation, consider the trade-off between the host CPU savings and latency versus the increased host CPU savings because of more interrupts and less latency."

      Btw., ich bin spezialisiert auf Netzwerke. Nein, ich werde Dir jetzt keine gekauften MS-ebay-Zertifikate um die Ohren hauen.

      Statt die Interrupt-Modifizierung zu bemühen, kann man auch einfach die Sende- und Empfangspuffer vergrößern.

      Und wer super-duper-hoch-performantes Netzwerk braucht, versetzt seinen Rechner in den "Höchstleistungs"-modus und deaktiviert jedwede Form von PowerNow, Speedstep etc. pp. – der Endanwender daheim freut sich über die nächste Stromrechnung, weil seine Lieblings-Anwendung nun in 4, statt in 5 Sekunden, gestartet ist.

      Aber ich habe mir mal die anderen "Problemchen" des MysticFoxDE angesehen… "Performance-Probleme" beim Arbeitsspeicher mit einem voll ausgebauten Server, "Zeitloch" zweier virtualisierter Domänen-Controller – wer zuviel zu optimieren versucht, ohne die Hintergründe zu verstehen, endet halt mit derlei Erlebnissen. :-)

      • Alexander Fuchs sagt:

        Moin Anonymous,

        > „Ja… und zu welchem Preis? Na? Mochtest Du da nicht weiterlesen?"

        nein, aber ich möchte dir dafür eine kleine Geschichtsrunde spendieren.

        Interrupt Moderation wurden zu Zeiten vom Server 2008 implementiert, als die ersten 10G NIC's aufkamen und mit ihrer damals hohen Geschwindigkeit, so viele Interrupts produziert haben, dass die meisten der damaligen CPU's (Pentium Dual-Core & Co.) damit schlichtweg überfordert waren.
        Nun sind wir heute CPU technisch nicht mehr im Jahr 2008 und die meisten Workstations sind dennoch nicht schneller wie mit Gigabit angebunden.
        So, den Rest der Brücke kannst du nun hoffentlich selbst zu Ende bauen. 😉

        > „Btw., ich bin spezialisiert auf Netzwerke.

        Welches … Facebook, Twitter oder XING?

        Beste Grüsse aus BaWü
        Alex

    • Mark sagt:

      >this configuration can use more CPU time and it represents a tradeoff
      >

      Teuer erkaufte Microsekunden, wenn überhaupt. Noch habe ich keinen Benchmark gesehen. Das im Zeitalter von Stromsparen und Umweltschutz.

      Die Nachteile werden unter den Teppich gekehrt und squat noch veralbert. Höflich geht anders.

      • Alexander Fuchs sagt:

        Moin Mark,

        > „Teuer erkaufte Microsekunden, wenn überhaupt. Noch habe ich keinen Benchmark gesehen. Das im Zeitalter von Stromsparen und Umweltschutz."

        ähm, genaugenommen liegst du mit deiner Aussage ziemlich daneben.
        Ja, ich habe ein paar Feature deaktiviert, die etwas mehr Verbrauch nach sich ziehen, auf der andere Seite habe ich auch ein paar Features wie z.B. RSS deaktiviert, die wiederum nichts bringen und dafür aber einen Haufen Overhead produzieren und somit wiederum unnötig Strom fressen. 😉

        > „Die Nachteile werden unter den Teppich gekehrt …"

        Die theoretischen schon, der Beweis der praktischen steht ja noch aus. 😉

        Aber gut, ich komm dir eine Ecke entgegen.

        Lass uns mal annehmen, dass durch diese Einstellungen der Verbrauch des Rechners um 5W/h nach oben geht. Das macht über einen Arbeitstag von 8 Stunden einen Mehrverbrauch von sagenhaften 0,040 kWh, die den Arbeitgeber bei 20 Cent pro kWh, unglaubliche +- 0,008€ mehr am Tag kosten.

        Wenn dessen Arbeitnehmer aufgrund der vermurksten Einstellungen des Windows, am Tag auch nur 5 Minuten länger auf die Anwendungen warten muss. Dann kostet das den Arbeitgeber, bei sagen wir mal 30€/h, 2,50€ nur was den Arbeitslohn angeht.

        2,5 ist übrigens das 312,5 fache von 0,008.

        So, jetzt darfst du selber entscheiden was wirklich Sinn macht und was nicht.

        Beste Grüsse aus BaWü
        Alex

        • CptMarmite sagt:

          Quelle dazu? "RSS deaktiviert, die wiederum nichts bringen und dafür aber einen Haufen Overhead produzieren und somit wiederum unnötig Strom fressen."

        • himbeertoni sagt:

          >"2,5 ist übrigens das 312,5 fache von 0,008. "

          Ach, ach ne. Was, ach?
          Und leider vollkommen irrelevant bezüglich der Diskussion. Die Kernpunkte wurden ja geschickt umtanzt und ignoriert hinter solchen Nebelkerzen.

          • Alexander Fuchs sagt:

            Moin himbeertoni,
            > "Die Kernpunkte wurden ja geschickt umtanzt und ignoriert hinter solchen Nebelkerzen."

            ähm, welche Kernpunkte den bitte.

            Und fang jetzt bitte nicht an mir zu erzählen das Interrupt Moderation zum Stromsparren erfunden wurde und dass Flow-Control die einzige TCP-Flusskontrolle von Windows ist, damit tust du dir selbst keinen Gefallen. 😉

            Gruss Alex

  5. ralphie sagt:

    Für die Optimierung von RDP-Verbindungen, reicht es aus, das Script auf den anfragenden Systemen auszuführen?

    • Alexander Fuchs sagt:

      Moin ralphie,
      > "Für die Optimierung von RDP-Verbindungen, reicht es aus, das Script auf den anfragenden Systemen auszuführen?"
      ja, auch das Verhalten von RDP Sitzungen kann damit verbessert werden.
      Aber wie schon angesprochen, bitte das Skript nur auf dem Client ausführen.

      Wenn du deinen RDP Usern noch was gutes tun möchtest, dann stell RDP bitte von UDP auf TCP um. 😉

      Gruss Alex

  6. Martin B. sagt:

    bei Client-Server Anwendungen kann es hierbei um deutlich mehr als ms gehen. Eine Verdopplung der Antwortzeiten bei einer SQL Anwendung ist nun mal überdeutlich und einen genaueren Blick wert.

    Beizeiten werde ich mal Vergleiche anstellen.

    Man kann auch einfach mal prüfen, in dem man die Clientanwendung von einem anderen Server startet und mit W10 vergleicht.

    Selbst RDS wählen scheinbar das Profil nach Tagesform passend:

    internes Ziel:Established Datacenter
    Internet: Established Internet

    Leider ist dies aber nicht konsistent, bei manchen internen Zielen wird dann doch das Internet-Profil gewählt.

    • Alexander Fuchs sagt:

      Moin Martin,

      > Selbst RDS wählen scheinbar das Profil nach Tagesform passend.

      die Server wählen das TCP Profil automatisch anhand der RTO des TCP-Handshakes.
      Aber das klappt auch nicht immer sehr zuverlässig, so das auch oft die Server für Intranet Verbindungen das Internet Profil wählen. 😭
      Der Murks lässt sich bei den Servern zum Glück aber einfacher abgewöhnen.

      Gruss Alex

  7. Sebastian sagt:

    Ich finde es am Thema vorbei über die Sinnhaftigkeit des Scripts zu diskutieren, es ist kein offizielles Tool von Microsoft, das möchte dann nicht jeder ohne Not bei sich ausprobieren(privat wie beruflich) – durchaus verständlich. Wer von dem Problem betroffen ist hat aber vielleicht einen guten Grund es mal zu versuchen(vielleicht erstmal auf einem Testsystem). Use it or loose it, das muss jeder selbst entscheiden.

    • Alexander Fuchs sagt:

      Moin Sebastian,

      > Wer von dem Problem betroffen ist hat aber vielleicht einen guten Grund es mal zu versuchen(vielleicht erstmal auf einem Testsystem).

      das ist es ja, um genau zu sein ist jeder von dem Problem betroffen, egal ob er das bisher nicht gemerkt hat oder es nicht wahr haben möchte. 😔

      Ich habe heute zum Dank über die günstige Rechnung meiner Kfz-Werkstatt, beim Abholen meines Autos über einen ihrer Rechner das Optimierungsskript drüber laufen lassen und sofort nach dem Neustart des Rechners, hat der Mittarbeiter der an diesem Rechner arbeitet festgestellt, dass sowohl die lokal auf einem Server laufenden Anwendungen, als auch die Zugriffe ins Internet (browsen), um einiges schneller geworden sind.

      Beste Grüsse aus BaWü
      Alex

      • Thorky sagt:

        Nachdem ich ein Windows-Backup erstellt hatte (Macrium Reflect), installierte ich heute Morgen das Skript. Es ist nicht so, dass sich dadurch eine Geschwindigkeitsexplosion ergab, aber es behebt offenbar eine Reihe der kleinen Nickligkeiten, an die ich mich gewöhnt hatte.

        Was mir sehr positiv aufgefallen ist, sind die geringen Pings, wie ich auf verschiedenen Servern bei speedtest.net heraus fand. Bisher lagen die bei 15 bis knapp über 30, je nach Server, jetzt zwischen 15 und nur einmal 20.

        Desweiteren startet Discord um 2 bis 3 Sekunden schneller als bislang. Das kleine rechteckige Updatecheckfenster ist entsprechend schneller mit der Suche fertig.

        Bei Mediathekview werden die HD-Videos fast sofort abgespielt, statt darauf ein bis zwei Sekunden warten zu müssen.

        Downloads im Firefox und Edge Chromium verlaufen zwar nicht schneller, aber in konstantem Fluss statt mit "Schluckauf"-Unterbrechungen.

        Wirklich bemerkenswert ist der Geschwindigkeitszuwachs bei ghacks.net. Ich starte die Seite im Firefox mittels einer App, die sie mir sofort ins Deutsche übersetzt (pure Bequemlichkeit😉) und deshalb zunächst bisher etwa zwei Sekunden nur den Seitenhintergrund ohne Bilder und Texte anzeigte. Jetzt startet die Seite sofort und übersetzt während des Seitenaufbaus, was ca. 1 Sekunde schneller ist, wobei ich aber sofort zu lesen beginnen kann.

        Einfach aufgebaute Seiten (z. B. die News-Übersichten von spiegel.de, zeit.de und heise.de) sind auch im bei mir gegenüber dem Edge Chromium langsameren Firefox fast sofort vollständig auf dem Schirm, statt sich in Etappen aufzubauen. Kann nur sagen, ich bin mit dem Ergebnis sehr zufrieden!

        Sehr gut funktioniert endlich auch meine TV-App OnlineTV18. Die hatte bisher Schwierigkeiten, manchen Sender zu laden. Habe am Abend die zickigsten Sender ausprobiert und bei allen erschien jetzt verlässlich Bild und Ton.

        Probleme hatte ich bislang keine! Vielen Dank für den tollen Kniff! 🤗

        • Alexander Fuchs sagt:

          Moin Thorkey,

          und dir herzlichen Dank für das sehr ausführliche Feedback. 👍👍👍
          Und ja, vor allem die vielen kleinen und alltäglichen Dinge werden (viel) schneller. 😁

          Beste Grüsse aus BaWü
          Alex

  8. Christian Krause sagt:

    Ich habe zwei Kunden, bei denen die Branchensoftware absolut unterirdisch läuft (10 Sekunden Aufbau der Seite). Ich überlege, es dort einmal auszutesten.

  9. Alexander Fuchs sagt:

    Moin Zusammen,

    ich möchte nochmals höflichst darauf hinweisen, dass ich mir die ganze Mühe ganz sicher nicht gemacht habe, um mein !!! kostenlos !!! zur Verfügung gestelltes Skript zu vermarkten. Das war so gesehen eigentlich nur als Beigabe gedacht.

    Vielmehr wollte ich mit meinen Beiträgen auf den Unsinn hinweisen, den Microsoft mittlerweile nicht nur im TCP-Stack produziert und der uns bei der täglichen Arbeit eher behindert, als dass dieser wirklich hilfreich ist. 😔

    Aber statt sich die Frage zu stellen, warum z.B. eine ältere Software früher auf einer viel langsameren Hardware und auf einem viel älteren Betriebssystem viel schneller gelaufen ist zu stellen, ist es für viele IT-Profis wohl eher wichtiger, pauschal lieber mein Skript zu zerpflücken, ohne es vorher jemals probiert und oder seinen Sinn richtig verstanden zu haben.

    Na ja, sei es drum, zum Glück lassen sich ja nicht alle so einfach von Microsoft anleimen.

    Beste Grüsse aus BaWü
    Alex

    • Mira Bellenbaum sagt:

      Hallo Alex
      ärgere Dich nicht, wenn Du Dich über jeden Idioten ärgern und aufregen tust,
      hast Du doch keinen Spaß mehr und läufst Gefahr Bluthochdruck oder gar einen
      Herzinfarkt zu bekommen.
      Ignoriere solche Deppen, die weder Dein Skript verstehen, noch es jemals ausprobiert haben,
      aber darüber herziehen müssen.

      Ich finde es toll, was Du da machst und richtig begeistert bin ich darüber, dass Du Dein Wissen
      und Können der Allgemeinheit zur Verfügung stellst und das sogar kostenlos!
      Danke.
      Gruß
      Mira

      • Thomas sagt:

        Erfahrene Admins pauschal als "Idioten" oder "Deppen" zu bezeichnen, halte ich nicht für besonders freundlich.

        @Alex: Du magst in Deiner Umgebung das, was MS da programmiert, für Unsinn halten. Aber nicht jeder hat deine Umgebung. Daher werden die Einschätzungen was sinnvoll ist und was nicht durchaus unterschiedlich sein. Der Hinweis das sei nur etwas für Windows 10/11 bzw. nur für Clients greift zu kurz. Das sieht in einer kleinen Werkstatt von der Bewertung etwas anders aus als in einem größeren Industriebetrieb mit Gerätschaften aus den letzten 20 Jahren. Auch die Frage, ob es sich um mobile Arbeitsplätze handelt, die eher selten eine Steckdose sehen ist nicht ganz unbedeutend. Standardisierung spielt dann auch noch eine Rolle. Man möchte da nicht unbedingt zu viel voneinander abweichende Einstellungen haben.

        • Alexander Fuchs sagt:

          Moin Thomas,

          > "Du magst in Deiner Umgebung das, was MS da programmiert, für Unsinn halten. Aber nicht jeder hat deine Umgebung. Daher werden die Einschätzungen was sinnvoll ist und was nicht durchaus unterschiedlich sein. …"

          nein Thomas, das Problem betrifft eben nicht nur eine bestimmte Umgebung sondern ist eher pauschaler Natur.

          Schau dir mal bitte die Kommentare der Personen die es schon ausgeführt haben, mal genauer an.
          Die Performancesteigerung ist so gut wie quer durch die Bank spürbar, sobald Daten über das Netzwerkkabel fliessen. 😉

          Beste Grüsse aus BaWü
          Alex

        • himbeertoni sagt:

          Mirabellenbaum hatte noch nie gute Umgangsformen. Das Günni hier Beleidigungen stehen lässt ist wohl geschuldet, das Beiträge von Mira automatisch freigeschaltet werden.

          Sollte man bei der Persona wieder auf manuelles freischalten umstellen.

          • Mira Bellenbaum sagt:

            Hast Du, himbeertoni, eine Glaskugel?
            Woher willst Du wissen, dass meine Beiträge automatisch freigeschaltet werden?

            Und wo ganz genau habe ich jemanden beleidigt?
            Ich kann nirgends lesen, dass ich direkt jemanden angegangen wäre.
            Recht umgangssprachlich habe ich einige Kritiker, wenn man diese denn so nennen will, als Idioten und Deppen bezeichnet.
            Es hat von diesem Personenkreis noch keiner irgendeinen Beweis vorgelegt, dass das Skript nichts taugt, geschweige denn etwas verschlechter bzw. schädlich ist.
            Aber schimpfen können se alle.

        • Mira Bellenbaum sagt:

          Hi Thomas,
          lies doch bitte meinen Kommentar noch einmal ganz genau!
          Nirgends habe ich "Erfahrene Admins" pauschal als Idioten oder gar als
          Deppen tituliert.
          Wenn ich jemanden mit Idiot betitelt habe, dann sind es ein ganz
          allgemeiner Personenkreis gewesen.
          Und als Deppen habe ich auch nur diese Leute bezeichnet.

          Was Du da also hineininterpretierst, stimmt so nicht.

      • Alexander Fuchs sagt:

        Moin Mira,

        > „ärgere Dich nicht, wenn Du Dich über jeden Idioten ärgern und aufregen tust, hast Du doch keinen Spaß mehr und läufst Gefahr Bluthochdruck oder gar einen Herzinfarkt zu bekommen."

        Vielen dank für die lieben Worte.
        Und so hart treffen mich die Aussagen der Zweifler auch nicht wirklich, zumindest nicht was mich selbst angeht, dann beiss ich halt zur Not a bissale zurück. 🤪

        Was mich jedoch absolut aufregt ist, dass diesen Zweiflern, diese Features anscheinend absolut wichtiger sind, obwohl dieser für ihre Kunden/User absolut nutzlos bis schädlich sind!

        Und anstelle des Ganzen mal kurz auf einer Testmaschine zu versuchen, belehren/beraten die mich und wahrscheinlich genauso auch ihre Kunden/User, lieber weiter über irgendeinen entweder theoretischen und oder veralteten Blödsinn. 😔

        > „Ich finde es toll, was Du da machst und richtig begeistert bin ich darüber, dass Du Dein Wissen
        und Können der Allgemeinheit zur Verfügung stellst und das sogar kostenlos!"

        Das ist für mich bei so einem Thema und einem derartigen Marksausmass, mehr als nur selbstverständlich.

        Gruss Alex

    • riedenthied sagt:

      Grüße,

      lass dich nicht runterziehen, leider gibt es gerade in der IT viele Leute, die alles besser wissen und die Weisheit mit Löffeln gefressen haben, wie man so schön sagt. Teilweise sicher zurecht, teilweise aber eben auch nicht.

      Es ist ja in der Tat so, dass man sich oftmals fragt, warum bestimmte Netzwerkverbindungen (z.B. zu SQL-Servern) so Kac… *hust* schlecht laufen und ob das nicht eigentlich performanter gehen müsste. Für mich klingt das alles nach einer plausiblen Erklärung und es ist auf jeden Fall ein Anstoß, mich damit näher zu beschäftigen. Also erstmal danke dafür, auch wenn ich noch nichts ausprobiert habe. :-)

      • Alexander Fuchs sagt:

        Moin riedenthied,

        auch dir Danke für deinen Beistand.

        > "Es ist ja in der Tat so, dass man sich oftmals fragt, warum bestimmte Netzwerkverbindungen (z.B. zu SQL-Servern) so Kac… *hust* schlecht laufen und ob das nicht eigentlich performanter gehen müsste"

        Genau das ist der springende Punkt aber irgendwie scheint es wohl keinem bisher aufgefallen zu sein und oder so wirklich zu interessieren. Und ich mache jetzt mit keinem, keinem Admin einen Vorwurf und auch für normale Systemintegratoren ist diese Materie meist zu komplex um diesem Murks entdecken zu können.

        Was ich jedoch nicht wirklich verstehe ist, warum es bisher weder Lenovo, noch Fujitsu, noch HPE, noch Dell & Co. KG aufgefallen ist. 😔

        Aber ja, statt selber zu testen und Microsoft danach für den Murks den die bauen, mal ordentlich in den Hintern zu treten, tun die im Nachgang in ihren eigenen KB's bei entsprechenden Problemen lieber, auf die von mir erarbeiteten Lösungsansätze verweisen. 🤢🤮

        Alleine schon die CUBIC DCTCP Geschichte finde ich bei diversen und nicht gerade kleinen Herstellern in deren KB's verlinkt.


        !! Daher nochmals an Alle !!
        Es geht mir hier nicht um irgendwelchen persönlichen Ruhm. Sondern darum, dass wir Microsoft (und auch die anderen oben genannten HW Hersteller/Lieferanten) für den Murks den die uns vor die Nase setzen, nun endlich mal gemeinsam mit Anlauf in den Hintern treten.
        Ausser, die Mehrheit ist mit dieser Massenkastration/Bevormundung wirklich bewusst einverstanden.
        In dem Fall kann ich dann aber auch nicht mehr helfen.

        Gruss Alex

        • rscheff sagt:

          DCTCP "einfach so" zu aktivieren ist keine sonderlich brilliante Idee. Wer wirklich tief in dieses Thema einsteigen will, kann die Diskussionen der IETF zu dem Thema, die seit 2011 stattfinden (sind noch nicht abgeschlossen) verfolgen – Stichwort L4S bzw TCP Prague.

          In Kürze: DCTCP funktioniert ohne eine spezielle Variante von ECN – also aktivieren von ECN auf den Switches zwischen Client und Server, und Parametrisieren des ECN markings in einer Art, die mit Standard TCP inkompatibel (stark benachteiligend) ist, nicht.

          Zum "Glück" sind aber die Defaults auf modernen Switches auch ähnlich vermurkst, und ECN funktioniert in moderner Hardware häufig nicht, nicht sauber, oder anders als man das konfiguriert (genauso wie viel im Umfeld von QoS). Und solange DCTCP ohne die ECN Markierungen (nach DCTCP Bedarf) auskommen muß, verhält sich DCTCP praktisch wie Standard TCP.

          Die 2. Seite muß übrigens auch die DCTCP ECN Variante sprechen, ohne dass es eine Verhandlung beim TCP Aufbau gibt, welche Variante die beiden Hosts bzgl ECN miteinander sprechen, oder dem Netzwerk signalisiern, wie dort die ECN Signale generiert werden sollen – Klassisch (equivalent to Packet Discard) oder eben für DCTCP (und RoCEv2 DCQCN) geeignet.

          Wenn die 2. Seite klassisches ECN spricht (immer mehr Server im Internet supporten das, aber das Netzwerk spielt noch nicht mit), läuft einseitiges DCTCP in der Praxis sehr ähnlich zu klassischem TCP+ECN – inkl. sehr schlechter Performance, wenn das Netzwerk nun DCTCP ECN macht, der Server DCTCP, aber der Client nur klassisches TCP ECN spricht…

          Der Rest sind alles Optimierungen für Request-Response (Latency limited) Applikationen (wie erwähnt, SQL)

          Für Bulk Transfers (Videodateien über hohe RTT Strecken versenden), oder Web-Server Betrieb sind viele davon eher ungeeignet.

          Hilft also eher nur dem "kleinen" SQL Server/Client, wo nur sehr wenige Sessions, mit Fokus auf Latenz relevant sind.

    • squat sagt:

      Weder hat jemand behaupet das Skript sei sinnlos noch sonst was.
      Aber die Intention ist fraglich.
      Es ist nunma so, dass es in einem Netzwerk schnell passiert dass verschieden Schnelle Medien zusammen kommen ,sei es 1000Mbit mit 100Mbit, oder 10 Mbit DSL.
      Von 1000Mbit auf 100Mbit stellt für TCP in den ersten Sekunden ein Paketloss von 90% dar. Jegliches abschalten von Flowcontrol macht hier das Problem dann nur deutlich schlechter weil es länger dauert bis die Balance gefunden wird.

      Interrupt Moderation wird angewendet um Strom zu sparen und Überhitzung von moderenen CPUs zu vermeiden. Anstatt eine CPU mehrmals pro Millisekunde aufzuwecken, und so am Stromsparen zu hindern, und letzlich auch am PowerBudget der Kühlung, schaltet der Treiber den Interrupt der Karte aus, oder wechselt auf einen Timer der den Interrupt eben nur alle 2-5ms auslöst, und dann dafür viele Pakete unter einmal bearbeitet.

      Kritik an Bechmark und Intention. So ein Skript sinnvoll zu testen ist schwer, weil TCP in absurd vielen Kombinationen zum Einsatz kommt, aber noch schlimmer.. viele der Optimierungen betreffen auch andere Protokolle UDP/GRE/ESP/.. die offenbar gar nicht getestet wurden.

      Deshalb ist die Frage nach einem Test-Setup sinnvoll, in welcher Umgebung verbessert die Einstellung denn was? Latenz? Wie gemessen? Mit Ping? aber Ping verwendet gar kein TCP..
      Bandbreite? von TCP? UDP?
      Strombedarf? Dauerlast? CPU Benchmark? Temperatur? mit oder ohne AV aktiv?
      Welcher Netzwerk Adapter? Intel? Realtek? Broardcom? Ein Adapter der was kann, oder ein Nachfolger vom E1000?
      Was für ein Switch wurde verwendet? Einer der Flow Control kann? Software oder Hardware Flow Control?

      Die Gegenstelle.. welches Protokoll? Welches Betriebsystem?
      Wenn ein Browser verwendet wurde, wie wurde sichergestellt, dass kein DNS Cache oder Browsercache die Ergebnisse verfälschen? Welche TCP Type verwendet die Gegenstelle denn?

      Wieviel Verbesserung ist überhaupt erreichbar? 1%? 5%? 50% (hier wäre schön auch eine Metrik dazu zu haben.. aber die fehlt)

      Und schon klar, muss gar keine breiten Benchmarks geben, spannend wäre aber schon zu wissen, was der Autor verwendet, und warum (in Zahlen), er gut findet was er macht.

      usw. usw. usw.
      Sooo viele Leute haben in der Vergangenheit versucht Windows Einstellungen zu verschlimmbessern, früher waren mal die Registry-Optiomierer in Mode, dann die Defragmentierer, AntiSpy, .. Speicher Optimierer, … Fast alle diese Programme, egal wie gut gemeint, hatten zur Folge das bestehende Windows irreperabel kaputt zu machen.

      Und .. natürlich Windows ist für einen breiten Einsatz Zweck optimiert, vollkommen klar, dass man wenn man auf Features verzichtet in Nischen mehr bekommen kann.

      • Mira Bellenbaum sagt:

        Theoretiker!

        Hast nun viel, sehr viel geschrieben, und bettelst nach Zahlen.

        Probier es doch einfach aus!
        Entweder Du bist zufrieden oder halt eben nicht, dann machste es halt rückgängig.

        • himbeertoni sagt:

          War klar, dass nur runtergeputzt wird, wenn jemand mit Fakten kommt.

          Hast du seinen Beitrag gelesen? Es gibt zu viele Kombinationen im Firmenumfeld um das alles alleine mal auf die schnelle testen zu können.

          Probiere es doch selbst, in deiner Firma, an einem Montag Morgen. Ich bin gespannt!

          • Mira Bellenbaum sagt:

            Du hast Dich auf mich eingeschossen, was?

            Wo genau macht Microsoft das, und zwar immer?
            Und ist es nicht die Aufgabe eines Admins genau solche Tests zu machen?

            Also sogar vor jedem offiziellen Update seitens MS, werden Tests gefahren.

            Mir geht diese, "packt bitte alles in Watte und beschütze mich" Mentalität mittlerweile so richtig gegen den Strich.

          • Alexander Fuchs sagt:

            Moin himbeertoni,

            > "war klar, dass nur runtergeputzt wird, wenn jemand mit Fakten kommt."

            Dann aber auch mit Fakten kommen und nicht mit Dingen die man selbst mal von einem Verkäufer gehört hat. 😉

            > "Hast du seinen Beitrag gelesen? Es gibt zu viele Kombinationen im Firmenumfeld um das alles alleine mal auf die schnelle testen zu können."

            Lustig, genau das haben schon duzende Admins gemacht und sich danach bedankt.
            Einige haben sogar freiwillig um eine Rechnung gebeten um sich an den Forschungs-/Entwicklungskosten zu beteiligen. 😉

            Ach ja, by the Way, ich habe in den letzten Jahren über ein Mannjahr in Forschung investiert, um mitunter auch diesen TCP Murks zu verstehen.
            Hat das einer von euch auch getan?

            Übrigens wurde das Skript mittlerweile auf einer viel breiteren Platform (Hardware&Software) getestet, als Microsoft seinen Murks selbst testet.
            infor:COM
            Sage
            Alphaplan
            D3
            Elo
            Phonix
            Oracle
            MySQL
            Diverseste CAD Programme
            u.s.w.

            Und bei allen oben genanten gab es zwischen kleine und sehr grosse Verbesserungen.

            Zudem behauptet so gut wie jeder der das Skript bisher ausgeführt hat, dass das Surfen im Internet auch schneller geworden ist.

            > "Probiere es doch selbst, in deiner Firma, an einem Montag Morgen. Ich bin gespannt!"

            Du sollst es nicht gleich per Logincript in der ganzen Firma ausrollen, sondern einfach mal zum Testen bei dem einen oder anderen Keyuser einspielen.
            Danach werden dich deine Keyuser schon selbst von dem Ausrollen überzeugen.

            Beste Grüsse aus BaWü
            Alex

      • much smarter than you sagt:

        pretty much all nonsense.
        i've had interrupt moderation off for 10+ years, and my cpu idles all the time, at this very moment in fact, with 4 tabs open, & at only 31c with air cooler.

    • 1ST1 sagt:

      "ist es für viele IT-Profis wohl eher wichtiger, pauschal lieber mein Skript zu zerpflücken, ohne es vorher jemals probiert und oder seinen Sinn richtig verstanden zu haben."

      Hier sehe ich ein Problem: Traue NIE einem fremden Script. Erstmal zerpflücken und schauen was es tut, und wie man es notfalls reverten kann macht durchaus Sinn!

      Die ganzen Registry-Tweaks von früher haben schon so viele Systeme kaputt gemacht, wo dann eine Neuinstallation fällig war. An dem Tweak oder an dem CCcleaner-artigen Schlangenöl lag es nie, das Zeugs war aus Sicht der Nutzer immer unfehlbar, bei Microsoft die Spezialisten die das programmiert haben sind Stümper aber die Profis aus dem Internet wissen es besser, muss Windows selbst schuld gewesen sein, so jedenfalls meine Erfahrungen mit Zeitgenossen, die jegliche Tipps ungeprüft auf ihre Kisten losgelassen haben.

      Mag sein, dass das Script wirklich was bringt, vielleicht auch nur in bestimmten Fällen, aber ungeprüft lasse ich keine Internet-Tipps mehr auf meine Systeme los. Wichtig ist, dass die Kiste in allen Fällen läuft, auf Neuinstallation wegen sowas hab ich keinen Bock.

      Und man darf nicht vergessen, mit solchen Tweaks verlässt man wahrscheinlich den Microsoft-Support-Pfad. Klar, Support haben eh die wenigsten, aber im Fall eines Falles kann MS bei nicht standardmäßigen Einstellungen den Support verweigern. Irgendwelche Gründe wird MS schon haben, gehabt haben, um das so "konservativ" einzustellen. Mag sein, dass die Standard-Settings in Windows durch den technischen Fortschritt inzwischen suboptimal sind, aber dann sollte man eher mal MS auf diese Experimente aufmerksam machen, vielleicht gibts ja tatsächlich Fofrtschritt durch diesen bestimmt interessanten Ansatz! Herr Born, Sie haben ja doch noch einen "Draht nach Oben", oder?

      Auf jeden Fall sollte man sicher stellen, wenn man mit diesem Script und den Settings experimentiert, dass man es vor den nächsten Patchday-Updates erstmal zurück setzt, um von MS ungetestete Seiteneffekte zu vermeiden! Nach erfolgreichem Update kann man das Script ja wieder laufen lassen.

  10. Michael sagt:

    Bin nur ein relativ unbedarfter "Maus-Schubser" und kein Admin, hatte etwas Zeit und habe das Script (zuvor Backup) ausprobiert. Fazit:

    Auf beiden Thinkpads (Windows 10) eine deutliche Verbesserung des Internet.

    • himbeertoni sagt:

      Wie hast du es gemessen und hast du Zahlen dazu?

      • Mira Bellenbaum sagt:

        Die Frage ist sowas von überflüssig!

        Wenn ich als Endanwender dasitze und auf ne Eieruhr blicke, wenn ich eine Seite aufrufe, und nach der Nutzung des Skripts diese nicht mehr zu Gesicht bekomme,
        brauche ich nichts messen und habe für Menschen wie Dich auch keine Zahlen.

        Mach ein Backup, und probiere das Skript doch einfach aus!
        Wenn Dir das alles nicht zu sagt, oder wenn Dein System dann eben nicht mehr so gut läuft, ja mein Gott, dann spiel Dein Backup wieder ein.

  11. Jonny E. sagt:

    @Michael: "… relativ unbedarfter "Maus-Schubser" …
    naja, so unbedarft scheinst du nicht zu sein … oder?

    Immerhin muss man erstmal die Powershell execution policy anpassen, damit das Script überhaupt ausgeführt wird … Und typische "Maussschubser" scheitern bereits an Kommandozeile, Powershell und als "Admin ausführen" … :-)

    Back to topic: @Alexander Fuchs
    vielen Dank für deine Erkenntnisse zum "MS-TCP-Murks" und das teilen dieser Informationen …
    Dein Script habe ich auf 2 PCs und einem Notebook ausprobiert, das Script hat funktiooniert und die "Schwuppdizität" hat sich deutlich verbessert … :-)

    Zum Thema "…warum z.B. eine ältere Software früher auf einer viel langsameren Hardware und auf einem viel älteren Betriebssystem viel schneller gelaufen ist zu stellen,…" kann ich nur fragend zustimmen.
    Ich selbst hatte bzw. MUSSTE (wegen meinem "tollen" Chef) mehrere "Server", die eigentlich nur modifizierte PCs Siemens Celsius 1000 (Pentium II/400Mhz (Single Core!!), 384 bis 768 MB SDRAM + SCSI-HDDs) unter NT4 Server & Workstation fast 14 Jahre lang (!!!!) durchschleppen (1998 bis ca. 2012…
    Die NICs damals 3COM Gigabit LWL und 3COM 3c905b und 3C905c …
    Und es ging … irgendwie … Der Fileserver hatte bis zu 150 Clients zu bedienen, die anderen waren Webproxy, Lizenzserver etc.

    Heute hat man bereits in einem Intel Core i5 bereits 12 Threads und fast 5 GHz Takt und trotzdem fühlen sich vielen Dienste einfach "lahm" an …

    Mein Verdacht: Zuviel Overhead und/oder ineffektive Programmierung oder gewolltes Ausbremsen … ?

    Das erinnert mich an ein Buch über IBM mit der goldenen Schraubendrehermethode …
    Sinngemäße Wiedergabe: "… einfach ein paar Codezeilen zum ausbremsen der 100.000$-Maschine, damit der Kunde merkt, ok, ich muss nochmal 50.000 $ ausgeben … Nach Zahlung wurden die betreffenden Codezeilen einfach per REM ausgeklammert und die Kiste lief doppelt so schnell …"

    Paul Carrol: "Der Computerkrieg. IBM gegen Bill Gates Microsoft. Ein Kampf ums Überleben." erschienen 1994.

    • Mira Bellenbaum sagt:

      Noch so'ne unbedarfte "Mäuse-Schubserin".

      Musste erst per Google suchen, um "meine" PowerShell zur Mitarbeit überreden zu können.
      https://web.archive.org/web/20220519153608/https://techexpert.tips/de/powershell-de/powershell-aendern-der-ausfuehrungsrichtlinie/

      Danach habe ich es gewagt und das Skript ausgeführt, wow, hab' ich en neuen Rechner oder was?
      Ich bin sprachlos.

    • Alexander Fuchs sagt:

      Moin Squat,

      > „Von 1000Mbit auf 100Mbit stellt für TCP in den ersten Sekunden ein Paketloss von 90% dar."

      wie kommst du eigentlich auf solche Ideen und kannst du diese auch belegen?

      > „Jegliches abschalten von Flowcontrol macht hier das Problem dann nur deutlich schlechter weil es länger dauert bis die Balance gefunden wird."

      Nö, weil Flowcontrol nicht die einzige Fluss-/Überlaststeuerung für TCP im Windows ist. 😉

      > „Interrupt Moderation wird angewendet um Strom zu sparen und Überhitzung von moderenen CPUs zu vermeiden. Anstatt eine CPU mehrmals pro Millisekunde aufzuwecken, und so am Stromsparen zu hindern, und letzlich auch am PowerBudget der Kühlung, schaltet der Treiber den Interrupt der Karte aus, oder wechselt auf einen Timer der den Interrupt eben nur alle 2-5ms auslöst, und dann dafür viele Pakete unter einmal bearbeitet."

      Ja, das ist mitunter auch ein Grund wofür IM mittlerweile missbraucht wird.
      Ursprünglich wurde es jedoch implementiert um schwächeren Systemen, einen höheren Netzwerkdurchsatz zu ermöglichen und nicht um leistungsfähige Systeme künstlich auszubremsen.

      > „Kritik an Bechmark und Intention. So ein Skript sinnvoll zu testen ist schwer, weil TCP in absurd vielen Kombinationen zum Einsatz kommt, aber noch schlimmer.. viele der Optimierungen betreffen auch andere Protokolle UDP/GRE/ESP/.. die offenbar gar nicht getestet wurden."

      Eine Frage zwischendurch, bist du schon verheiratet oder noch am theoretischen durchtesten?

      Zurück zum Thema, ja ich habe durchaus auch die Auswirkungen auf die anderen Unterprotokolle gedacht und anhand meiner bisherigen Erfahrung beschlossen, dass diese mit Einstellungen die den heutigen LAN/WAN Geschwindigkeiten entsprechen, wahrscheinlich nicht schlechter laufen, als mit den default Einstellungen des Windows, die zum Teil noch anno 2012 und älter sind.

      > „in welcher Umgebung verbessert die Einstellung denn was?"

      Um es mal mit den Worten von Jonny zu beschreiben. Durch das Skript wird die Schwuppdizität des entsprechenden Windows 10&11, bei so gut wie jeder Netzwerkverbindung verbessert. 😉

      > „Heute hat man bereits in einem Intel Core i5 bereits 12 Threads und fast 5 GHz Takt und trotzdem fühlen sich vielen Dienste einfach "lahm" an …"

      👍👍👍, sehr gut, jetzt fängt es endlich an in die richtige Richtung zu gehen.

      > „Mein Verdacht: Zuviel Overhead und/oder ineffektive Programmierung oder gewolltes Ausbremsen … ?"

      Bingo, Bingo und wahrscheinlich nochmals Bingo!

      Und jetzt überleg mal genauer was ich mit meinem Skript mitunter mache.
      Ich deaktiviere schlichtweg einiges was überwiegend einen Overhead aber keinen Nutzen erzeugt. 😉

      Beste Grüsse aus BaWü
      Alex

  12. Mike sagt:

    Auf einem Server der einen dedizierten Dienst anbietet ist "TCP-Tuning" sicher interessant.
    Client-seitig habe ich mir das schon länger nicht mehr angeschaut, aber unter WinXP und Win7 immer nur durchwachsene Erfahrungen gemacht: Die einen "Tweaks" verbesserten die Latenz, schwächelten dafür beim Error-Handling und als Folge gab es Verbindungsabbrüche. Andere erhöhten den Datentransfer bei niedriger Latenz z.B. im LAN, machten aber dafür Downloads von Servern im Ausland (speziell Übersee) fast unmöglich.
    Waren natürlich technisch andere Zeiten speziell was Internet und Latenz angeht.

    Find es jedenfalls gut, wenn sich jemand mit dem Thema beschäftigt und das in die News kommt. Selten aber doch führt sowas dazu, dass Microsoft und co. da wieder einen Blick drauf werfen und vielleicht was optimieren.

  13. Jonny E. sagt:

    Empfehlung:
    Die Execution-policy nach Scriptausführung wieder auf restricted setzen, sonst hast ggf. ein Einfallstor für Viren oder bösartige Scripts, die Powershell verwenden.
    Einen neuen Rechner hast du mit Alex seinem Script nicht, aber die "Schwuppdizität" bei Internetverbindungen sollte sich deutlich verbessert haben.
    Ich merke jedenfalls eine deutliche Verbesserung.

    • Alexander Fuchs sagt:

      Moin Johnny,

      > „Die Execution-policy nach Scriptausführung wieder auf restricted setzen, sonst hast ggf. ein Einfallstor für Viren oder bösartige Scripts, die Powershell verwenden."

      du musst die Execution-Policymit dem folgenden Trick, meines Wissens nach erst gar nicht herabsetzen.
      ISE als Administrator zu starten, den Quellcode ins weise Feld kopieren, dann den ganzen Quellcode Auswählen (Strg+A) und dann einfach auf „F5" drücken. 😁

      > „Einen neuen Rechner hast du mit Alex seinem Script nicht, aber die "Schwuppdizität" bei Internetverbindungen sollte sich deutlich verbessert haben.
      Ich merke jedenfalls eine deutliche Verbesserung."

      Wie ich schon geschrieben habe, stammen die meisten Einstellungen des Internetprofils welches in allen aktuellen Windowsversionen (10&11) als default TCP Profil verwendet wird, aus Zeiten von 2012 und einigen davon sind sogar noch viel älter. Und daher passen diese weder vorne noch hinten für die moderne WAN Geschwindigkeiten/Latenzen und schon gar nicht für die der aktuellen lokalen Netze(1-10G). 😔

      Gruss Alex

      • Jonny E. sagt:

        Hallo Alex,
        danke für diesen Hinweis. Wie so oft, viele Wege führen nach Rom. Dein Weg hat den Vorteil, man ist schnell.

        Nachteil:
        1. Man vergisst bzw. weiß es ggf. überhaupt nicht, das es eine Execution-Policy gibt
        und
        2. was da (ggf. falsch?) eingestellt ist.

        Deswegen mein Weg via Powershell-Cmd, nicht ISE: (ja, da muss man tippen … ;-) )
        1. get-execution-policy (Ergebnis merken, sollte im Normalfall restricted sein)
        2. set-execution-policy unrestricted
        3. dein Script via ps1.file ausführen
        4. set-execution-policy restricted oder set-execution-policy default (setzt die Defaults)
        abschließend Powershell-Sicherheit prüfen
        5. get-execution-policy (Ergebnis sollte restricted sein)
        6 .Reboot der Maschine
        und abschließennd mittels
        7. Get-NetTCPConnection Verbindungsprofil prüfen (sollte jetzt DataCenter, statt Internet sein)

        Great Thanks! :-)

        • riedenthied sagt:

          Die Execution Policy ist kein Sicherheitsmerkmal und lässt sich auf x verschiedenen Wegen umgehen. Am einfachsten gibt man der powershell.exe einfach den entsprechenden Parameter mit.

          Der einzige Zweck der Execution Policy ist, dass man nicht mal versehentlich irgendwas ausführt. Vor Malware schützt das definitiv überhaupt nicht, also macht euch keine große Platte darum.

        • Andreas sagt:

          Hallo Jonny,
          du hast da leider ein – zuviel.
          Der Befehl sollte lauten:
          Set-ExecutionPolicy Restricted
          bzw.
          Set-ExecutionPolicy Unrestricted

          LG
          Andreas

  14. janil sagt:

    Danke Alex!
    Funktioniert für mich.

  15. Andreas sagt:

    Vielen Dank für das script. Es läuft wunderbar bei mir, selbst meine Verbindung zum exchange läuft nun wesentlich schneller. Teilweise musste ich hier für manche Mails 2 – 3 Sekunden warten bis diese geöffnet wurden nun geht die Mail sofort auf.

    LG
    Andreas

  16. Cornelia sagt:

    Habe das Skript soeben auf einem Computer installiert.
    Insbesondere der Verbindungsaufbau zur Login-Seite meines Synology NAS via Internet war danach bedeutend schneller. Das kann zwar auch Zufall sein, ich kann mich aber nicht erinnern, dass ich jemals weniger lange gewartet hatte.
    Aber auch mehrere Internetseiten, die ich fast täglich anschaue, laden jetzt schneller.
    Der Remotedesktopmanager (als Remote-App) via LAN startete ebenfalls schneller als sonst.

    Bei Outlook (Micrsoft 365 Konto) merkte ich hingegen keinen Unterschied. Es schien mir sogar, dass der Start minimal länger dauerte. Auch bei OneNote und Teams ging es nicht schneller als sonst. Aber wer weiss, vielleicht war das nur einmalig.

  17. Mira Bellenbaum sagt:

    @Alexander Fuchs
    zu: https://administrator.de/tutorial/wie-man-das-windows-10-und-11-tcp-handling-wieder-desuboptimieren-kann-5529700198.html#comment-5755062804

    Ich fände es auch toll, wenn man einzelne Einstellungen abwählen könnte.
    Auch wäre es nicht schlecht, wenn Dein Skript so etwas wie eine Backupfunktion hätte.

    Vielleicht kannst Du Dein Skript dahingehend ja noch optimieren.

    Gruß
    Mira

    • Alexander Fuchs sagt:

      Moin Mira,
      > "Ich fände es auch toll, wenn man einzelne Einstellungen abwählen könnte."

      Ungern, da viele Einstellungen aufeinander abgestimmt oder voneinander abhängig sind.
      Wenn jemand aber unbedingt dennoch etwas deaktivieren möchte, dann kann er einfach den entsprechenden Block aus den Code schmeissen oder auskommentieren.

      > "Auch wäre es nicht schlecht, wenn Dein Skript so etwas wie eine Backupfunktion hätte."

      OK, das mit "so etwas wie eine Backupfunktion" nehme ich jetzt aber wörtlich. 😁

      Moment … 🦊–>🧙‍♂️–>🪄((🐕+🐈+🐁)-🐍)*🐲)/(🐘+🦅) = V1.09 😉

      https://github.com/MysticFoxDE/WINDOWS-OPTIMIZATIONS/blob/main/W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1

      Beste Grüsse aus BaWü
      Alex

      • Mira Bellenbaum sagt:

        Cool, Danke.

      • Carsten Hamann sagt:

        Leider kein Backup sondern nur diese Meldung:

        Test-Path : Cannot bind argument to parameter 'Path' because it is null.
        At C:\Users\Administrator\Desktop\Update W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:24 char:17
        + if (!(Test-Path $PATH))
        + ~~~~~
        + CategoryInfo : InvalidData: (:) [Test-Path], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCom
        mand

        • Mira Bellenbaum sagt:

          Hatte ich auch!
          Schau einfach mal direkt auf C:\
          dort fand ich dann eine "WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log".

          Zumindest weiß ich jetzt, was geändert wurde.
          Eine ausführbare Datei wäre natürlich besser.

  18. Alexander Fuchs sagt:

    Moin Mark,

    leider kann ich auf deinen Originalpost warum auch immer nicht antworten, daher über diesen Weg.

    > „Günni es macht saubere Backups, sogar von allen Einstellungen VOR der Benutzung. Du kannst als nicht nur zu Standards des Programmieres zurück sondern 100% zu deinen eigenen. Finde ich genial. Das Backup kommt als File. Ich habe meine Einstellungen noch heute nach Jahren der Verwendung."

    ja, der „SG TCP Optimizer" ist nicht schlecht, aber dennoch nicht dasselbe wie mein Skript.

    Zum einen kannst du als Laie durch diesen dein System nur über das Profil „Optimal" automatisch anpassen lassen und dessen Einstellungen sind meiner Ansicht nach auch nicht ganz optimal.
    Und wenn du auf Custom was umstellen möchtest, dann solltest du beim „SG TCP Optimizer" erst recht wissen, was du tust.
    Ja, OK, bei meinem Skript sollte man das bei Änderungen auch wissen.

    Gut Weiter. Mein Skript lässt du einfach laufen, und es optimiert die entsprechenden Einstellungen da wo es notwendig ist, sogar gemäss der verbauten Hardware und deren Fähigkeiten, komplett von selbst.

    Des Weiteren fasse ich mit meinem Skript diverse Einstellungen an, die der „SG TCP Optimizer" überhaupt nicht berücksichtigt.

    Zudem lässt sich der „SG TCP Optimizer" nicht automatisiert verteilen, mein Skript schon.

    Eine Erweiterung der bestehenden Funktionalität ohne dessen Entwickler zu Stressen, ist beim „SG TCP Optimizer" nicht wirklich möglich und auch nicht vorgesehen. Mein Skript ist wiederum Quelloffen und ist somit für jedermann jederzeit einsehbar und erweiterbar.

    Original Auszug aus dem „SG TCP Optimizer" License Agreement:
    „You may not reverse-assemble, reverse-compile, reverse-engineer, or otherwise alter this Software. It is provided for use solely in executable, "binary" form without modification, and Speed Guide, Inc. retains its copyright."

    Um es kurz zusammenzufassen. Mein Skript ist primär für den Einsatz in Unternehmensumgebungen ausgelegt, kann aber natürlich jederzeit auch privat verwendet werden.

    Der „SG TCP Optimizer" ist rein für die privat Nutzung bestimmt und ist für einen Enterprise-Einsatz überhaupt nicht ausgelegt.
    Das er dort auch benutzt werden kann möchte ich nicht abstreiten, aber ich kennen keinen Enterprise-Admin, der diesen freiwillig in der gesamten Unternehmensumgebung ausrollen würde, weil dieser das nicht hergibt und auch nicht quelloffen ist.

    Beste Grüsse aus BaWü
    Alex

    • Günter Born sagt:

      Zum 1. Satz: "leider kann ich auf deinen Originalpost warum auch immer nicht antworten, daher über diesen Weg."

      Die 5. Schachtelungsebene in Kommentaren ist erreicht – dann wird automatisch der Antworten-Link ausgeblendet. Einfach auf eine Kommentarebene höher gehen und mit "@Marc" antworten.

  19. Alexander Fuchs sagt:

    Moin Carsten,

    ups, da hat sich gestern wohl ein kleiner Fehler eingeschlichen.
    Ist in der aktuellen Version bei Github schon behoben.

    Gruss Alex

    • Mira Bellenbaum sagt:

      Hi Alex,
      Backup-Ordner wird zwar erstellt, aber er ist leer.

      Das Log ("WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log")
      liegt immer noch direkt auf C:/

      Konsole mit Adminrechten ausgeführt!

      • Mira Bellenbaum sagt:

        Ich hänge mal die Ausgabe der Konsole an!

        Mode LastWriteTime Length Name
        —- ————- —— —-
        d—– 02.02.2023 13:01 BACKUP
        Create a backup of the existing configuration under C:\BACKUP\WINDOWS10AND11-NETWORK-DESUBOPTIMIZATION.log
        Backup of the existing configuration is finished. :-)
        Start disabling PACKET COALESCING FILTER on Windows TCP-Stack
        Check current state of PACKET COALESCING FILTER
        The PACKET COALESCING FILTER is already disabled, so nothing to do. :-)
        Disabling PACKET COALESCING FILTER has been finished successfully. :-)
        Start disabling RECEIVE SIDE SCALING on Windows TCP-Stack
        Check current state of RECEIVE SIDE SCALING
        The RECEIVE SIDE SCALING is already disabled, so nothing to do. :-)
        Disabling RECEIVE SIDE SCALING has been finished successfully. :-)
        Start disabling RECEIVE SEGMENT COALESCING on Windows TCP-Stack
        Check current state of RECEIVE SEGMENT COALESCING
        The RECEIVE SEGMENT COALESCING is already disabled, so nothing to do. :-)
        Disabling RECEIVE SEGMENT COALESCING has been finished successfully. :-)
        Start TCP congestion controll optimization
        Try to set the congestionprovider of the Datacenter TCP profile to DCTCP
        Try to set the congestionprovider of the Datacenter TCP profile to DCTCP was successfully. :-)
        Try to enable ECN
        Enable ECN was successfully. :-)
        TCP congestion controll optimization is finished successfully. :-)
        Start TCP profile optimization
        Check if the key already exists in the registry.
        The value is present in the registry.
        Checking the already existing parameter.
        The settings are already set correctly, no further measures are required.
        TCP profile optimization is finished successfully. :-)
        Start disabling RSS on all NIC's
        Check if NIC's with RSS support are avaible on this System.
        1 NIC's found on this System that support RSS
        Check RSS Status of NIC Ethernet .
        RSS on NIC Ethernet is already disabled, so, nothing to do. :-)
        RSS has been successfully disabled on all corresponding NIC's or there is nothing to do. :-)
        Start disabling RSC-IPv4 on all NIC's
        Check if NIC's with RSC-IPv4 support are avaible on this System.
        No NIC's installed in this system which support RSC-IPv4, so, nothing to do. :-)
        RSC-IPv4 has been successfully disabled on all corresponding NIC's or there is nothing to do. :-)
        Start disabling RSC-IPv6 on all NIC's
        Check if NIC's with RSC-IPv6 support are avaible on this System.
        No NIC's installed in this system which support RSC-IPv6, so, nothing to do. :-)
        RSC-IPv6 has been successfully disabled on all corresponding NIC's or there is nothing to do. :-)
        Start disabling FLOW CONTROL on all NIC's
        Identify the NICs that actually support FLOW CONTROL.
        Check FLOW CONTROL Status of NIC Ethernet .
        The FLOW CONTROL is already disabled on NIC Ethernet, so, nothing to do. :-)
        FLOW CONTROL has been successfully disabled on all corresponding NIC's. :-)
        Start disabling INTERRUPT MODERATION on all NIC's
        Identify the NICs that actually support INTERRUPT MODERATION.
        Check INTERRUPT MODERATION Status of NIC Ethernet .
        The INTERRUPT MODERATION is already disabled on NIC Ethernet, so, nothing to do. :-)
        INTERRUPT MODERATION has been successfully disabled on all corresponding NIC's. :-)
        Start disabling ENERGY-EFFICIENT-ETHERNET on all NIC's
        Identify the NICs that actually support ENERGY-EFFICIENT-ETHERNET.
        Check EEE Status of NIC Ethernet .
        The EEE is already disabled on NIC Ethernet, so, nothing to do. :-)
        Check EEE Status of NIC Ethernet .
        The EEE is already disabled on NIC Ethernet, so, nothing to do. :-)
        ENERGY-EFFICIENT-ETHERNET has been successfully disabled on all corresponding NIC's. :-)
        Start Receive-Buffer optimization
        Try to set receive buffer size of NIC Ethernet to 8192KB.
        Oops, the NIC Ethernet does not accept a receive buffer size of 8192KB … :-( … never mind … try with a smaller buffer next.
        Try to set receive buffer size of NIC Ethernet to 8184KB.
        Oops, the NIC Ethernet does not accept a receive buffer size of 8184KB … :-( … never mind … try with a smaller buffer next.
        Try to set receive buffer size of NIC Ethernet to 4096KB.
        Oops, the NIC Ethernet does not accept a receive buffer size of 4096KB … :-( … never mind … try with a smaller buffer next.
        Try to set receive buffer size of NIC Ethernet to 2048KB.
        Oops, the NIC Ethernet does not accept a receive buffer size of 2048KB … :-( … never mind … try with a smaller buffer next.
        Try to set receive buffer size of NIC Ethernet to 1024KB.
        Oops, the NIC Ethernet does not accept a receive buffer size of 1024KB … :-( … never mind … try with a smaller buffer next.
        Try to set receive buffer size of NIC Ethernet to 512KB.
        The receive buffer size of NIC Ethernet was successfully configured to 512KB. :-)
        Receive-Buffer optimization is complitly finished.
        Start Transmit-Buffer optimization
        Try to set transmit buffer size of NIC Ethernet to 8192KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 8192KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 8184KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 8184KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 4096KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 4096KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 2048KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 2048KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 1024KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 1024KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 512KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 512KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 256KB.
        Oops, the NIC Ethernet does not accept a transmit buffer size of 256KB … :-( … never mind … try with a smaller buffer next.
        Try to set transmit buffer size of NIC Ethernet to 128KB.
        The transmit buffer size of NIC Ethernet was successfully configured to 128KB. :-)
        Transmit-Buffer optimization is complitly finished.
        Start ACK-Frequency optimization
        Check if the key already exists in the registry for NIC Ethernet .
        The key for NIC Ethernet is present in the registry.
        Checking the already existing key of NIC Ethernet.
        The settings of NIC Ethernet are already set correctly, no further measures are required.
        ACK-Frequency optimization is finished successfully. :-)
        Start TCP-Delay optimization
        Check if the key already exists in the registry for NIC Ethernet .
        The key for NIC Ethernet is present in the registry.
        Checking the already existing key of NIC Ethernet.
        The settings of NIC Ethernet are already set correctly, no further measures are required.
        TCP-Delay optimization is finished successfully. :-)
        !!! To ensure that all changes are applied, the computer must be restarted. !!!

      • Alexander Fuchs sagt:

        Moin Mira,

        ups, das kommt davon wenn man neben fauchenden Hyper-Pfaus und rumzickenden Firewalls auch noch Code korrigieren möchte. 😬
        Hab das Problem soeben behoben (siehe Github), hoffe ich zumindest. 🤪

        Gruss Alex

        • Mira Bellenbaum sagt:

          Jetzt aber.
          Passt, Danke.

          Bist Du noch irgendwie erreichbar,
          außer hier in diesem Beitrag?

          • Alexander Fuchs sagt:

            Moin Mira,
            > „Jetzt aber. Passt, Danke."

            sehr gerne.
            Sobald ich die Zeit finde, dann lernt die BAKLOG auch das mitloggen der vorgenommenen Änderungen noch dazu. 😉

            > „Bist Du noch irgendwie erreichbar, außer hier in diesem Beitrag?"

            Ich hoffe das ist für Günter jetzt OK, dass ich das hier jetzt verrate. Jedoch sind diese Informationen, nicht besonders geheim und stehen eh an duzenden Stellen im Internet.
            Mein Arbeitgeber ist …

            „n-g-i-s.com"

            Wenn du nun davor meinen Vornamen gefolgt von einem Punkt, danach gleich meinen Nachnamen und noch so ne Affenklammer schreibst, dann hast du meine E-Mail Adresse.
            Die Telefonnummer steht auf der Homepage.
            Falls du anrufst und mein Arbeitgeber-Ich der Herr Fuchs rangehen sollte, sag ihm einfach das du gerne mit meinem Techniker-Ich, sprich, dem Alex sprechen möchtest. 🤪

            Beste Grüsse aus BaWü
            Alex

          • Mira Bellenbaum sagt:

            Du bist schon ein bisschen verrückt, oder?

            Werde Dich nicht anrufen, wegen Deines Hobbys.
            Aber Danke.
            Werde mich vielleicht auf "https://administrator.de"
            anmelden, wenn ich zu dem Skript noch etwas nachzufragen
            oder anzumerken habe.
            Dir weiterhin alles Gute.
            Schaue nun öfters mal auf "https://administrator.de" und
            "https://github.com" nach, ob es was Neues gibt.

          • Alexander Fuchs sagt:

            Moin Mira,

            > "Du bist schon ein bisschen verrückt, oder?"

            laut meines Angestellten und meines Hausdrachens nicht oder, sondern ganz bestimmt. 😁

            > "Werde Dich nicht anrufen, wegen Deines Hobbys."

            Du hast da glaube ich was missverstanden, oder ich.
            Ich dachte du hättest vielleicht ein anderes Problem wie z.B. der Andreas hier …
            https://community.spiceworks.com/topic/2474365-one-sided-speed-problem-layer-2-bridge-cambium-v3000-v5000
            und wolltest deshalb meine Kontaktdaten haben.

            Was dieses Thema direkt angeht, so findest du auch bei Spiceworks einen änlichen Beitrag.
            https://community.spiceworks.com/topic/2474204-the-windows-horror-story-season-005-the-tightened-tcp-handbrake-in-w10-11

            Beste Grüsse aus BaWü
            Alex

  20. Alexander Fuchs sagt:

    Moin Zusammen,

    ich möchte das Folgende gerne noch loswerden.

    Wie kann es sein, dass ein und dieselbe Applikation in ein und derselben VM(2012R2) auf einem Hyper-V 2012R2 Node/Cluster, welcher noch mit 2 x Intel Xeon E5-2690 CPU's, DDR3 1333 LRDIMM's, 3G SAS in Richtung Storage und das Storage selbst mit im Vergleich zu heute viel langsameren Controllern und SSD's bestückt war, auf dieser alten Umgebung nun viel schneller gelaufen ist, als auf einem heutigen Hyper-V 2022er Node/Cluster, mit aktueller und laut den Herstellern angeblich viel viel effizienteren und schnelleren Hardware und Software?

    Was ich unter aktuellen Node Hardware verstehe ist z.B. das folgende. 2 x Intel Xeon Gold 6354, DDR4 3000er RAM (lieber mehr wie zu wenig davon) und 48G(4x12G) SAS oder 32G FC Richtung Storage. Und die von uns verwendeten Storagesysteme, bringen heute mit weit über 2Mio IO/s auch weit mehr als das zwanzigfache der Leistung der vor 10 Jahren verwendeten Systeme. Und trotz dieser zum Teil gewaltigen Hardwaremehrleistung, beschwerten sich unsere Kunden in den letzten Jahren zunehmend immer häufiger, dass deren alte Applikationen auf der alten Hardware viel schneller gelaufen sind wie nun auf der Neuen. 😔 🤢🤮

    Daher nochmals, wie kann das sein, wenn doch so gut wie jeder Hardware- und Softwarehersteller, bei so gut wie jeder Neuerscheinung, immer mehr Leistung verspricht?! 🤔

    Und genau dieser Frage gehe ich nun sehr exzessiv nun schon seit über drei Jahren nach, und habe dabei unter anderem auch diesen Murks ausgegraben.

    Wenn ein paar wenige und ich jedoch weiterhin die Einzigen sind die deswegen auf die Palme klettert und versucht an diesem Murks aktiv was zu ändern, dann wird das fürchte ich auch in Zukunft, mit derartigem Murks nicht wirklich besser werden. Denn egal wie hoch wir wenige momentan auf die Palme klettern und egal wie viele Kokosnüsse wir dabei momentan auf den Dickschädel von Microsoft zum Aufwecken werfen, sehen wir wenige momentan absolut keine Bewegung, weil Microsoft mittlerweile ein absolut träger und selbstsüchtiger Riese geworden ist.

    Wenn wir das Thema jedoch gemeinsamer angehen, dann bin ich mir ganz sicher, dass Microsoft diesen „Kokosnusshagel" dann sicher etwas mehr spüren wird. Und umso mehr von uns mitmachen umso eher wird sich dieser Riese auch wieder in die für uns wichtigere Richtung bewegen und nicht nur seinen eigenen Wünschen nachträumen. 😉

    Beste Grüsse aus BaWü
    Alex

    • Jonny E. sagt:

      Hallo Alex,
      interessante Sache, das "alte" Hardware (in deinem Fall Xeon E5-2690 ff) schneller läuft, als neuere Hardware (2 x Intel Xeon Gold 6354 … etc.).

      Kann aber auch an eurem Hypervisor Hyper-V von MS liegen … ?
      Wie gut kann man in Hyper-V den VMs Rechenzeit zuteilen?
      Ich selbst verwende Hyper-V nur privat zu Edu-Zwecken.

      Ich kenne eine Organisation, da wird VMwares ESXi eingesetzt.
      Im (linux-basierten) ESXi kann man den VMs sehr gut CPU-Rechenzeit zuteilen.

      Da wurde 2015 ein (schon aus meiner damaligen Sicht zu schmalbrüstiger) Dual-Socket-Server mit
      Intel Xeon E5-2609 V2 (Ivy Bridge, 2,5GHz; 4 Kerne-kein Hyperthreading, also NUR 8 Cores, 10MB Cache, kein Turbo) und DDR3-1066MHz
      sowie SAS-3G-RAID-10 (mit HDDs 10.000U/min) für bis zu 6 (!!) Windows Server 2012-VMs eingesetzt.
      Bis 3 VMs war das noch i.O. aber der 4. VM häuften sich sich Macken in den Windows-2012-Server-VMs.

      Wir haben dann im ESXi die Prio und CPU-Rechenzeit so gut es ging für die VMs optimiert.

      Schlussendlich war mit den Intel Xeon E5-2609 V2 schlicht nicht genug CPU-Rechenpower vorhanden.
      Da konnte das sehr gute ESXi auch nichts mehr ausrichten. :-(

      Es wurde erwogen, die CPUs gegen dtl. stärkere aber sockelkompatible Intel Xeon E5-2450 V2 (8 Cores incl. Hyperthteading, 20MB Cache, Turbo-Mode und DDR3-1600MHz) zu ersetzen.
      Das wurde aber wegen Risiken verworfen.

      Final wurde ein neuer Dual-Socket-Server mit Intel Xeon Silver 4208, DDR4-2933, RAID-1-Controller und 2 SAS-SSDs
      gekauft. ESXi installiert und die Windows-Server-Vms darauf verschoben und schon wuppte alles wie erwartet,
      deutlich (!!) schneller und nun ohne kuriose Windows-Server-Fehler in den VMs.

      Ich glaube, mit deiner Vermutung, das Windows (in deinem Fall Hyper-V als Hypervisor und ggf. die virtuellen Hyper-V-LAN-Treiber(-Profile) in den VMs) ein bremsender Faktor sein
      könnte, liegst du nicht falsch … ?!?

      Ich denke, es wäre eine gute Idee, das ihr ESXi mal auszuprobiert?
      Da merkst du die Schwuppdizität, sprich zu zunehmende Rechenleistung tatsächlich.
      Von den Serverherstellern wie Fujitsu, Dell und HPE gibt es auch Anleitungen, was wie im UEFI-BIOS für
      welchen Einsatzzweck einzustellen ist.
      (bei Fujitsu: "White Paper BIOS Optimizations for xeon scalable prozessor based systems" im Falle von Primergy-Servern, letzte mir bekannte Ausgabe von 2019)

      Wie immer, es muss natürlich das Gesamtpaket passen …
      CPU + RAM (Menge, Takt), internes Storage (Controller, SSD, IOPS), LAN, FC u.s.w. …

      Ein Porsche Turbo mit 500PS nützt dir nix, wenn du nur 2 Gänge im Getriebe freigeschalten hast und die Reifen nur bis 210km/h freigegeben sind … ;-)

      • Alexander Fuchs sagt:

        Moin Jonny,
        > „interessante Sache, das "alte" Hardware (in deinem Fall Xeon E5-2690 ff) schneller läuft, als neuere Hardware (2 x Intel Xeon Gold 6354 … etc.)."

        das muss ich glaube ich noch etwas relativieren.
        Wenn ich auf der neuen Hardware einer Hyper-V 2012R2 installieren und darauf die angesprochene VM laufen lasse, dann geht das Ding ab wie Schmitz Katze.
        Wenn ich auf der alten Hardware einen Hyper-Pfau 2022 installiere, passiert übrigens dasselbe wie mit der neuen Hardware, sprich die VM läuft mit angezogener Handbremse. 😔

        > „Kann aber auch an eurem Hypervisor Hyper-V von MS liegen … ?"

        Na ja in dem folgenden Beitrag gibt es auch genug VMware Admins die über schlechte Performance fluchen …
        https://community.spiceworks.com/topic/2225989-server-2019-network-performance
        GMobley z.B. ist ein Admin einer ESXi Umgebung mit > 10.000 VM's und hat in dieser mit den VM's auf denen neuere Winows Server installiert sind, +- dieselben Probleme.

        > „Wie gut kann man in Hyper-V den VMs Rechenzeit zuteilen?"

        Die „Zuordnung der Rechenzeit", Priorisierung ist auch beim Hyper-Pfau möglich. Jedoch bring das Ganze bei diesem Problem nicht wirklich etwas, weil das Problem selbst einen viel zu hohen CPU-Verbrauch durch suboptimal per default konfigurierte und oder zu viele aktivierten Features, sprich durch zu viel Overhead, mitunter auch verursacht wird.

        > „Ich kenne eine Organisation, da wird VMwares ESXi eingesetzt."
        > „Im (linux-basierten) ESXi kann man den VMs sehr gut CPU-Rechenzeit zuteilen."

        Auch wenn das jetzt die Pinguin-Fraktion, zu der ich übrigens, zumindest hypervisortechnisch bis 2012 auch gezählt habe, übel nehmen sollte, aber dieser Pinguin ist mittlerweile dank seines mindestens genauso bunten Feature-Reichtums, auch fast genauso vermurkst. 😔
        Google mal einfach nach ESXi und RSC. 😉

        > „…Bis 3 VMs war das noch i.O. aber der 4. VM häuften sich sich Macken in den Windows-2012-Server-VMs."

        War das noch ein 2012 oder ein 2012R2?
        Microsoft hat erst mit dem 2012R2 mit VMware Leistungstechnisch „gleichgezogen".

        > „Schlussendlich war mit den Intel Xeon E5-2609 V2 schlicht nicht genug CPU-Rechenpower vorhanden. Da konnte das sehr gute ESXi auch nichts mehr ausrichten. :-(„

        Ja, wenn du die Nodes mit CPU-Last überstrapazierst, wird's nicht wirklich lustig, aber das Problem ist bei VMware +- dasselbe.

        > „Es wurde erwogen, die CPUs gegen dtl. stärkere aber sockelkompatible Intel Xeon E5-2450 V2 (8 Cores incl. Hyperthteading, 20MB Cache, Turbo-Mode und DDR3-1600MHz) zu ersetzen. Das wurde aber wegen Risiken verworfen."

        Was für Risiken wen ich fragen darf?

        > „Final wurde ein neuer Dual-Socket-Server mit Intel Xeon Silver 4208, DDR4-2933, RAID-1-Controller und 2 SAS-SSDs gekauft. ESXi installiert und die Windows-Server-Vms darauf verschoben und schon wuppte alles wie erwartet,
        deutlich (!!) schneller und nun ohne kuriose Windows-Server-Fehler in den VMs."

        Das glaube ich dir sofort, aber der Leistungszuwachs kam zum grössten Teil nicht durch die schnellere CPU oder den schnelleren RAM oder den ESXi, sondern eher deswegen, weil Ihr von HDD auf SSD's umgestellt habt. 😉
        Ich habe persönlich schon 2010 den ersten IMS (Intel-Modular-Server/Bladecenter) als AllFlash ausgeliefert. Und als der entsprechende Kundenadmin die Performance seines SQL-Servers nach der Migration gesehen hat, bekam er augenblicklich Tränen in den Augen und hat mich kurz danach vor lauter Freude umarmt.

        > „Ich glaube, mit deiner Vermutung, das Windows (in deinem Fall Hyper-V als Hypervisor und ggf. die virtuellen Hyper-V-LAN-Treiber(-Profile) in den VMs) ein bremsender Faktor sein könnte, liegst du nicht falsch … ?!?"

        Das ist keine Behauptung, ich kann das jederzeit belegen.
        Jedoch ist nicht der Hyper-Pfau selbst grundsätzlich das Problem, sondern eher die für Normalsterblichen meist eher unnützen Features, die zunehmend immer mehr und mehr an diesen geklebt werden. 😔

        > „Ich denke, es wäre eine gute Idee, das ihr ESXi mal auszuprobiert?"

        Wie schon gesagt, das bringt mich bei dem Problem auch nicht weiter, den die VM's bleiben ja Windows.

        > „Da merkst du die Schwuppdizität, sprich zu zunehmende Rechenleistung tatsächlich.Von den Serverherstellern wie Fujitsu, Dell und HPE gibt es auch Anleitungen, was wie im UEFI-BIOS für welchen Einsatzzweck einzustellen ist. (bei Fujitsu: "White Paper BIOS Optimizations for xeon scalable prozessor based systems" im Falle von Primergy-Servern, letzte mir bekannte Ausgabe von 2019)"

        Nein, nichts B-Brand Server, wir verwenden ausschliesslich den unkastrierten A-Brand, sprich die Server von Intel. 😉
        So +- folgende …
        https://web.archive.org/web/20230407194039/https://ark.intel.com/content/www/us/en/ark/products/192590/intel-server-system-r2208wftzsr.html
        (Vorsicht, an alle die bei dieser Aussage in Angrifsmodus gehen, ich kann diese ziemlich gut verteidigen. 😎)

        > „Wie immer, es muss natürlich das Gesamtpaket passen … CPU + RAM (Menge, Takt), internes Storage (Controller, SSD, IOPS), LAN, FC u.s.w."

        👍👍👍

        > „Ein Porsche Turbo mit 500PS nützt dir nix, wenn du nur 2 Gänge im Getriebe freigeschalten hast und die Reifen nur bis 210km/h freigegeben sind … ;-)"

        Jetzt komm, im zweiten Gang kommst du bei einem Porsche jetzt auch nicht weit über +- 100 km/h, daher ist das mit den Reifen bis 210 km/h jetzt auch nicht ganz so schlimm. 🙃

        Und wenn wir, also du mit diesem Porsche und ich mit einem auf 100 km/h gedrosselten Ferrari, uns zu einem kleinen Rennen treffen, dann könnte es wahrscheinlich dennoch etwas spannend/lustig werden. 🤪

        Was mich persönlich angeht, so würde ich mit dir jedoch lieber ein Rennen fahren, wo dein Porsche 911 GT3 RS sein 7 Gang Getriebe und anständige Reifen hat, das würde uns beiden sicherlich mehr Spass machen und den möglichen Zuschauern wahrscheinlich auch. 😁

        Beste Grüsse aus BaWü
        Alex

  21. Alexander Fuchs sagt:

    Moin Zusammen,

    ich habe soeben einen neuen Post zu diesem Thema mit ein paar weiteren Details die vor allem die Techniker unter uns interessieren sollten, veröffentlicht.

    https://administrator.de/tutorial/wie-man-das-windows-10-und-11-tcp-handling-wieder-desuboptimieren-kann-5529700198.html#comment-5854778383

    Beste Grüsse aus BaWü
    Alex

  22. Christian V. sagt:

    Derlei "Altlasten" ist man sich von Microsoft schon lange gewohnt. Bspw. ist auch die Speicherverwaltung von Windows immer noch aus der Steinzeit und seit NT4 kaum angepasst worden. Ich mache jedenfalls immer wieder resp. immer noch die Erfahrung, dass die (Arbeitsspeicher-)Verwaltung in Sachen Performance erst richtig in die Gänge kommt, wenn man doppelt so viel Diskspace als SWAP-Space zuweist, als "richtiger" Arbeitsspeicher vorhanden ist. Dies notabene auch auf Systemen, wo absolut kein RAM-Mangel besteht und effektiv nicht auf den SWAP-Space ausgelagert wird. Mit diesem "Trick/Workaround" habe ich schon öfters Windows-Systeme optimieren können. Die Systeme arbeiten nach Anpassung in der Regel irgendwie "flinker" obwohl man in Benchmarks keinen wirklichen Unterschied sieht. Beim aktuellen Arbeitsgeber betreibe ich u.a. mehrere Lizenzserver, welche viele Windows-Services enthalten. Deren Boot-/Reboot-Verhalten hat sich mit dieser simplen Anpassung sehr positiv geändert (grundsätzlich schnellerer Start und seltener Dienste, welche sich aufhängen).

  23. Alexander Fuchs sagt:

    Moin Zusammen,

    ⏰⏰⏰⏰⏰⏰⏰⏰⏰⏰

    das ist ein dringender Weckruf, vor allem an die ganzen Zweifler die sich zwischendurch auch hier gemeldet haben!

    Details siehe hier …
    https://administrator.de/tutorial/wie-man-das-windows-10-und-11-tcp-handling-wieder-desuboptimieren-kann-5529700198.html#comment-5889110870

    Aufwachen, bitte bitte aufwachen!

    @CT/Heise
    Wäre auch schön wenn ihr euch aktiv mit einklinkt.

    Beste Grüsse aus BaWü
    Alex

  24. Friedemann sagt:

    Hallo an alle, urlaubsbedingt konnte ich das Thema TCP-Murks in den letzten Tagen nur an Rande mit verfolgen und ich weiß auch, das es inzwischen von Günter diesbezgl. 2 weitere Artikel hier auf dem Blog gibt.
    Ich wollte nur mal meine Erfahrungen begl. des Scriptes von Alex mitteilen, da dieser Blogbeitrag ja der Ursprung des Themas TCP-Murks für viele war.
    Script-Versionen:
    Was die Versionierung angeht, ist es so, dass das Script V 1.08 das letzte PS-Script ohne Backup-Funktion, aber voll funktionstüchtig ist? Alex, korrigiere mich bitte, wenn ich da falsch liege. Dieses Script funktioniert m.E. einwandfrei und hinterlässt (soweit ich das erkennen kann), keine (offensichtlichen) verfolgbaren Spuren (Logs unter C:\ auf dem PC?
    Wenn ich das Script 1.08 also auf einem PC ausführe und neu starte, könnte niemand die Änderungen durch das Script erkennen, es sei denn, er sucht danach … ( get-NetTCPConnection -> Datacenter statt Internet)
    Das Script V 1.11 die aktuellste mit Backup-Funktion, die ich aber bisher mangels Zeit und verfügbarer Maschinen nicht testen konnte.

    Erfahrungen:
    Ich habe bisher das Script auf einigen PCs und Notebooks (insgesamt ca.15 Stk., alle mit 1 GBit-LAN angebunden, auch die Notebooks LAN 1 GBit und WLAN) laufen lassen.
    Die Schwuppdizität aller Netzwerkverbindungen (Internet & Intranet) hat sich deutlich verbessert. Es ist nicht mit der Stoppuhr messbar, aber spürbar.
    Als "alter" ITler (30 Jahre EDV) habe ich da ein sehr gutes Gefühl dafür und die Auswirkungen sind für mich spürbar.
    "Normale" Nutzer merken die Verbesserungen auch, kommunizieren dies meist aber nur auf Nachfrage … "Ja, der Web-Mailclient ist deutlich schneller …" oder Google Maps baut sich dtl. schneller auf …" Daumen hoch, Alex – Vielen Dank für deine Arbeit.
    Negative Nebenwirkungen? Bisher keine (zumindest sind mir keine aufgefallen).

    Insgesamt betrachtet ist es doch so, verbessert mich ,wenn ich falsch liege:
    Serverseitige MS-OS, egal ob Bare Metal oder VM-Server, laufen die
    Netzwerkverbindungen im DataCenter-Profil? Heisst, die Server-NIC arbeitet software-seitig optimiert für Hochlastbetieb, was m.E. ja korrekt ist. (sagen wir mal Speed 100 km/h).

    Client-seitig kommen dann Win7 ff mit dem "Internet-Profil" LAAHHHMMM an und bremsen durch (künstlich) eingebremste Kommunikation den Server aus, weil der sich auf das Niveau des Clients "herab begeben" muss. (sagen wir mal Speed 35 km/h).
    Alex sein Script stellt auf dem Client mit der Profiländerung auf DataCenter die max. mögl. 100 km/h und beide Seiten, Server & Client, können auf gleichem Speedniveau arbeiten/kommunizieren.

    @Alex: Nochmals Vielen Dank, für deine Analysen, Recherchen und natürlich für das funktionierende Script. Ich hoffe, MS nimmt sich der Sache mal an …

    @Günter: Vielen Dank, das du das Thema aufgegriffen hast.

    Ich hoffe, ich konnte etwas positiv zum Thema beitragen.

    • Günter Born sagt:

      Danke für die Rückmeldung.

      Es ist teilweise noch komplexer – die Geschichte wird hier auch noch weiter gehen. Eine der letzten Mail von Aleander

      Übrigens, bei einem meiner Kunden konnte ich bei einem Windows 10 Rechner sogar beobachten, dass dieser automatisch das richtige Profil gemäss der RTT wählt. Das automatische Profil-Handling ist laut Microsoft jedoch nur in Serverbetriebssystemen implementiert. Warum dieser Client das doch kann, habe ich bisher noch nicht rausfinden können.

      Alles Voodoo – und es gibt noch einige andere Böcke – muss nur Zeit finden, das zu sortieren. Kommt aber alles.

  25. Herbert sagt:

    Hallöchen, was mache ich falsch?

    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
    "F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1" ausführen?
    [N] Nicht ausführen [M] Einmal ausführen [H] Anhalten [?] Hilfe (Standard ist "N"): M
    In F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:202 Zeichen:17
    + Sign up
    + ~
    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 F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:207 Zeichen:209
    + … k Button–medium Button d-lg-none color-fg-inherit p-1"> <span cla …
    + ~
    Der Operator "<" ist für zukünftige Versionen reserviert.
    In F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:425 Zeichen:13
    + CI/CD & Automation
    + ~
    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 F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:96
    + … ="" data-disable-with="" data-dropdown-tracking="{"type":&q …
    + ~
    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 F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:103
    + … a-disable-with="" data-dropdown-tracking="{"type":"blo …
    + ~
    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 F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:146
    + … "type":"blob_edit_dropdown.more_options_click",&q …
    + ~
    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 F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:153
    + … type":"blob_edit_dropdown.more_options_click","co …
    + ~
    Ausdruck fehlt nach dem unären Operator ",".
    In F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:153
    + … ype":"blob_edit_dropdown.more_options_click","con …
    + ~
    Unerwartetes Token "&" in Ausdruck oder Anweisung.
    In F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:166
    + … ot;blob_edit_dropdown.more_options_click","context":{& …
    + ~
    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 F:\downloads\direct\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1:1439 Zeichen:193
    + … options_click","context":{"repository_id":59 …
    + ~
    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: (:) [], ParseException
    + FullyQualifiedErrorId : AmpersandNotAllowed

    Danke für jeden Tip
    Grüße

    • Gunter sagt:

      Ich denke, das dir
      1. die Adminrechte fehlen ? Powershell-cmd als Admin ausführen!
      und
      2. Executionpolicy auf restriced gesetzt ist.

      Alex sein Tip hilft sicherlich: da reicht nur 1.
      1. Powershell ISE als Admin starten
      2. das Schript per Copy & past in die ISE reinfügen und per Enter oder F5 ausführen.
      3. Reboot

    • Steffen sagt:

      Servus,

      Code von Github markierne und kopieren, und auf deinem REchner in einer PS1-Datei einfügen.

      Das sollte evtl. helfen…

      So long, Stfn

      • Charlie sagt:

        Bei mir kamen die gleichen Fehler, das kopieren des Scripts in eine Datei hat geholfen.

        Die Downloaddatei war auch 459kb groß, die selbst erstellte 39kb. Beim Download ist der ganze html Code dabei, das sorgt für die Fehler…

        Was bringt's? Bei mir ist es beim Browsen im Internet tatsächlich einen Tick schneller geworden. Der Erstaufruf der Seiten geht schneller. 👍

    • Silverstream sagt:

      Nicht das Script über rechte Maustaste => "Link speichern unter" runterladen – da kommt natürlich die Webseite mit dem Link mit.

      Draufklicken, Code kopieren in die Powershell ISE und glücklich sein :)

  26. bk sagt:

    Guten Tag,

    ich habe ein paar Fragen:

    1. Das Script rennt sofort los, und zwar ohne Nachfrage oder Warnung (ie. "This script does this and that, are you sure you want to do that (y/n)?" Warum?

    2. Das Script kennt keine Optionen – ie. -Help, -DryRun, -Simulate, -Check, -RestoreBackup oder Ähnliches. Warum?

    2.1 Insbesondere sollte ein "DryRun" möglich sein, der prüft ob die Verschiedenen Optionen / Registry-Keys usw. überhaupt existieren, so daß das Script erfolgreich durchlaufen kann / könnte.

    3. Das Script legt ein "Backup" an, bei dem es sich allerdings einfach um ein Logfile handelt. Es wird nirgends erklärt wie man dieses "Backup" wieder zurückspielt. Warum?

    Vielen Dank für Ihre Aufmerksamkeit.

    • Günter Born sagt:

      Danke für die Gedanken und Fragen. Ich denke, Alexander wird noch antworten und sich überlegen, ob und wann er was aufgreift. Ad-hoc hier mal einige Antworten zu den Fragen und eine gewisse Einordnung von meiner Seite:

      zu 1: Es wird vorausgesetzt, dass die Nutzer des Scripts sich Gedanken darum machen, was dieses tut und das auch halbwegs verstehen. Es ist eben keine Point-and-Click-Lösung. Da der Quellcode vorliegt, jeder diesen anpassen kann, und das Ganze keinen kommerziellen Zweck verfolgt, gibt es für Alexander keine Veranlassung das ad-hoc einzubauen. Ob er das noch ergänzen will, bleibt ihm überlassen.

      zu 2: Aus den unter 1 genannten Gründen ist das ein Nice to have-Thema – kann man implementieren, muss man aber nicht.

      zu 2.1: Geht ähnlich wie bei 1 aus – Alexander hat für sich bzw. seine Arbeit das PS-Script erstellt. Für ihn tut das Script, was er braucht. Auf Grund der Diskussionen hier im Blog hat er das Script a) auf Github als Single Source bereitgestellt (vorher war es in zig Forenposts in verschiedenen Versionen zu finden) und b) einige kleinere Erweiterungen wie ein Backup in Form eines Logs ergänzt. Aber immer beachten: Er hat das Script für sich selbst geschrieben, stellt es kostenfrei der Allgemeinheit bereit und war so nett, das eine oder andere zu optimieren. Eine Implementierung von "DryRun" etc. ist in meinen Augen erst einmal nicht angebracht – es steigert die Komplexität und Fehleranfälligkeit in meinen Augen, ohne den Leuten, die verstehen, was es macht, zu helfen. Ich kenne noch die ersten Versionen des Scripts, wo es nur aus wenigen Zeilen bestand – inzwischen ist es bereits recht umfangreich, was das Ganze viel komplexer macht.

      Zu 3 und meinen obigen Ausführungen mag Alexander noch was dazu schreiben – es ist sein Projekt, sein Script und seine (in zahllosen Stunden geleistet) Arbeit. Wenn Alexander die Ideen aufgreift und umsetzt -> schön. Wenn er das nicht tut -> auch in Ordnung. Weder Alexander Fuchs noch meine Wenigkeit müssen oder wollen da was "verkaufen", sondern weisen auf einen bestimmten Sachverhalt hin. Ab da liegt der Ball im Feld des interessierten Lesers. Vielleicht hilft es bei der Einordnung.

      • Alexander Fuchs sagt:

        Moin Günter,

        👍👍👍, du hast den Nagel 1A in der Mitte getroffen und mit einem Schlag auch versenkt.

        Vielleicht noch Eins.
        Ich wollte mit dem Skript, einfach nur zum Nachdenken anregen und mir nicht noch mehr Arbeit bescheren, als ich eh schon habe. 😔

        Beste Grüsse aus Murrhardt
        Alex

  27. Herbert sagt:

    Hallo Gunter,
    Admin Rechte waren natürlich vorhanden.
    Selbst mit der Execution Policy auf unrestricted hat es nicht funktioniert.

    Aber das ganze per ISE hat funktioniert.

    Warum nicht anders, weiß niemand so genau. :)

    Dankeschön!
    Grüße

    • Alexander Fuchs sagt:

      Moin Herbert,

      > "Aber das ganze per ISE hat funktioniert."

      😯 … OK … mit ohne ISE habe ich das Skript eigentlich noch nie getestet … 🤔
      Kommt auf die To-Do Liste, aber nicht mehr diese Woche.

      Gruss Alex

      • Gunter sagt:

        @Alex & Herbert (und natürlich alle anderen interessierten):
        Ich habe das V1.11-PS-Script auf einer Testmaschine in der PS-Shell (ohne ISE) laufen lassen, es funktioniert wie erwartet, einwandfrei.
        Warum das bei Herbert nicht funktioniert … ?

        BTW – Immer im Hinterkopf behalten:
        In 95% der Fälle sitzt der Fehler vor dem Display … ;-)

        Nix für ungut! ;-)

  28. Anonymous sagt:

    Ich wünschte ich hätte Messwerte, aber ich kann schon vom Gefühl her sagen, dass Webseiten mit den Änderungen doch deutlich flotter laden. Vielen Dank :)

  29. Chris sagt:

    Moin Günther,

    danke für das Skript – soeben getestet bei Betrachtung großer Bilddateien (~17 MB pro Bild von SLR-Kamera) die auf einer Synology DS-216+II (angebunden über GBit Ethernet) liegen.

    Vor Installation – Bild wird in der Windows Foto-Anzeige flott als leicht verpixelte Vorschau geladen und ist nach 0,5-1 Sekunden in voller Auflösung zu sehen. Wechselt man auf das nächste Bild, gleiches Verhalten. Geht man schnell vor zu weiteren Bildern, dann stockt die Anzeige teilweise komplett.

    Nach Installation – Bild wird in der Windows Foto-Anzeige sofort in voller Ausführung dargestellt und ein Browsen durch die Bilder führt zu keinem Delay mehr. Auch nicht bei schnellem Wechsel der Bilder. 👍

    Ausführung des Skripts als Admin in der PS auch ohne jedes Problem oder Fehlermeldung.

    Danke nochmal.

    • Gunter sagt:

      Na das sind ja mal Aussagen! Super Ergebnis – Nicht nur spürbar, sondern auch wirklich SICHTBAR! :-)

      Danke für deine Rückmeldung Chris!

      Alex wird sich sicherlich freuen! YES YES YES!!!! :-)

  30. Felix B sagt:

    Hallo zusammen,

    scheine es nicht ordentlich verstanden zu haben. Ich habe da Scripte eingespielt (v. 1.11) um mal zu sehen, ob sich Latenztechnisch bei Spielen etwas ändert. Ich kann leider keine Verbesserung unter Windows 11 feststellen. (Vorher-Nachher Videos gemacht). Jetzt wollte ich das Backup meiner Registry zurückspielen, was natürlich irgendwo fehlschlägt … Das Backup, was automatisch angelegt wird ist, wenn ich es richtig verstehe, kein Backup sondern nur eine Dokumentation des vorherigen Zustandes. Sprich das zurückspielen muss ich manuell einzeln eingeben, anhand der Befehle im Script, oder?

    Danke und viele Grüße
    Felix

  31. Georg sagt:

    Kann jemand einschätzen, inwieweit das die lokale Kommunikation – also localhost – beeinflusst? Bei einem ersten schnellen Versuch kann ich weder gefühlt noch gemessen einen Unterschied feststellen.
    Das könnte natürlich auch daran liegen, dass das Script localhost nicht anfasst – mir ist nicht ganz klar, ob er da nur die physischen NICs iteriert…
    Wäre für uns nicht ganz uninteressant, weil wir Kunden mit lokal laufenden Datenbanken (Actian Zen) haben…

    • Alexander Fuchs sagt:

      Moin Georg,
      > "Kann jemand einschätzen, inwieweit das die lokale Kommunikation – also localhost – beeinflusst? Bei einem ersten schnellen Versuch kann ich weder gefühlt noch gemessen einen Unterschied feststellen."

      bei rein lokaler Kommunikation wird dir das Skript nicht viel helfen, da diese ja nicht wirklich über die NIC's läuft.

      > "Wäre für uns nicht ganz uninteressant, weil wir Kunden mit lokal laufenden Datenbanken (Actian Zen) haben…"

      Laufen die als VM auf einem Hyper-V 2019/2022?

      Gruss Alex

      • Georg sagt:

        Hi Alex,

        danke. Ich hab' das noch nicht intellektuell durchdrungen, als ich den Post geschrieben habe – ich hab' mitterweile quergelesen, was da im Herbst schon an Vorgeschichte lief. Ziemlich cool und danke, dass Du da die Energie hineingesteckt hast…

        Actian Zen: Nee. das ist ein sehr gut gereiftes Windows-RDBS. Nur ganz wenige haben das virtualisiert. Sagt Dir Brieve (https://en.wikipedia.org/wiki/Btrieve) was? Da kommt das her… Das ist nicht so schlimm, dass das alt ist – unser Produkt wird nächstes Jahr auch 40 (oder sogar 42?) Jahre alt ;)

        Allerdings gibt es auch Kunden, die das zentral für mehrere Arbeitsplätze laufen lassen. Ich kann das aus dem Stegreif nicht prüfen – da allerdings läuft das natürlich über NICs.

        Ich muss mal die Tage sehen, ob und wie ich das qualifizieren und quantifizieren kann – weil wir dann natürlich unseren Kunden da durchaus einen Tipp zukommen lassen wollen würden…. ;)

        Grüße,
        Georg

  32. Pieter sagt:

    Hallo Alexander

    Als fast Noob in Sachen Netzwerk habe ich den Script laufen gelassen, alles problemlos. Und nach dem Booten ist die Maschine (AMD) spürbar schneller, reagiert besser.

    Natürlich rein subjektiv. Aber: nach meinen langjährigen Erfahrungen als Hardware Techniker muss eine Leistungszunahme deutlich über 20% liegen damit der User etwas bemerkt.

    Ich kann also eine erhebliche Verbesserung bestätigen.

    Vielen Dank!

  33. Andreas Kohl sagt:

    Funktioniert auf Win10 und Win11 Rechner. Danke.

  34. Ralph sagt:

    Leider muss ich mitteilen, dass mit diesen Einstellungen ein Kopiervorgang von großen Dateien per Robocopy von einem Netzlaufwerk auf einen externen Datenträger das System tu diesem Zeitpunkt eigentlich unbenutzbar macht.
    Das System hängt immer wieder für bis zu eine Sekunde, der Cursor friert ein.

    Ich habe alles wieder zurückgebaut.

  35. Marius sagt:

    Hallo Alex,

    zunächst einmal vielen Dank für das Skript. ich habe es auf meinem Notebook Lenovo ThinkPad T14 Gen 1 (AMD Ryzen) laufen lassen und es bringt deutlich mehr Schwuppdizität. Ein großes Danke dafür!

    Vielleicht noch als Input:
    https://www.deskmodder.de/blog/2023/02/25/intel-netzwerk-treiber-28-0-fuer-windows-11-10-8-1-und-server-versionen-sind-erschienen/

    Im Changelog bei Deskmodder steht einiges zu RSS, und auch sowas:
    "Der Ice-Treiber weist jetzt Sende-/Empfangswarteschlangenpaare zu, die der Anzahl der CPU-Threads des lokalen Knotens entsprechen, wobei die folgenden Einschränkungen gelten:

    Der Treiber weist mindestens 8 Warteschlangenpaare zu, oder die Gesamtzahl der CPUs, je nachdem, was niedriger ist."

    Könnte das ein Hinweis sein, dass Intel für seine NICs hier versucht, besser zu werden?
    Oder geht das eher in die Richtung, was Günther meint bzgl. langsamer Datentransfer unter Windows 11-Maschinen, bei denen nur ein CPU-Thread genutzt wird. ?

    Schönes Wochenende und DANKE nochmal für das Skript.

    • Alexander Fuchs sagt:

      Moin Marius,

      auch dir vielen Dank für dein Feedback.
      Betreff dem Thema mit den Warteschlangen bei Intel.
      Ich habe mir den Post durchgelesen und hoffe, dass diese Bemerkung darin nur für NIC's > 5G gilt. Darunter ist es einfach Blödsinn RSS zu verwenden, weil der Einsatz von RSS nicht nur mit Vorteilen verbunden ist.
      Siehe diesbezüglich auch …
      https://community.spiceworks.com/topic/post/10260263

      > "Könnte das ein Hinweis sein, dass Intel für seine NICs hier versucht, besser zu werden?"

      Wenn die Aussage für =>10G NIC's gilt, dann ja.
      Wenn die Aussage auch für NIC's <10G gelten sollte, dann haben ein paar bei Intel die Vor- aber auch Nachteile von RSS wohl doch noch nicht so ganz geschnallt.

      Beste Grüsse aus BaWü
      Alex

  36. Karl sagt:

    Moin Günter,
    habe jetzt auch mal das Script auf meinen Win10 22H2 Enterprise installiert und habe sofort feststellen können das Webseiten,Bilder und Verbindungen zum Nas wesentlich geschmeidiger laufen, eben die kleinen Dinge im Leben.
    Ich besuche oft einige langsame Foren, die womöglich auch nicht die super Technik-Komponenten vor Ort haben, dort habe ich sofort feststellen können das die Ladezeiten (Firefox) um ein vielfaches schneller geworden sind.

    Ein Tipp noch für Leute die dieses Scipt nicht über die PowerShell installiert bekommen, aus welchen Gründen auch immer. Es gibt den Befehl "Unblock-File", wird von Microsoft auch dokumentiert.
    Die Zeile sieht dann so aus:
    Unblock-File .\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1

    Danach das Scrip nochmal starten:
    pfad…….\.\W10ANDW11-NETWORK-TCP-DESUBOPTIMIZATION.ps1

    LG

    • Alexander Fuchs sagt:

      Moin Karl,

      vielen Dank für dein Feedback.

      > "Ein Tipp noch für Leute die dieses Scipt nicht über die PowerShell installiert bekommen, aus welchen Gründen auch immer."

      mit der aktuellen Version die in Github veröffentlicht ist, sollte dieses Problem nicht mehr auftreten. :-)

      Gruss Alex

  37. Rolf Witt sagt:

    Ganz so einfach scheint das alles nicht zu sein:

    NETIO-Bench nach der Optimierung durch das Script:
    NETIO – Network Throughput Benchmark, Version 1.33
    (C) 1997-2012 Kai Uwe Rommel

    TCP connection established.
    Packet size 1k bytes: 21.74 MByte/s Tx, 73.17 MByte/s Rx.
    Packet size 2k bytes: 19.84 MByte/s Tx, 73.02 MByte/s Rx.
    Packet size 4k bytes: 24.67 MByte/s Tx, 74.55 MByte/s Rx.
    Packet size 8k bytes: 27.04 MByte/s Tx, 74.47 MByte/s Rx.
    Packet size 16k bytes: 27.14 MByte/s Tx, 74.53 MByte/s Rx.
    Packet size 32k bytes: 25.49 MByte/s Tx, 74.23 MByte/s Rx.
    Done.

    Nach dem Einspielen des Backups der Netzwerkeinstellungen:
    NETIO – Network Throughput Benchmark, Version 1.33
    (C) 1997-2012 Kai Uwe Rommel

    TCP connection established.
    Packet size 1k bytes: 111.95 MByte/s Tx, 110.12 MByte/s Rx.
    Packet size 2k bytes: 112.37 MByte/s Tx, 109.71 MByte/s Rx.
    Packet size 4k bytes: 112.91 MByte/s Tx, 111.98 MByte/s Rx.
    Packet size 8k bytes: 113.05 MByte/s Tx, 111.89 MByte/s Rx.
    Packet size 16k bytes: 113.15 MByte/s Tx, 111.88 MByte/s Rx.
    Packet size 32k bytes: 113.20 MByte/s Tx, 111.72 MByte/s Rx.
    Done.
    Der Test wurde mit einem AMD-3700X-System mit Realtek 2,5GB (1GB Connect) NIC unter Windows 11Pro gegen ein etwas betagtes Intel i5 System unter Freebsd gefahren.
    Und das Umschalten durch das Script auf Datacenter Profil hat auch nicht funktioniert.
    Natürlich habe ich jeweils einen Reboot des Rechners durchgeführt.
    In dem Fall scheinen die Windows-Defaults plus dem Einschalten von Flusskontrolle auf beiden Seiten (Switch und Netzwerkadapter) die bessere Option zu sein.

    • Georg sagt:

      Allerdings ist Netio schon auch sackalt… das invalidiert das Ergebnis nicht automatisch, macht aber weitere Investigation nötig. ;)

    • Alexander Fuchs sagt:

      Moin Rolf,

      ja, dieser negative Effekt tritt leider bei manchen Usern auf.
      Das Problem liegt aber nicht an meinem Skript, sondern an den zerschossenen TCP/WINSOCK Einstellungen des entsprechenden Rechners.
      Siehe diesbezüglich auch diverse Posts bei administrator.de.

      Das Problem lässt sich aber folgend beheben.
      Zuerst bitte in einer als Administrator gestarteten Eingabeaufforderung das folgende ausführen …


      netsh winsock reset
      netsh interface tcp reset

      dann Rechner Neustarten.
      Danach Optimierungsskript laufen lassen und danach Rechner nochmals neustarten und schon sollte es besser sein.

      Hast du die neusten Treiber für deine NIC installiert?

      Beste Grüsse aus BaWü
      Alex

  38. Bert sagt:

    Hallo an alle, insbesondere Alex,
    ich habe gerade eben einen "etwas älteren Patienten" (Samsung-Notebook Bj.ca.2010/2011 (mit Intel Pentium Dualcore, 8GB RAM und SSD, Win10-22H2-64bit und WLAN) mit deinem Script getunt.
    Vor der Script-Ausführung war die Teamviewer-Remotedesktopgeschichte gewohnt "zäh".
    Nach deinem Script (incl. Reboot) ist die Schwuppdizität (tolles Wort, was ich hier gelernt habe … :-) lokal und remote via Teamviewer DEUTLICH besser!!! :-)

    Vielen vielen Dank!!! :-)

    Bert

  39. Klausi sagt:

    Hallo Alex und alle anderen User/Tester,
    ich habe das Optimierungsscript jetzt auf ca. 20 PCs/Notebooks erfolgreich laufen.

    Nur ein Notebook (W10 Pro 22H2) "spinnt" LAN/WLAN-seitig manchmal etwas rum (mit seltsamen Einträgen im Ereignissprotokoll und Rückfall auf 100MBit statt 1 GBit/s LAN)
    Ich habe den Verdacht, das die vom Script gemachten Einstellungen bzgl. der LAN/WLAN-Adapter sich mit MS Hyper-V (hier insbesondere V-Switch/V-LAN-Adapter verdächtig?)
    und/oder
    der Software Wireless Autoswitch (oft auf Notebooks im Einsatz)
    https://www.wirelessautoswitch.com/Home.aspx
    nicht so richtig verträgt?
    Ich habe als erstes mal die Hyper-V-Rolle deaktiviert, das aktuelle Script V 1.14 nochmal laufen lassen und seither läuft das Notebook LAN-seitig seit einigen Stunden unauffällig und mit 1 GBit-LAN …

    Habt ihr da Erfahrungen ?

    • Alexander Fuchs sagt:

      Moin Klausi,

      > "Nur ein Notebook (W10 Pro 22H2) "spinnt" LAN/WLAN-seitig manchmal etwas rum (mit seltsamen Einträgen im Ereignissprotokoll und Rückfall auf 100MBit statt 1 GBit/s LAN)."

      ja, mit einigen W10 Clients gab es leider ein paar unerklärliche Probleme.
      Diese liessen sich jedoch mit einem vorherigen ausführen eines TCP und WINSOCK Resets, meistens beheben.
      Daher und auch aus ein paar anderen Gründen, habe ich heute den TCP und WINSOCK Reset, mit in die aktuelle Skriptversion (V1.15) integriert.

      > "Ich habe den Verdacht, das die vom Script gemachten Einstellungen bzgl. der LAN/WLAN-Adapter sich mit MS Hyper-V (hier insbesondere V-Switch/V-LAN-Adapter verdächtig?)"

      Ähm, das Skript ist nicht wirklich zur Ausführung auf einem Hyper-V Host gedacht, weil man auf diesen viel filigraner optimieren muss.

      Du solltest bei einem aktivierten Hyper-V z.B. nicht wirklich RSS und oder den PACKET COALESCING FILTER abschalten, weil sonst das SDN (vSwich, vNIC's, vmNIC's) nicht sauber initialisiert werden kann.

      In dem Fall (Uplink = 1G) sollte man das RSS der NIC die als Uplink für den vSwitch dient, nicht deaktivieren, sondern auf die Nutzung von nur einem RSS-Prozessor und einer RSS-Queue eingrenzen.

      Ferner sollte bei einer Hyper-V-Umgebung, natürlich alle anderen Features, wie z.B. RSC, IM & Co., auf der SDN Ebene natürlich auch deaktiviert werden.

      Übrigens, bei Hyper-V's ab Windows 10/Server 2019 gibt es noch eine weitere, ebenfalls nicht zu unterschätzende Handbremse.

      Führe auf dem entsprechenden Rechner mal das folgende aus …
      (CMD als Administrator)
      "bcdedit /set hypervisorschedulertype Classic"
      Danach Rechner neu starten und schon laufen deine VM's viel schneller und fressen dabei auch noch weniger Ressourcen. 😉

      !!! Vorsicht !!!
      Wer den oberen Vorschlag auch gleich auf seinem Hyper-V Cluster umsetzten möchte, sollte unbedingt beachten, dass diese Einstellung auf allen HV-Nodes gleichzeitig gemacht werden muss und danach alle Nodes und VM's dieses Clusters, neu gestartet werden müssen!

      Beste Grüsse aus BaWü
      Alex

  40. Klausi sagt:

    Hallo Alex, danke für die schnelle Rückinfo.

    Mit Hyper-V auf dem (Videoschnitt-) Notebook experimentiere ich nur ab und zu mal rum (diverse "alte" OSes) … nix produktives.
    Also war meine Vermutung in Richtung Hyper-V richtig.

    Hab Hyper-V-Rolle deaktiviert und läuft.
    Und MS-Server habe ich zu Hause privat nicht am laufen … ;-)

    Muss ich halt einen anderen PC für Hyper-V nutzen … Good to Know, auch für alle anderen Nutzer!

    Das Fazit wäre dann? Hyper-V auf dem MS-Client – Finger weg von Alex Script !?!?!

    Bräuchte man ein angepasstes Script für MS-Clients mit Hyper-V ?

    • Alexander Fuchs sagt:

      Moin Klausi,

      kleiner Nachtrag.

      Vergiss bitte wieder ganz schnell das folgende …

      "Jain, wenn du in der aktuellen Version (1.15) die Zeilen 148 bis 217 und 380 -432 auskommentierst oder löschst, dann sollte das Skript auch auf einem Windows 10/11 mit installiertem Hyper-V keine Probleme bereiten."

      und schau dir mal die aktuelle Skriptversion (2.00) bei GitHub an. ;-)

      demzufolge kann ich betreffend dem folgenden …

      > "Das Fazit wäre dann? Hyper-V auf dem MS-Client – Finger weg von Alex Script !?!?!"

      nun definitiv mit nein kontern. :-)

      Die nächsten Skripterweiterungen werden übrigens höchstwahrscheinlich den Hyper-V Part betreffen. ;-)

      Beste Grüsse aus BaWü
      Alex

      P.S. Oh je, jetzt habe ich die Postreihenfolge irgendwie durcheinandergebracht … sorry.

      • Klausi sagt:

        Moin Alex,
        "20. März 2023 um 00:44 Uhr" … du konntest wohl wegen meinem Post nicht schlafen und hast dich gleich hingesetzt ?!? :-)
        Wow, vielen vielen Dank. V 2.00 werde ich bei Gelegenheit mal ausprobieren.

        @Günter:
        Besteht bei deinem Blog eigentlich die Möglichkeit, das ich als Poster eines Beitrages über nachfolgende Beiträge per Email informiert werde? (wie z.B. bei Deskmodder.de)
        Ich gebe ja unten meinem Namen und eine gültige von mir empfangbare Emailadresse an.
        Entweder habe ich etwas auf deinem Blog übersehen, stelle mich zu blöd an oder die Funktion gibt es nicht?
        Weder im Posteingang noch Spamverdacht kommt das.
        Für mich bedeutet aktuell, manueller Check deiner Website … oder welche Möglichkeiten gibt es noch, über Änderungen/Posts per Email informiert zu werden ?
        Vermutlich sitzt der Fehler/Unwissende vor dem Display (in meiner Person) ;-)

        • Günter Born sagt:

          Es gibt keine solche Möglichkeit, sich bei Kommentaren per Mail benachrichtigen zu lassen, und wird es auch nicht geben. Vor vielen Jahren bin ich technisch gescheitert – später kam die DSGVO, wo ich mir ein double-opt-in nicht ans Bein binde. Hatte kurz geliebäugelt, auf Discord zu gehen, war nach deren Hack aber ganz froh, das nicht getan zu haben …

        • Alexander Fuchs sagt:

          Moin Klausi,
          > "20. März 2023 um 00:44 Uhr" … du konntest wohl wegen meinem Post nicht schlafen und hast dich gleich hingesetzt ?!? :-)"

          "Die Sinnesorgane des überwiegend dämmerungs- und nachtaktiven (IT-)Fuchses sind speziell an die Dunkelheit angepasst." ;-)

          Quelle:
          https://www.deutschewildtierstiftung.de/wildtiere/fuchs

          Ausserdem habe ich Tagsüber für sowas keine Zeit, weil ich da meistens von meinen Kunden wegen deren Problemen hin und her gejagt werde.

          Beste Grüsse aus BaWü
          Alex

  41. Alexander Fuchs sagt:

    Moin Klausi,

    > "Mit Hyper-V auf dem (Videoschnitt-) Notebook experimentiere ich nur ab und zu mal rum (diverse "alte" OSes) … nix produktives."

    OK, das verwirrt mich nun wiederum ein bisschen.
    Den, insbesondere bei intensiver Audio-, Bilder- und oder Videobearbeitung, ist ein Einsatz eines Hypervisors, aus Performancegründen eigentlich nicht wirklich empfehlenswert.

    > "Also war meine Vermutung in Richtung Hyper-V richtig."

    Ja, für eine Hyper-V Umgebung ist mein Skript ohne weitere Anpassungen nicht wirklich geeignet. Mitunter auch deshalb habe ich ja auch bisher ausdrücklich davon abgeraten, dieses Skript auf einem Server laufen zu lassen.

    > "Hab Hyper-V-Rolle deaktiviert und läuft."

    Der Neugierde halber, wie sieht es nun mit dem Videoschnitt aus, läuft dieser nun auch schneller?

    > "Das Fazit wäre dann? Hyper-V auf dem MS-Client – Finger weg von Alex Script !?!?!"

    Jain, wenn du in der aktuellen Version (1.15) die Zeilen 148 bis 217 und 380 -432 auskommentierst oder löschst, dann sollte das Skript auch auf einem Windows 10/11 mit installiertem Hyper-V keine Probleme bereiten.

    > "Bräuchte man ein angepasstes Script für MS-Clients mit Hyper-V?"

    Wenn du bei einem MS-Client mit einem aktiviertem Hyper-V die bestmögliche Performance haben möchtest, dann definitiv ja.

    Ein Hyper-V System zu optimieren ist jedoch um einiges aufwändiger, weil durch den Hypervisor, quasi die Ausgangslage zum Teil um Faktoren komplizierter wird.
    Andererseits lässt sich bei den Hypervisoren (Hyper-V, VMware & Co. KG) durch Optimierung auch am meisten Performance wieder zurückgewinnen und oder durch Nichtoptimierung auch sinnlos verbrennen.

    Vielleicht kann ich das Skript zeitnah so anpassen, dass es einen installierten Hyper-V erkennt und dementsprechend auch andere Optimierungen vornimmt.
    Bei einem Client sollte das eigentlich nicht ganz so schwer sein wie bei einem Server, weil diese meistens nur einen NUMA Knoten haben, wodurch z.B. die RSS Optimierung um einiges einfacher wird.

    Beste Grüsse aus BaWü
    Alex

  42. pau1 sagt:

    "Wenn du deinen RDP Usern noch was gutes tun möchtest, dann stell RDP bitte von UDP auf TCP um. 😉"

    Wie bitte?
    Warum sollte man denn kein UDP für RDP verwenden?
    Fehlen da irgendwo Grundlagen?
    Ich habe jedenfalls mal gelernt:
    UDP ist für diese Art Daten genau das Richtige, denn
    TCP stellt sicher, das jedes Paket auch sicher übertragen wird.
    Zur Not wird ein verlorenes Paket 15sec lang vom TCP Stack wiederholt, aber genau das will und braucht man hier nicht.
    Denn:
    Was bitte soll man mit einem Paket das einem zeigt, wie der Desktop vor 5s aussah?
    Warum sollte man ein Paket rund 5mal wiederholen, mit der der Empfänger eh nichts mehr anfangen kann?
    Das nichts mit besserem Netio Benchmark zu tun.

    Und falls man Paket-Verluste (und damit retransmissions) hat, beseitigt man zu erst diese. Wir reden ja von einem LAN?
    Es ist nicht normal, das der Ethernet-Fehler Zähler im Switch nicht null ist. Auch wenn "es funktioniert doch" "ich habe ein Fluke Messprotcoll aller Kabel" heißt. Der Zähler muß null sein, vielleicht 1 oder 2. Aber beachte:
    (es gab mal Switiches die nurvbei bestimmten Kabellängen Fehler bauten. Das Kabel war ok.)

    ja, natürlich bewegt sich etwas wenn man an der Retransmission dreht. Für diese eine Verbindung. Alle anderen stehen noch schlechter da…

    Und natürlich ist es Bockmist, wenn MS alle client- Verbindungen
    mit Wartezeiten wie für das Internet ausstattet, auch die im LAN.
    Natürlich verbessert dann Dein Script den Durchsatz, dieses einen Clients, weil er viel schneller Retransmission macht.
    Aber das kostet Bandbreite, die anderen Clients fehlen.

    Es ist echt ätzenmit Microsoft Produkten arbeiten zu müssen, denn Reverse Engineering gehört nicht zu den Aufgaben eines Admins, auch wenn es mehr Spaß macht als Bänder zu wechseln

  43. Michael Braun sagt:

    Ein sehr gutes script – ich bemerke eine deutlich spürbare und vor allem messbare Geschwindigkeitszunahme :-)

    Ab sofort werde ich das Script auf meine Clients standardmäßig einsetzen – vielen Dank für dieses Script – richtig gute Arbeit und ein Dankeschön an alle die daran mitgewirkt haben!

  44. Codeguru sagt:

    Also noch mal Leutz, gibts Meßwerte?
    a) TCPPing mit RDP Port vor und nach dem Skript?
    b) Chrome Netzwerkdiagnose?

    Ich betreue seit 16 Jahren Kunden, die mit RDP Clients auf eine von meinem Brötchengeber betreute Software verwendet wird, und mit RDP Latenzen haben wir bisher keine Probleme gehabt.

    RDP im lokalen Netz sind in der Regel 2 ms, zu findem im Perfmon – RemoteFX – Roundtrip TCP

    Ich wüßte nicht warum ich da was optimieren sollte wenn ich da nur 1 oder 2 ms sehe.

    Die größte Performancebremse war bisher der Microsft OEM Treiber für die Intel I215 bis 219 Serie (und der Intel Originaltreiber behebt das Problem), gefolgt von falschen Offloading-Einstellungen an der Netzwerkkarte serverseitig… clientseitig hat man da tlw 20-50 ms an Delta, Serverseitig sogar bis zu 2000. DAS ruft mich auf den Plan, nicht ob da jemand 2 oder 3 ms an Delta ins Internet einsparen kann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.