Ottimizzazione delle prestazioni di rete di Windows 7 per LAN


8

Voglio ottimizzare lo stack TCP di Windows 7 per la velocità in un ambiente LAN.

Alcune informazioni di base: ho un Citrix XenServer configurato con Windows 2008 R2, Windows 7 e Debian Lenny con il kernel Citrix, le macchine Windows hanno installato Tools il iperfprocesso del server è in esecuzione su host diversi, anche Debian Lenny. In caso contrario, i server sono inattivi, i test sono stati ripetuti più volte per confermare i risultati.

Mentre i test con iperf2008R2 possono raggiungere circa 600-700 Mbps senza alcuna ottimizzazione, ma non riesco a trovare alcuna guida o set di parametri che consentano a Windows 7 di ottenere risultati superiori a 150 Mbps senza alcuna modifica delle dimensioni della finestra TCP utilizzando il -wparametro to iperf.

Ho provato ad utilizzare netsh autotuininga disabled, experimental, normale highlyrestricted- nessun cambiamento. Il cambiamento congestionprovidernon fa nulla, proprio come rsse chimney.

L'impostazione di tutte le impostazioni disponibili sugli stessi valori dell'host Windows 2008R2 non aiuta.

Riassumere:

  • Impostazioni predefinite di Windows 2008 R2: 600-700 Mbps
  • Debian, impostazioni predefinite: 600 Mbps
  • Impostazioni predefinite di Windows 7: 120 Mbps
  • Windows 7 predefinito iperf -w 65536,: 400-500 Mbps

Mentre i 400 Mbps mancanti in termini di prestazioni, incolpo la scadente NIC Realtek nell'host XenServer (posso fare ~ 980 Mbps dal mio laptop al server iperf), non spiega perché Windows 7 non può ottenere buone prestazioni senza regolare manualmente le dimensioni della finestra a il livello dell'applicazione.

Quindi, come ottimizzare Windows 7?

Risposte:



2

Potrebbe essere un driver di rete diverso in Windows 2008R2 rispetto a Windows 7. Inoltre, xenserver fornisce sempre lo stesso nic virtuale a Windows 2008R2 e Windows 7? Perché se è diverso, verrà caricato un driver diverso.

Potrebbero esserci alcune differenze di prestazioni.

EDIT: ho appena ricordato che Windows 7 ha dei buffer di invio / ricezione molto piccoli per impostazione predefinita. In alcune app che stavo sviluppando ho scoperto che sotto Windows 7 era qualcosa di patetico come 8kB. Sotto Ubuntu Linux è di circa 120 KB. Puoi leggere da qualche parte che il limite è 64kB. Questo in realtà non è corretto per le versioni successive di Windows. Ho scoperto che può essere impostato anche su 1 MB e oltre. Sebbene si noterà un piccolo aumento delle prestazioni quando è così grande.

Questo collegamento fornisce alcuni parametri di ottimizzazione tcp nel registro che si applicano a tutto il sistema. Tenere presente che molte di queste opzioni possono essere ignorate dalle applicazioni stesse.

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

Prova ad aumentare le dimensioni della finestra e invia / ricevi buffer. Si spera che le impostazioni del registro nel collegamento siano ancora valide in Windows 7.


Allora perché se imposto una finestra TCP più grande la velocità aumenta? E no, XenServer non cambia la scheda NIC presentata.
Hubert Kario,

Stavo solo affrontando che questo potrebbe essere un motivo. Sono uno sviluppatore e mi capita di sviluppare un'applicazione che sta spingendo un sacco di dati a velocità quasi gigabit. Tuttavia, sviluppando su virtualbox ho scoperto differenze di prestazioni con diversi driver nic. Sì, aumentando la finestra TCP aumenterà il throughput perché ci saranno meno pacchetti di ritorno ack. Hai spento tutte le altre macchine virtuali in Xen per assicurarti che Windows sia l'unica ad usarla?
Matt

Il mio solito utilizzo della rete sull'host Xen è inferiore a 60-90 KiB / s. E controllato il driver, carica lo stesso. Come nota a margine, Xen e Virtualbox sono hypervisor completamente diversi, uno è di tipo 1 il secondo è di tipo 2. Inoltre, ho visto gli stessi problemi di prestazioni con installazioni bare metal. Ho citato principalmente la virtualizzazione per escludere problemi hardware.
Hubert Kario,

Mi sono appena ricordato qualcosa. Dettagli nella risposta principale.
Matt,


1

Autotuning TCP (che è già stato escluso), MTU che è già stato risolto e MMCS (pianificazione delle classi multimediali) sono in genere le grandi differenze. Dal momento che MMCS non è già stato affrontato, fai un tentativo di disabilitarlo.

Assicurati che la scalabilità automatica della tua finestra tcp sia disabilitata se sei alla velocità della LAN o nelle vicinanze.

Le istruzioni sono disponibili qui: http://smallvoid.com/article/winnt-services-mmcss.html


Non sono sicuro di averlo cambiato (dato che sono passati più di 6 mesi) ma sembra promettente, lo proverò domani.
Hubert Kario,

Non ha aiutato molto, ha migliorato le prestazioni di circa il 10-20%.
Hubert Kario,

0

Non si dovrebbe vedere il driver Realtek all'interno di Windows come una macchina virtuale su Citrix XenServer. In tal caso, ciò significa che XenTools non è installato. La NIC Realtek che vedi è emulata dal servizio QEMU all'interno di Dom 0 (dominio 0). Dopo l'installazione del sistema operativo Windows, prima di fare qualsiasi altra cosa, in particolare l'installazione dell'applicazione, è necessario installare XenTools. Inoltre, la velocità viene codificata dopo l'installazione di XenTools (come indicato nella Guida dell'utente della VM), poiché non esiste un limite di velocità su un dispositivo virtuale.


1
dalla domanda di apertura: "Realtek NIC nell'host XenServer "
Hubert Kario,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.