5 votes

Taille des paquets réseau sur la chaîne de connexion du serveur sql pour améliorer le débit

Nous avons un travail de chargement de données qui déplace une quantité relativement importante de données sur le réseau entre deux serveurs sql. Les serveurs sont sur le même sous-réseau et il n'y a qu'un commutateur entre eux. Les données consistent en plusieurs grands champs varchar et un champ xml.

Afin d'augmenter le débit. J'ai essayé de changer la taille des paquets réseau de 4096 par défaut à 32627 sur la chaîne de connexion ; Cependant, cela ne semble pas améliorer les performances. Je soupçonne que le problème est que, bien que nous ayons un réseau Ethernet Gig, les "trames jumbo" ne sont pas activées.

Pour confirmer cela, j'ai essayé deux tests ping :

ping -l 1400 -f pdbsql01dul

Travaux

ping -l 4096 -f pdbsql01dul

Le paquet doit être fragmenté mais DF est fixé.

comme vous pouvez le voir, la plus grande taille de paquet semble être autour de 1400

Ma question est la suivante : si les trames Jumbo font ~8096, y a-t-il un avantage à définir une taille de paquet réseau plus grande que cela ?

Cela change-t-il si la connexion est locale au serveur en question ?

8voto

sysadmin1138 Points 129885

Ce qu'il faut, c'est que le paramètre MTU du réseau Ethernet passe de 1500 à quelque chose au nord de 4096. Ces paramètres sont généralement définis sur la page des paramètres du pilote. Pour une bonne mise en réseau, il faut vraiment que tous les périphériques (y compris les commutateurs Ethernet) sur le même réseau Ethernet aient le même paramètre MTU.

Jumbo Frame setting on one of my servers
(source : <a href="http://sysadmin1138.net/images/jumbo-setting.png" rel="nofollow noreferrer">sysadmin1138.net </a>)

C'est là que vous le changeriez sur un de mes serveurs.

Cela peut-il aider ? Certainement. Moins de fragmentation des paquets signifie moins de travail pour la pile TCP pour réassembler le flux de trafic. Ce n'est peut-être pas un ordre de grandeur, mais cela peut aider.

Les connexions locales au serveur utilisent, je crois, des pipes plutôt que des connexions TCP et ne sont probablement pas affectées par ce changement.

3 votes

Vous devrez probablement activer les Jumbo Frames sur le commutateur réseau également.

4voto

Dr Zimmerman Points 136

Vous pouvez essayer, mais je doute que ça vous aide beaucoup. Le protocole TDS n'a jamais été conçu pour un débit élevé. Si vous souhaitez déplacer des données entre deux instances de serveur SQL, vous pouvez envisager d'utiliser le protocole TDS. Courtier en services En revanche, sa pile réseau est beaucoup plus orientée vers le haut débit que celle de TDS. C'est pourquoi le Mirroring choisit la pile réseau SSB pour communiquer avec les serveurs miroirs de secours. En outre, la sémantique du mouvement des données de SSB est bien meilleure que celle des serveurs liés et généralement meilleure que celle des applications client personnalisées.

2voto

gbn Points 5979

Je ne peux pas faire de commentaires sur tcp, les trames, etc., mais je n'ai défini la taille des paquets réseau de SQL Sever qu'une seule fois, pour une application ignoble qui avait encore besoin des outils clients de SQL 6.5.

C'est un de ces paramètres "ne le faites pas".

0 votes

LOL. OK, je ne le ferai pas. +1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X