Amélioration de la vitesse de transfert de fichiers volumineux sur une liaison à latence élevée


8

J'ai donc récemment eu besoin de tirer un gros fichier sur Internet depuis l'un de nos bureaux à l'étranger. Les deux bureaux ont des liaisons par fibre optique de 50 Mbits dans les deux sens, mais le temps d'aller-retour est horrible et varie de peut-être 450 ms par bonne journée et 750 ms par merde.

À l'origine, j'ai essayé de tirer le fichier sur une connexion VPN, mais après quelques transferts infructueux (smb aspire vraiment les liaisons lentes) et la vitesse maximale à environ 128 Ko, un rapide google a montré que je rencontrais des problèmes de mise à l'échelle de la fenêtre TCP de Windows.

Depuis, j'ai poussé le fichier à travers un service commercial de type cloud privé qui a obtenu le fichier ici plus rapidement, donc ce qui suit est plus par curiosité qu'autre chose.

Ajouté au plaisir, c'est que l'accès à Internet aux deux extrémités se fait via un proxy http. J'ai cependant des droits d'administrateur sur les machines aux deux extrémités.

Comment feriez-vous pour obtenir une meilleure vitesse?

Ce que j'ai essayé:

1) SFTP ordinaire entre deux machines virtuelles Linux, en utilisant un tire-bouchon pour perforer le proxy http et un troisième intermédiaire pour connecter les deux extrémités ensemble. Vitesse atteinte: environ 600kBps.

2) SFTP mais en utilisant OpenSSH patché avec HPN-SSH. Tire-bouchon et configuration intermédiaire identiques à 1). Peu ou pas d'amélioration de la vitesse.

3) Selon 2 mais en utilisant LFTP avec pget -c -n 10pour briser le transfert en morceaux. C'est le meilleur jusqu'à présent, avec 3,5 Mo / s ...

Toutes les améliorations sont les bienvenues.


Réponses:


4

Ces jours-ci, je traite des transferts sur des liaisons longue distance et à latence plus élevée en encapsulant rsync sur UDP, en utilisant UDR comme transport. UDR utilise UDT , qui est décrit comme:

UDT est un protocole de transport de données fiable basé sur UDP pour les applications intensives de données distribuées sur des réseaux à grande vitesse et à large zone. UDT utilise UDP pour transférer des données en masse avec ses propres mécanismes de contrôle de fiabilité et de contrôle de congestion. Le nouveau protocole peut transférer des données à une vitesse beaucoup plus élevée que TCP. L'UDT est également un cadre hautement configurable qui peut prendre en charge divers algorithmes de contrôle de congestion.

Cela désactive le cryptage par défaut, ce qui était une chose importante dont j'avais besoin lorsque je corrigeais HPN-SSH , mais l'approche UDP a beaucoup aidé. Le principal avantage de la solution UDR / UDP est que la fonctionnalité de commande ne change pas beaucoup. Vous finissez par ajouter la commande rsync udr.

udr rsync -avP --stats --delete --inplace /data/ mir1:/data/

Voir aussi: Possibilité d'optimisation WAN pour le trafic SSH


3

J'ai eu le même problème à $ lastjob.

Restant purement dans ma propre infrastructure, je n'ai jamais trouvé de meilleure solution que LFTP.

Si vous pouvez justifier les dépenses, vous pouvez obtenir des appliances qui accélèrent le WAN. Fondamentalement, ils transforment de manière transparente vos demandes en morceaux beaucoup plus gros, réduisant ainsi considérablement la conversation entre les 2 sites. Riverbed est probablement l'option la plus connue là-bas, mais l'IIRC propose également un module pour les routeurs Juniper. Je ne connais aucune option FLOSS pour le moment.

En fait, j'ai trouvé que la meilleure option était Dropbox et al, mais cela peut ne pas être acceptable pour vous.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.