Je suis un peu perplexe à ce sujet ? Pourquoi rsync est-il plus rapide que scp ? rsync n'utilise pas scp en dessous ou fait-il quelque chose de plus efficace ? Existe-t-il un moyen d'accélérer scp ?
Réponses
Trop de publicités?Rsync sera évidemment plus rapide que scp si la cible contient déjà certains des fichiers sources, puisque rsync ne copie que les différences. Mais je soupçonne que votre question portait sur une copie directe vers une cible vide.
Vous avez passé le -z
option pour rsync
; cela active la compression. Si la bande passante du réseau est le facteur limitant (c'est souvent le cas), la compression peut améliorer la vitesse de transfert de façon notable.
Vous pouvez également activer la compression avec scp
en passant le -C
option. Cela devrait permettre d'équilibrer les choses avec rsync. La compression n'est pas activée par défaut dans ssh parce qu'elle permet d'économiser de la bande passante mais ajoute de la latence et de la surcharge CPU ; la latence est mauvaise pour les sessions interactives (ceci ne s'applique pas à l'option scp
), et la surcharge du CPU est inutile si les fichiers que vous copiez sont déjà compressés.
Les anciennes versions de rsync
utilisait rsh plutôt que ssh comme couche de transport par défaut, donc une comparaison juste serait entre rsync
y rcp
. Mais ssh est la solution par défaut depuis la version 2.6.0 publiée le 2004-01-01.
Avec des paramètres de compression identiques, je m'attendrais rsync
y scp
pour avoir essentiellement la même vitesse. Veuillez partager les benchmarks si vous trouvez le contraire.
Essayez scp d'une manière rapide
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
ces options accélèrent scp 5 fois dans mon installation par rapport à scp machine:file .
Mise à jour, 2017
En fait, scp est lent en raison d'une mauvaise gestion des détails TCP tels que le MTU et la taille du tampon. Heureusement, cela a été corrigé par le HPN SSH projet. Si je comprends bien, vous pouvez utiliser HPN SSH comme transport pour rsync.
Avant, c'était l'inverse, mais je crois que la vitesse de rsync s'est grandement améliorée lors des dernières révisions. Cela dépend aussi du nombre de fichiers que vous copiez. Si c'est beaucoup, rsync sera généralement plus rapide car scp génère un nouveau processus pour chaque fichier que vous copiez. Vous pouvez essayer d'affaiblir le chiffrement utilisé par scp pour voir si cela accélère. Si je me souviens bien, le chiffrement arcfour était le plus rapide.
Pour mes essais, rsync est plus rapide que scp vous pouvez utiliser iotop pour les tester sur le transfert du même fichier :
sudo iotop -o
Vous obtiendrez peut-être des résultats différents, mais vous pouvez les tester vous-même. BTW, en utilisant scp n'oubliez pas de choisir son cryptogramme :
scp -c arcfour <source> <dest>
Alors que arcfour
peut accélérer le cryptage.
- Réponses précédentes
- Plus de réponses