Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bande Passante serveur Windows Server 2003 (TCP/IP ?)

2 réponses
Avatar
Dario Spagnolo
Salut à tous,

j'ai une question très simple à vous poser : doit-on effectuer des
réglages spéciaux sur une machine avec Windows Server 2003 pour utiliser
pleinement une bande passante de l'ordre de plusieurs dizaines de MBit/s ?

Ca a l'air con comme question mais ça fait des semaines que j'essaye de
comprendre pourquoi mes serveurs windows utilisent seulement un faible
pourcentage de la bande passante disponible. J'ai pourtant des serveurs
linux dans la même baie et eux n'ont évidemment aucun problème.

Je suis tombé sur plusieurs articles concernant des réglages TCP/IP à
faire sur des serveurs derrière des connexions à très haut-débit, haute
latence et longue distance (ce qu'on appelle les long-fat-lines ?).
Cependant, aucun réglage n'a arrangé le problème.
Pour donner un exemple, depuis une connection ADSL 2Mbit/s je n'obtiens
que 80-90ko/s sur un serveur windows, alors que je monte à 240ko/s sur
un serveur linux.

Etant donné que j'ai constaté cette limitation de bande passante sur
plusieurs machines differentes, plusieurs cartes réseaux differentes et
même differentes versions de windows (2003 et XP), je me dis qu'il doit
vraiment y avoir quelque chose à faire au niveau des réglages TCP/IP.

J'ai également remarqué que la latence entre le serveur et le client qui
télécharge est un facteur très important pour determiner la bande
passante maxi. Sur un client branché à l'ADSL 2Mbit/s avec 95ms de
latence j'ai 80-90ko/s, sur un client branché sur un ADSL 1Mbit/s avec
60ms de latence j'ai 115-120ko/s (donc plein pot). Des tests avec
d'autres serveurs ont été faits également et on monte jusqu'à 600ko/s
sur des serveurs avec 13ms de latence. Ce phénomène est d'ailleurs bien
expliqué dans les articles que je lis et serait étroitement lié avec le
paramètre "Window Size". Par contre, je n'ai pas réussi à arranger le
problème en modifiant ce parametre.

Je pourrais poser la question différement : est-ce que certains d'entre
vous font tourner des serveurs Windows avec des services à fort
téléchargement (serveurs ftp, streaming,...) ? Avez-vous eu des réglages
à faire ou la config par défaut permet déjà de remplir la bande passante
des utilisateurs qui se connectent avec des connections haut débit ?

Voilà, je vous remercie beaucoup pour vos réponses ! Plus vite je résous
ce problème et plus vite je rentre chez moi, en effet je suis depuis ce
matin dans le datacenter où sont hébergés mes serveurs, à 300km de chez
moi, et je ne rentrerai pas tant que je n'aurai pas résolu le problème !
Alors soyez gentils, aidez-moi à rentrer chez moi ! :)

Bonne soirée à tous !

Dario

2 réponses

Avatar
Spyou
Voilà, je vous remercie beaucoup pour vos réponses ! Plus vite je résous
ce problème et plus vite je rentre chez moi, en effet je suis depuis ce
matin dans le datacenter où sont hébergés mes serveurs, à 300km de chez
moi, et je ne rentrerai pas tant que je n'aurai pas résolu le problème !
Alors soyez gentils, aidez-moi à rentrer chez moi ! :)


MTU ?

(bon, ok, je sors :))


T'as essayé les trucs bateaux genre TCP Optimizer (ou un nom approchant) ?

Avatar
Dario Spagnolo
Spyou wrote:
MTU ?


Il est bon. Windows utilise le Path MTU Discovery qui detecte le plus
petit MTU utilisable sur tout le parcours de façon à éviter la
fragmentation. Il se règle à 1420 avec ma connection de test.
De toute façon j'ai essayé d'autres valeurs et ça ne change rien.

T'as essayé les trucs bateaux genre TCP Optimizer (ou un nom approchant) ?


Il n'en existe pas pour Windows 2003 à ma connaissance.

Là je suis sur une piste en fait. J'ai remarqué que le serveur n'utilise
pas pleinement la TCP WindowSize. Elle est définie à 32kb par le client
(valeur faible mais c'est normal, lisez la suite) mais windows semble
profiter uniquement de 22ko. Donc une fois qu'il a envoyé 22ko sans
avoir reçu de ACK en retour, il s'arrete et attend le ACK, ce qui bien
souvent, prend plusieurs dizaines de ms (jusqu'à 90ms, latence entre les
deux points).
Normalement il devrait envoyer encore 10ko avant de s'arreter. C'est
d'ailleurs ce que font tous les autres serveurs sur lesquels j'ai pu tester.
Pour mettre des chiffres sur tout ça et justifier la perte de vitesse,
voici ce que j'ai remarqué :

windows -> client : 15% des paquets envoyés ont un delta (temps écoulé
depuis l'envoi du dernier paquet) superieur à 20ms.

linux -> client : <1% des paquets envoyés ont un delta superieur à 20ms.

Ces attentes du serveur windows sont injustifiés car il s'arrete
toujours avant d'avoir rempli la WindowSize.

J'essaye maintenant de comprendre pourquoi. Si vous avez des idées,
n'hésitez pas :)

Dario