Dlaczego rsync przez SSH daje mi 10-krotną przepustowość SCP?

12
  1. scp user@aws-ec2:~/file file
  2. rsync --partial --progress -Pav -e ssh user@aws-ec2:~/file file

scpdaje mi tylko 200 K / s, ale rsyncdaje 1,9 M / s

Testowałem kilka razy, wszystkie te same wyniki.

rsync używa wielu wątków?

Sato
źródło

Odpowiedzi:

7

Oba protokoły są oparte na SSH. A sam SSH ma pewne koszty ogólne : wiki

SCP to naprawdę naiwny protokół z naprawdę naiwnym algorytmem do przesyłania kilku małych plików. Ma dużo synchronizacji (RTT - Round Trip Time) i małe bufory (w zasadzie 2048 B - źródło ).

Rsync został stworzony z myślą o wydajności, dlatego daje znacznie lepsze wyniki i ma więcej funkcji.

Przyspieszenie 10x jest specyficzne dla twojego przypadku. Jeśli przesyłasz pliki na całym świecie za pomocą linii o dużych opóźnieniach, uzyskasz znacznie gorszą wydajność w scpprzypadku, ale w sieci lokalnej wydajność może być prawie taka sama.

I nie, kompresja ( -Cfor scp) nie pomoże. Największe problemy to opóźnienie i rozmiar bufora.

Jakuje
źródło
7

RSYNC vs SCP

SCP w zasadzie wykonuje zwykłą starą kopię ze źródła do miejsca docelowego lokalnie lub w sieci za pomocą SSH, ale możesz użyć -Cprzełącznika, aby włączyć kompresję SSH, aby potencjalnie przyspieszyć kopiowanie danych w sieci.

RSYNC przesyła tylko różnice między dwoma zestawami plików przez połączenie sieciowe, wykorzystując wydajny algorytm wyszukiwania sum kontrolnych, który automatycznie optymalizuje połączenie sieciowe podczas przesyłania danych.

RSYNC

OPIS

   rsync is a program that behaves in much the same way that rcp does, but
   has many more options and uses  the  rsync  remote-update  protocol  to
   greatly  speed  up  file  transfers  when the destination file is being
   updated.

   The rsync remote-update protocol allows rsync to transfer just the dif-
   ferences between two sets of files across the network connection, using
   an efficient  checksum-search  algorithm  described  in  the  technical
   report that accompanies this package.

źródło


SCP

OPIS

 scp copies files between hosts on a network.  It uses ssh(1) for data
 transfer, and uses the same authentication and provides the same secu‐
 rity as ssh(1).  scp will ask for passwords or passphrases if they are
 needed for authentication.




 File names may contain a user and host specification to indicate that
 the file is to be copied to/from that host.  Local file names can be
 made explicit using absolute or relative pathnames to avoid scp treat‐
 ing file names containing ‘:’ as host specifiers.  Copies between two
 remote hosts are also permitted.

źródło

Pimp Juice IT
źródło
3
W tym przypadku sytuacja wygląda nieco inaczej: kopiuje tylko jeden plik. (Prawdopodobnie jeszcze nie istnieje na drugim końcu).
Daniel B,
1
@DanielB Nie sądzisz, że nadal może być tak, że RSYNC domyślnie optymalizuje połączenie danych nawet dla jednego pliku i być może kompresuje dane podczas transmisji, więc mniej fragmentów danych jest faktycznie przesyłanych w dół, podczas gdy SCP bez -Cprzełącznika nie robi t kompresować dane podczas transmisji w dół rury?
Pimp Juice IT
2
W rsyncwierszu poleceń nie podano ani kompresji, ani sumy kontrolnej . Oczywiście algorytm delta w pliku jest zawsze aktywny. To chyba tylko do scpbani.
Daniel B