web-dev-qa-db-fra.com

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

Cela me laisse un peu perplexe? Pourquoi rsync est-il plus rapide que scp? Rsync n'utilise-t-il pas scp ou ne fait-il pas quelque chose de plus efficace? Y at-il un moyen d'accélérer SCP?

54
grm

Rsync sera évidemment plus rapide que scp si la cible contient déjà certains des fichiers source, car rsync ne copie que les différences. Mais je soupçonne que votre question portait sur la copie directe d’une cible vide.

Vous avez passé l'option -z à rsync; cela active la compression. Si la bande passante du réseau est le facteur limitant (ce qui est souvent le cas), la compression peut améliorer considérablement la vitesse de transfert.

Vous pouvez également activer la compression avec scp en passant l'option -C. Cela devrait à propos même des choses avec rsync. La compression n'est pas activée par défaut dans ssh car elle permet d'économiser de la bande passante, mais ajoute de la latence et de la surcharge de temps processeur. la latence est mauvaise pour les sessions interactives (cela ne s'applique pas à scp), et la surcharge du processeur est inutile si les fichiers que vous copiez sont déjà compressés.

Les anciennes versions de rsync utilisaient rsh plutôt que ssh comme couche de transport par défaut; une comparaison équitable serait donc entre rsync et rcp. Mais ssh est la valeur par défaut depuis la version 2.6.0 publiée le 2004-01-01.

Avec des paramètres de compression identiques, rsync et scp devraient avoir sensiblement la même vitesse. S'il vous plaît partager des points de repère si vous trouvez le contraire.

68
Gilles

essayez scp rapidement

scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput'  -c arcfour machine:file .

ces options accélèrent scp 5 fois dans ma configuration par rapport à scp machine: file.

Mise à jour, 2017

En réalité, scp est lent en raison d'une mauvaise gestion de TCP détails tels que le MTU et la taille de la mémoire tampon. Heureusement, cela a été corrigé par le projet HPN SSH . À ma connaissance, vous pouvez utiliser HPN SSH comme moyen de transport pour rsync.

12
Peter K

Pour un grand nombre de petits fichiers, rysnc est beaucoup plus rapide que scp. Ils disent que c'est parce que ses frais généraux sont moins importants. Pour un gros fichier, j'attendrais des résultats similaires.

3
sencer

Auparavant, c'était l'inverse, mais je pense que la vitesse de rsync s'est considérablement améliorée au cours des dernières révisions. Cela dépend également du nombre de fichiers que vous copiez. Si c'est beaucoup, rsync sera généralement plus rapide car scp crée un nouveau processus pour chaque fichier que vous copiez. Vous pouvez essayer d’affaiblir le chiffrement utilisé par scp pour voir s’il accélère. Aux dernières nouvelles, le chiffre de l'arc était le plus rapide.

3
churnd

Pour mes tests, rsync est plus rapide que scp , vous pouvez utiliser iotop pour les tester lors du transfert du même fichier:

Sudo iotop -o

Vous obtiendrez peut-être un résultat différent, mais vous pourrez les tester vous-même. En passant, lors de l’utilisation de scp , ne choisissez pas son code par:

scp -c arcfour <source> <dest>

Alors que arcfour peut accélérer le cryptage.

3
coanor

Recopiez-vous des fichiers par-dessus des fichiers existants? Si tel est le cas, la capacité de rsync à bloquer la comparaison et à ne copier que les différences sera pertinente.

0
Linker3000