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


55

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?


1
C'est une nouvelle copie.
grm

Réponses:


68

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' -zoption à 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 scpen passant l' -Coption. 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 rsyncrsh utilisant plutôt que ssh en tant que couche de transport par défaut, une comparaison équitable serait donc entre rsyncet rcp. Mais ssh est la valeur par défaut depuis la version 2.6.0 publiée le 2004-01-01.

Avec les paramètres de compression identiques, j'attendre rsyncet scpd'avoir essentiellement la même vitesse. S'il vous plaît partager des points de repère si vous trouvez le contraire.


3
Nice, en utilisant -C a fait ma vitesse de transfert augmentant de 5 Mo à 20 Mo
mardi

Je viens de tester cela pour un répertoire contenant 16 fichiers de 3 à 9 Mo environ et qui rsync -zest toujours beaucoup plus rapide qu'avec la scpcompression suggérée dans ces réponses. Il est également plus rapide que la compression et l'archivage dans un fichier manuellement et avec scpce fichier ( scpavec une compression encore plus lente que cela). La question du PO reste donc sans réponse: avec quelle scplenteur comparé à rsync?
ohcibi

12

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 des détails TCP, tels que la 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.


1
Super merci!! Cependant, il faut toujours toujours scp -p(conserver la date / heure) par défaut et probablement -r(récursif) scp -pr -C .... (Je viens juste de nettoyer et de relancer un travail de 40 Gb scp en utilisant ces derniers car j'ai oublié le -p)
smci

J'ai ajouté -p à la commande, merci pour cet indice.
Peter K

4

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 génère 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.


2
Scp ne crée pas réellement un nouveau processus pour chaque fichier en cours de copie. Vous avez un processus du côté expéditeur et un processus du côté destinataire, comme avec rsync.
Kenster

3

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

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. BTW, lors de l'utilisation de scp , ne pas foget pour choisir son chiffre en:

scp -c arcfour <source> <dest>

Alors que arcfourpeut accélérer le cryptage.


0

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.

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.