Mengapa rsync over SSH memberi saya 10x throughput SCP?


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

scphanya memberi saya 200K / s, tetapi rsyncmemberi saya 1,9M / s

Saya menguji beberapa kali, semua hasil yang sama.

rsync menggunakan beberapa utas ??

Jawaban:


7

Kedua protokol didasarkan pada SSH. Dan SSH sendiri memiliki beberapa overhead : wiki

SCP adalah protokol yang benar-benar naif dengan algoritma yang benar-benar naif untuk mentransfer beberapa file kecil. Ini memiliki banyak sinkronisasi (RTT - Round Trip Time) dan buffer kecil (pada dasarnya 2048 B - sumber ).

Rsync dibuat untuk kinerja dan karenanya memberikan hasil yang jauh lebih baik dan memiliki lebih banyak fitur.

Speedup 10x khusus untuk kasus Anda. Jika Anda akan mentransfer file di seluruh dunia melalui jalur latensi tinggi, Anda akan mendapatkan kinerja yang jauh lebih buruk dalam scpkasus ini, tetapi pada jaringan lokal, kinerjanya bisa hampir sama.

Dan tidak, kompresi ( -Cuntuk scp) tidak akan membantu. Masalah terbesar adalah latensi dan ukuran buffer.


7

RSYNC vs SCP

SCP pada dasarnya melakukan salinan lama biasa dari sumber ke tujuan secara lokal atau melintasi jaringan menggunakan SSH tetapi Anda mungkin dapat menggunakan -Csakelar untuk memungkinkan kompresi SSH berpotensi mempercepat salinan data di seluruh jaringan.

RSYNC hanya mentransfer perbedaan antara dua set file di koneksi jaringan, menggunakan algoritma pencarian checksum yang efisien yang secara otomatis mengoptimalkan koneksi jaringan selama transfer data.

RSYNC

DESKRIPSI

   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.

sumber


SCP

DESKRIPSI

 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.

sumber


3
Dalam hal ini, situasinya agak berbeda: Dia hanya menyalin satu file. (Barangkali itu belum ada di ujung yang jauh.)
Daniel B

1
@DanielB Anda tidak berpikir itu mungkin RSYNC secara default mengoptimalkan koneksi data bahkan untuk satu file dan mungkin mengompresi data selama transmisi sehingga potongan data yang lebih sedikit benar-benar dikirim ke pipa sedangkan SCP tanpa -Csaklar tidak melakukan ' t kompres data selama transmisi turun ke pipa?
Pimp Juice,

2
Kompresi atau checksumming tidak ditentukan dalam rsyncbaris perintahnya. Tentu saja algoritma delta dalam file selalu aktif. Mungkin saja itu scpmenyebalkan.
Daniel B
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.