Dlaczego rsync -avz jest szybszy niż scp -r?


55

Jestem tym trochę zaskoczony? Dlaczego rsync jest szybszy niż scp? Czy rsync nie używa scp poniżej, czy robi coś bardziej wydajnego? Czy jest jakiś sposób na przyspieszenie SCP?


1
To świeża kopia.
grm

Odpowiedzi:


68

Rsync będzie oczywiście szybszy niż scp, jeśli cel zawiera już niektóre pliki źródłowe, ponieważ rsync kopiuje tylko różnice. Ale podejrzewam, że twoje pytanie dotyczyło robienia prostej kopii na pusty cel.

Przekazałeś -zopcję rsync; włącza się kompresja. Jeśli przepustowość sieci jest czynnikiem ograniczającym (często jest), kompresja może poprawić szybkość transferu o zauważalną wielkość.

Możesz także włączyć kompresję scp, przekazując tę -Copcję. Powinno to dotyczyć nawet rsync. Kompresja nie jest domyślnie włączona w ssh, ponieważ oszczędza przepustowość, ale dodaje opóźnienie i obciążenie procesora; opóźnienie jest złe dla sesji interaktywnych (nie dotyczy scp), a obciążenie procesora jest bezużyteczne, jeśli kopiowane pliki są już skompresowane.

Starsze wersje rsyncużywały rsh zamiast ssh jako domyślnej warstwy transportowej, więc uczciwe porównanie byłoby pomiędzy rsynci rcp. Ale ssh jest domyślną wersją od wersji 2.6.0 wydanej 01.01.2004.

Przy identycznych ustawieniach kompresji oczekiwałbym rsynci scpmiałby zasadniczo taką samą prędkość. Udostępnij wyniki testów porównawczych, jeśli znajdziesz inne.


3
Fajnie, użycie -C sprawiło, że moja prędkość transferu wzrosła z 5 MB do 20 MB
3ɾɾǝʞ 03

Właśnie przetestowałem to dla katalogu zawierającego 16 plików o wielkości około 3-9 MB i rsync -zwciąż jest DROGA szybszy niż scpprzy jakiejkolwiek kompresji sugerowanej w tych odpowiedziach. Jest także szybszy niż ręczne kompresowanie i archiwizowanie do jednego pliku i scp„odczytywanie” tego pliku ( scpz kompresją nawet wolniejszą). Tak więc pytanie PO pozostaje bez odpowiedzi: wth jest scptak wolny w porównaniu do rsync?
ohcibi

12

spróbuj scp w szybki sposób

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

te opcje przyspieszają scp 5 razy w mojej konfiguracji w porównaniu do zwykłego komputera scp: plik.

Aktualizacja, 2017 r

W rzeczywistości scp działa powoli z powodu złego zarządzania szczegółami TCP, takimi jak MTU i rozmiar bufora. Na szczęście zostało to naprawione przez projekt HPN SSH . O ile mi wiadomo, możesz użyć HPN SSH jako transportu rsync.


1
Wielkie dzieki!! Zawsze jednak zawsze rób to scp -p(zachowaj datę / czas) jako domyślną i prawdopodobnie -r(rekurencyjną) tak scp -pr -C .... (Musiałem tylko wyszorować i zrestartować zadanie scp 40 Gb za pomocą tych, ponieważ zapomniałem -p)
smci 24.10.17

Dodałem -p do polecenia, dzięki za podpowiedź.
Peter K

4

Kiedyś było na odwrót, ale sądzę, że prędkość rsync znacznie się poprawiła w ostatnich kilku wersjach. Zależy to również od liczby kopiowanych plików. Jeśli to dużo, rsync zwykle będzie szybszy, ponieważ scp spawnuje nowy proces dla każdego kopiowanego pliku. Możesz spróbować osłabić użycie szyfru scp, aby sprawdzić, czy przyspieszy. Pamiętam, że szyfr w arcfour był najszybszy.


2
Scp nie odradza nowego procesu dla każdego kopiowanego pliku. Masz jeden proces po stronie wysyłającej i jeden po stronie odbierającej, podobnie jak w przypadku rsync.
Kenster

3

W przypadku dużej liczby małych plików rysnc jest znacznie szybszy niż scp. Mówią, że to dlatego, że ma mniejszy narzut. W przypadku jednego dużego pliku oczekiwałbym podobnych wyników.


3

Do moich testów rsync jest szybszy niż scp , możesz użyć iotop do przetestowania ich podczas przesyłania tego samego pliku:

sudo iotop -o

Może otrzymasz inny wynik, ale możesz sam je przetestować. BTW, podczas korzystania z scp , nie zapominaj, aby wybrać swój szyfr za pomocą:

scp -c arcfour <source> <dest>

Chociaż arcfourmoże przyspieszyć szyfrowanie.


0

Czy ponownie kopiujesz pliki na istniejące? Jeśli tak, istotna będzie zdolność rsync do blokowania porównania i kopiowania tylko różnic.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.