J'essaie d'améliorer le débit d'un de mes serveurs à l'étranger et après avoir surveillé un transfert entre le serveur et mon ordinateur personnel avec Wireshark, je suis presque sûr que j'ai un problème avec la taille de la fenêtre.
Pour un transfert ftp, j'obtiens une taille de fenêtre de réception de 14720.
Window size value: 115
Calculated window size: 14720
Window size scaling factor: 128
Ma fenêtre d'envoi ressemble à ce que je l'ai définie:
Window size value: 65335
Calculated window size: 261340
Window size scaling factor: 4
Alors, comment puis-je réparer la fenêtre rwindow? J'ai parcouru les paramètres linux tcp sur mon serveur et tout semble normal. Les horodatages sont activés, les syncookies sont désactivés, la mise à l'échelle est activée, les sacs sont activés, cubique est la méthode de contrôle de la congestion, la taille maximale de la fenêtre de réception et d'envoi est de 3 Mo. J'ai essayé de changer les valeurs par défaut tcp_wmem et tcp_rmem mais cela ne fait rien.
ÉDITER:
Lorsque je désactive l'autoréglage et / ou la mise à l'échelle des fenêtres sur le serveur, la fenêtre se réduit à 14600, ce qui correspond à 10 fois le MSS.
5337 4.268584 2.2.2.2 1.1.1.1 FTP 106 Response: 227 Entering Passive Mode (2,2,2,2,240,15).
5338 4.268640 1.1.1.1 2.2.2.2 TCP 74 59855 > 61455 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=431721460 TSecr=0 WS=128
5364 4.300368 1.1.1.1 2.2.2.2 TCP 54 57609 > ftp [ACK] Seq=217 Ack=648 Win=15744 Len=0
5480 4.346856 2.2.2.2 1.1.1.1 TCP 66 61455 > 59855 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=128
5481 4.346867 1.1.1.1 2.2.2.2 TCP 54 59855 > 61455 [ACK] Seq=1 Ack=1 Win=14720 Len=0
5482 4.346893 1.1.1.1 2.2.2.2 FTP 70 Request: STOR 100mb.bin
5570 4.428061 2.2.2.2 1.1.1.1 FTP 109 Response: 150 Opening BINARY mode data connection for 100mb.bin
5571 4.428078 1.1.1.1 2.2.2.2 TCP 54 57609 > ftp [ACK] Seq=233 Ack=703 Win=15744 Len=0
5572 4.428155 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5573 4.428166 1.1.1.1 2.2.2.2 FTP-DATA 1514 FTP Data: 1460 bytes
5662 4.505384 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=1461 Win=8832 Len=0
5663 4.505392 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5664 4.505421 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=2921 Win=11776 Len=0
5665 4.505429 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5666 4.505535 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=4381 Win=14720 Len=0
5667 4.505543 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5734 4.583769 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=5841 Win=17536 Len=0
5735 4.583778 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5736 4.583781 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=7301 Win=20480 Len=0
5737 4.583787 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
la source
Réponses:
À partir du noyau linux 2.6.17 (ou des abouts), le facteur d'échelle par défaut a été augmenté. L'inconvénient est qu'il semble y avoir des routeurs / pare-feu / etc. qui ne traitent pas correctement avec TCP Window Scaling (le rfc a seulement ~ 16 ans). Si vous devez traverser l'un de ces appareils, vous devez désactiver la mise à l'échelle de la fenêtre, sinon les choses deviennent très lentes.
Sur un système Redhat / Redhat, le "correctif" consiste à:
la source
hmmm. Pourriez-vous nous donner plus d'informations? Tel que ...
TCP libère {Reno, Vegas, etc} Direction du transfert {bureau -> serveur, serveur-> bureau, autre chose} qu'utilisez-vous pour la mesure? iperf? harpon?
la source