Optimierung der Windows 7-Netzwerkleistung für LAN

8

Ich möchte den Windows 7 TCP-Stack auf Geschwindigkeit in einer LAN-Umgebung abstimmen.

Einige Hintergrundinformationen: Ich habe einen Citrix XenServer mit Windows 2008R2, Windows 7 und Debian Lenny mit Citrix-Kernel eingerichtet. Auf Windows-Computern sind Tools installiert. Der iperfServerprozess wird auf einem anderen Host ausgeführt, auch Debian Lenny. Die Server sind ansonsten inaktiv. Die Tests wurden einige Male wiederholt, um die Ergebnisse zu bestätigen.

Während des Testens mit iperf2008R2 können ohne Optimierung etwa 600-700 Mbit / s erreicht werden, aber ich kann keine Anleitung oder einen Satz von Parametern finden, die Windows 7 dazu bringen, etwas über 150 Mbit / s zu erreichen, ohne die TCP-Fenstergröße mithilfe von -wParametern zu ändern iperf.

Ich habe versucht , mit netsh autotuiningzu disabled, experimental, normalund highlyrestricted- keine Änderung. Ändern congestionprovidermacht nichts, genauso wie rssund chimney.

Es hilft nicht, alle verfügbaren Einstellungen auf dieselben Werte wie auf dem Windows 2008R2-Host einzustellen.

Zusammenfassen:

  • Standardeinstellungen für Windows 2008R2: 600-700 Mbit / s
  • Debian, Standardeinstellungen: 600 Mbit / s
  • Windows 7-Standardeinstellungen: 120 Mbit / s
  • Windows 7-Standard iperf -w 65536: 400-500 Mbit / s

Während die fehlenden 400 Mbit / s an Leistung auf die beschissene Realtek-Netzwerkkarte im XenServer-Host zurückzuführen sind (ich kann ~ 980 Mbit / s von meinem Laptop auf den iperf-Server übertragen), erklärt dies nicht, warum Windows 7 keine gute Leistung erzielen kann, ohne die Fenstergröße manuell einzustellen die Anwendungsebene.

Wie kann man Windows 7 optimieren?

Hubert Kario
quelle

Antworten:

2

Versuchen Sie, die RSS- und TCP-Offload-Engine zu aktivieren :

netsg int tcp set global rss=enabled
netsh int tcp set global chimney=enabled 
alvosu
quelle
Das ist die Standardeinstellung unter Windows 2008R2, es hilft nicht.
Hubert Kario
Versuchen Sie, sie zu deaktivieren.
Joeqwerty
deaktiviert, aktiviert keinen Unterschied
Hubert Kario
2

Es könnte sich um einen anderen Netzwerktreiber in Windows 2008R2 als in Windows 7 handeln. Bietet xenserver Windows 2008R2 und Windows 7 immer dieselbe virtuelle Netzwerkkarte? Denn wenn es anders ist, wird ein anderer Treiber geladen.

Es kann einige Leistungsunterschiede geben.

EDIT: Ich habe mich gerade daran erinnert, dass Windows 7 standardmäßig sehr kleine Sende- / Empfangspuffer hat. In einigen Apps, die ich entwickelte, stellte ich fest, dass es unter Windows 7 etwas Pathetisches wie 8 KB war. Unter Ubuntu Linux sind es ungefähr 120kB. Sie können irgendwo lesen, dass das Limit 64 KB beträgt. Dies ist für spätere Windows-Versionen tatsächlich nicht korrekt. Ich habe festgestellt, dass es sogar auf 1 MB und mehr eingestellt werden kann. Obwohl eine geringe Leistungssteigerung bemerkt wird, wenn es so groß ist.

Dieser Link enthält einige TCP-Optimierungsparameter in der Registrierung, die systemweit gelten. Beachten Sie, dass viele dieser Optionen von den Anwendungen selbst überschrieben werden können.

http://www.psc.edu/networking/projects/tcptune/ http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html

Versuchen Sie, die Fenstergröße zu erhöhen und Puffer zu senden / empfangen. Hoffentlich gelten diese Registrierungseinstellungen im Link weiterhin in Windows 7.

Matt
quelle
Warum erhöht sich dann die Geschwindigkeit, wenn ich ein größeres TCP-Fenster einstelle? Und nein, XenServer ändert die dargestellte Netzwerkkarte nicht.
Hubert Kario
Ich habe nur angesprochen, dass dies ein Grund sein könnte. Ich bin Entwickler und entwickle gerade eine Anwendung, die eine Menge Daten mit nahezu Gigabit-Geschwindigkeit überträgt. Bei der Entwicklung auf Virtualbox entdeckte ich jedoch Leistungsunterschiede mit verschiedenen Nic-Treibern. Ja, durch Erhöhen des TCP-Fensters wird der Durchsatz erhöht, da weniger Bestätigungsrückgabepakete vorhanden sind. Haben Sie alle anderen VMs in Xen heruntergefahren, um sicherzustellen, dass nur Windows verwendet wird?
Matt
Meine übliche Netzwerknutzung auf dem Xen-Host liegt unter 60-90 KB / s. Und überprüfte den Treiber, er lädt den gleichen. Nebenbei bemerkt, Xen und Virtualbox sind völlig unterschiedliche Hypervisoren, einer ist Typ 1, der zweite Typ 2. Außerdem habe ich bei Bare-Metal-Installationen dieselben Leistungsprobleme festgestellt. Ich erwähnte hauptsächlich die Virtualisierung, um Hardwareprobleme auszuschließen.
Hubert Kario
Ich habe mich gerade an etwas erinnert. Details in der Hauptantwort.
Matt
1

TCP-Autotuning (das Sie bereits ausgeschlossen haben), MTU, das bereits angesprochen wurde, und MMCS (Multimedia Class Scheduling) sind normalerweise die großen Unterschiede. Da MMCS noch nicht angesprochen wurde, versuchen Sie es zu deaktivieren.

Stellen Sie sicher, dass die automatische Skalierung Ihres TCP-Fensters deaktiviert ist, wenn Sie sich in oder nahe der LAN-Geschwindigkeit befinden.

Anweisungen finden Sie hier: http://smallvoid.com/article/winnt-services-mmcss.html

iivel
quelle
Ich bin mir nicht sicher, ob ich es geändert habe (wie es seit über 6 Monaten ist), aber es sieht vielversprechend aus, ich werde es morgen versuchen.
Hubert Kario
Hat nicht viel geholfen, hat die Leistung um 10-20% verbessert.
Hubert Kario
0

Sie sollten den Realtek-Treiber in Windows nicht als virtuelle Maschine unter Citrix XenServer sehen. Wenn Sie dies tun, bedeutet dies, dass XenTools nicht installiert ist. Die Realtek-Netzwerkkarte, die Sie sehen, ist eine emulierte Netzwerkkarte, die vom QEMU-Dienst innerhalb von Dom 0 (Domäne 0) bereitgestellt wird. Nach der Installation des Windows-Betriebssystems müssen Sie XenTools installieren, bevor Sie etwas anderes tun, insbesondere die Anwendungsinstallation. Außerdem wird die Geschwindigkeit nach der Installation von XenTools fest codiert (wie im VM-Benutzerhandbuch angegeben), da die Geschwindigkeit auf einem virtuellen Gerät unbegrenzt ist.

James
quelle
1
von der Eröffnungsfrage: "Realtek NIC im XenServer- Host "
Hubert Kario