In diesem Betrag werde ich zeigen, wie durch Parametrisieren die Netzwerkperformance und Latenz von Windows Server 2012 R2 auf VMware 6 optimiert werden kann.
Windows TCP Stack optimieren durch deaktivieren von Features, die nicht von VMXNET3-Treiber unterstützt werden.
Als erstes könnt Ihr das TCP chimney, AutoTuning, Congestion Provider, Task Offloading and ECN Capability wie folgt deaktivieren.
Öffnen Sie die Eingabeaufforderung als Administrator und führen Sie diese Befehle aus:
netsh int tcp set global chimney=Disabled
netsh int tcp set global autotuninglevel=Disabled
netsh int tcp set supplemental custom congestionprovider=none
netsh int tcp set global ecncapability=Disabled
netsh int ip set global taskoffload=disabled
netsh int tcp set global timestamps=Disabled
prüfen der Einstellungen durch
netsh int tcp show global
Erläuterung der Einträge im Einzelnen:
Empfangsseite
Dieser Eintrag muß auf „enabled“ gesetzt bleiben, zudem wird es jetzt etwas theoretisch:
Mit der „Empfangsseite“ (Receive Window) und der maximalen Segmentgröße (MSS) eines TCP-Datenpaketes wird die Menge an Daten festgelegt,
die ein Computer ohne Empfangsbestätigung (TCP ACK) in einem bestimmten Zeitfenster aufnehmen kann.
Wird der Eintrag geändert, verlangsamt sich i.d.R. der Datenfluß.
Chimney-Abladestatus
Mit dieser Funktion wird die CPU entlastet und der Datentransfer, bzw. die Verarbeitung der ankommenden und abgehenden Datenpakete, auf die Netzwerkkarte ausgelagert.
Sollte hier der Eintrag auf „deaktiviert“ stehen“, können Sie ihn mit dem Befehl
aktivieren mit Code:
netsh int tcp set global chimney=enabled
deaktivieren mit Code:
netsh int tcp set global chimney=disabled
deaktivieren sie wieder diese Funktion. Bedenken Sie, daß diese Einstellung auch auf allen Partner-PCs für die reibungslose Funktion aktiviert sein muß.
Näheres zu dem Eintrag finden Sie hier: http://www.drwindows.de/windows-anle…y-offload.html
Direkter Cachezugriff (DCA)
Ab Windows 7 wird diese neue Technologie eingesetzt. Hier benutzt die Netzwerkkarte direkt den CPU-Cache, um Netzdaten weiter zu transportieren. Der CPU-Cache wird in diesem Modus als Zwischenspeicher benutzt. Das spart die CPU-Operationen, die notwendig sind, wenn Netzwerkdaten in den Arbeitsspeicher eingelesen werden.
aktivieren mit Code:
netsh int tcp set global dca=enabled
Hinweis:
Nicht jeder Chipsatz, Prozessor und Netzwerkadapter unterstützt diese Technologie. Die Option „DCA“ muß hierfür im BIOS aktiviert sein.
deaktivieren mit Code:
netsh int tcp set global dca=disabled
NetDMA-Status
Auch diese Technik wurde mit Windows 7 und Windows Server 2008 eingeführt. Die Netzwerkkarte überträgt, ohne den Umweg über die CPU, direkt an das empfangende Programm.
aktivieren mit Code:
netsh int tcp set global netdma=enabled
deaktivieren mit Code:
netsh int tcp set global netdma=disabled
Autom. Abstimmungsgrad Empfangsfenster
Besser bekannt als „AutoTuning-Level“ für den TCP-Stack. Wie oben bereits erwähnt, kann ein PC nur eine bedingte Menge an Daten empfangen, bevor das Acknowledgement (ACK) an den Sender geschickt werden muß. Jeder PC handhabt diese Situation individuell. Um aber dennoch einen guten Datenfluß zu garantieren, wurde in Windows das AutoTuning eingeführt.
Leider führt die aktivierte Option bei manchen PCs zu schweren Netzwerkfehlern, wie fehlender Seitenaufbau oder Abbruch von Datentransfers.
Es gibt hier verschiedene Möglichkeiten, das AutoTuning einzuschränken bzw. abzuschalten.
Code:
netsh int tcp set global autotuninglevel=enabled
Code:
netsh int tcp set global autotuninglevel=restricted
Code:
netsh int tcp set global autotuninglevel=highlyrestricted
Code:
netsh int tcp set global autotuninglevel=disabled
Sie sollten es schrittweise testen, inwieweit eine Änderung Einfluß auf
die Datenübertragung hat. Weitere Informationen über das AutoTuning finden Sie hier: http://www.drwindows.de/windows-anle…-netzwerk.html
Add-On „Überlastungssteuerungsanbieter“
Mit Vista wurde u.a. auch das Compound TCP (CTCP) als Teil des neuen TCP-Stack eingeführt. Es sorgt dafür, daß der höchstmögliche und schnellste Datenfluß beim Sender gewährleistet ist. Sinnvoll ist diese Funktion vor allem bei höheren Bandbreiten im Netzwerk. Steht hier der Anbieter auf „none“ ändern Sie den Eintrag in
aktivieren mit Code:
netsh int tcp set global congestionprovider=ctcp
testen Sie die Verbindung nach einem PC-Neustart.
deaktivieren mit Code:
netsh int tcp set global congestionprovider=none
ECN Funktion
Der ECN-Eintrag (Explicit Congestion Notification) steuert die Methode für den Router, wie er größeren Datenverkehr weiterleiten kann, ohne dabei Datenpakete zu verlieren, die neu angefordert werden müssen.
Inwieweit eine Änderung dieser Option eine Verbesserung des Netzwerkverkehrs bringt, hängt von vielen unterschiedlichen Faktoren ab,
u.a. auch, ob Ihr Router und Ihr Computer diese Funktion überhaupt unterstützen.
Mit dem Befehl
aktivieren mit Code:
netsh int tcp set global ecncapability=enabled
deaktivieren mit Code:
netsh int tcp set global ecncapability=disabled
RFC 1323-Zeitstempel
Dieser Eintrag ist nur minimal beeinflußbar. Der aktivierte Zeitstempel vergrößert ein Daten-Paket um ca.2-5kb.
aktivieren mit Code:
netsh int tcp set global timestamps=enabled
deaktivieren mit Code:
netsh int tcp set global timestamps=disabled
Quelle der Information: http://www.drwindows.de/windows-anleitungen-faq/31827-windows-einstellungen-internet-netzwerkverbindungen-beschleunigen.html
Als nächstes müssen wir die RSS-Funktion auf dem VMXNET3-Treiber einschalten. Öffnen Sie dazu die Netzwerkverbindungen und Adaptereinstellungen.
netsh int tcp set global RSS=Enable
Zusätzliche solltet Ihr auch beachten, das das RSC (Empfang zusammengeführter Segmente) unter Windows Server 2012 R2 unter VMware 6 vor Update 2 auch Probleme machen kann.
Wenn Sie nicht auf VMware 6 U2 aktualisieren können, können Sie jede Leistungsverschlechterung durch Deaktivieren von RSC auf dem betroffenen Gastbetriebs-System umgehen.
hier die Lösung von VMware
To disable RSC on the virtual machine, perform one of these options:
Use the PowerShell command Disable-NetAdapterRsc.
To disable for all interfaces:
Disable-NetAdapterRsc *
To disable for a specific interface:
Disable-NetAdapterRsc -Name Ethernetx
Disable RSC globally using the netsh int tcp set global rsc=disabled command.
Note: This command requires an elevated command prompt.
To verify that RSC is disabled on the virtual machine:
Use the PoweShell command Get-NetAdapterRsc. The IPv4OperationalState and IPv6OperationalState should both be set to FALSE.
Use the netsh int tcp show global command. The Receive Segment Coalescing State should be set to disabled.
Note: This change is immediate and does not require rebooting the guest operating system.
Alternatively, you can disable LRO/RSC for all virtual machines on an ESXi host using:
esxcli system settings advanced set -o /Net/Vmxnet3SwLRO -i 0
esxcli system settings advanced set -o /Net/Vmxnet3HwLRO -i 0
Note: This will disable LRO for all virtual machines on the ESXi host. Virtual machines must be powered off and then powered on or migrated using vMotion to another hosts for the changes to take effect.
Reference:
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2129176
Network performance with VMXNET3 on Windows Server 2012 R2