66 votes

Pourquoi rsync -avz est-il plus rapide que scp -r ?

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 ?

90voto

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.

19voto

Peter K Points 339

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.

5voto

churnd Points 4558

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.

4voto

coanor Points 141

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.

3voto

sencer Points 461

Pour un grand nombre de petits fichiers, rysnc est beaucoup plus rapide que scp. Ils disent que c'est parce qu'il a moins de frais généraux. Pour un seul gros fichier, je m'attendrais à des résultats similaires.

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