Performances wget vs cp pour stockage distant

Bonjour,

Je rencontre un problème lors du téléchargement de fichiers via HTTPS avec wget ou curl.

J’ai monté sur mon serveur un dossier partagé de mon NAS (la connexion se fait via openVPN).

Mon objectif est de télécharger un fichier HTTPS depuis mon serveur pour le stocker sur mon dossier monté (sur mon NAS via la connexion VPN).

Le fichier en question à télécharger fait 100 Mo.
Si je télécharge sur un dossier local de mon serveur, le téléchargement se fait en moins de 10 secondes.
Si je télécharge sur mon dossier monté (sur la NAS via la connexion VPN), le téléchargement dure 17 minutes.
Le fait que le téléchargement sur le dossier monté dure plus longtemps est logique puisque je ne stocke plus en local et en plus cette connexion passe par un VPN.
En revanche, ce qui est troublant c’est que si je copie ce même fichier depuis mon serveur vers le dossier monté (avec la commande cp) la copie ne dure que 1min 40 !!!

Voici mes commandes:

Exemple 1:
wget --output-document=/monDossierMonteVersMonNas/fichier.txt https://monurl
#Va durer 17 min

Exemple 2:

wget --output-document=/dossierLocal/fichier.txt https://monurl
#Le téléchargement va être très rapide (- 10s): Logique 
cp /dossierLocal/fichier.txt /monDossierMonteVersMonNas/fichier.txt
#La copie va durer seulement 1min40 au lieu des 17min avec WGET

J’ai essayé avec les options --inet4-only --no-check-certificate mais rien ne change.
Idem avec curl.

Comment pouvez expliquer qu’un téléchargement de fichier sur un NAS distant avec wget/curl dure 17 min alors que son téléchargement local dure 10s et l’envoi avec cp dure 1min40 ?

Je vous remercie d’avance pour vos éclaircissements.

Hypothèses (peu crédibles) :

  • L’occupation de la voie de retour augmente la latence des acquittements (RTT), ce qui fait chuter le débit.

  • La charge CPU pour traiter deux flux chiffrés (HTTPS et VPN) est trop élevée. Est-ce que c’est pareil avec un téléchargement en HTTP ?

Merci pour la réponse :slightly_smiling_face:

Oui effectivement, le problème était aussi constaté en HTTP.

Mais j’ai enfin trouvé la cause de cette énorme différence de perfs.
Il semblerait que contrairement à cp, les commandes wget et curl n’utilisent pas de buffers (ou alors ils sont tout petits).
Conclusion: Avec un téléchargement avec wget ou curl, il y a énormément d’aller retour entre le serveur et le NAS et à chaque fois pour transporter peu de données. Raison pour laquelle c’est lent.
En rajoutant à la sortie des commandes curl ou wget la commande buffer, cette fois-ci cela permet d’envoyer moins souvent des données au NAS mais avec de plus gros paquets. Conclusion : Je retrouve les débits constatés avec cp.