Saya agak bingung dengan ini? Mengapa rsync lebih cepat dari scp? Bukankah rsync menggunakan scp di bawah atau apakah ia melakukan sesuatu yang lebih efisien? Apakah ada cara untuk mempercepat scp?
Rsync jelas akan lebih cepat daripada scp jika target sudah berisi beberapa file sumber, karena rsync hanya menyalin perbedaannya. Tetapi saya menduga pertanyaan Anda adalah tentang melakukan penyalinan langsung ke target kosong.
Anda telah melewati -zopsi untuk rsync; ini mengaktifkan kompresi. Jika bandwidth jaringan adalah faktor pembatas (seringkali), kompresi dapat meningkatkan kecepatan transfer dengan jumlah yang nyata.
Anda juga dapat mengaktifkan kompresi dengan scpmelewatkan -Copsi. Ini harus tentang hal-hal dengan rsync. Kompresi tidak diaktifkan secara default di ssh karena menghemat bandwidth tetapi menambah latensi dan overhead CPU; latensi buruk untuk sesi interaktif (ini tidak berlaku untuk scp), dan overhead CPU tidak berguna jika file yang Anda salin sudah dikompresi.
Versi lama dari rsyncrsh yang digunakan daripada ssh sebagai lapisan transport default, jadi perbandingan yang adil antara rsyncdan rcp. Tapi ssh telah menjadi default sejak 2.6.0 dirilis pada 2004-01-01.
Dengan pengaturan kompresi yang sama, saya berharap rsyncdan scppada dasarnya memiliki kecepatan yang sama. Silakan bagikan tolok ukur jika Anda menemukan sebaliknya.
Bagus, menggunakan -C membuat kecepatan transfer saya meningkat dari 5MB menjadi 20MB
ǝʞɾuǝʞ
Saya baru saja menguji bahwa untuk direktori yang berisi 16 file sekitar 3-9 MB dan rsync -zmasih WAY lebih cepat daripada scpdengan kompresi yang disarankan dalam jawaban ini diaktifkan. Ini juga lebih cepat daripada mengompresi dan mengarsipkan ke dalam satu file secara manual dan scpfile itu ( scpdengan kompresi bahkan lebih lambat dari itu). Jadi pertanyaan OP sebenarnya tetap tidak terjawab: dengan scpbegitu lambat dibandingkan dengan rsync?
opsi ini mempercepat scp 5 kali dalam pengaturan saya dibandingkan dengan mesin scp polos: file.
Pembaruan, 2017
Sebenarnya scp lambat karena manajemen detail TCP yang buruk seperti MTU dan ukuran buffer. Untungnya ini telah diperbaiki oleh proyek HPN SSH . Untuk pemahaman saya, Anda dapat menggunakan HPN SSH sebagai transportasi untuk rsync.
Keren terima kasih!! Namun selalu selalu lakukan scp -p(pertahankan tanggal / waktu) sebagai default, dan mungkin -r(rekursif) begitu scp -pr -C .... (Saya hanya perlu menggosok dan memulai kembali pekerjaan scp 40Gb menggunakan ini karena saya lupa -p)
smci
Saya menambahkan -p pada perintah, terima kasih atas petunjuknya.
Peter K
4
Dulu sebaliknya, tapi saya percaya kecepatan rsync telah sangat meningkatkan beberapa revisi terakhir. Ini juga tergantung pada berapa banyak file yang Anda salin. Jika banyak, rsync biasanya akan lebih cepat karena scp memunculkan proses baru untuk setiap file yang Anda salin. Anda dapat mencoba melemahkan penggunaan cipher scp untuk melihat apakah itu mempercepat. Terakhir saya ingat, cipher arcfour adalah yang tercepat.
Scp sebenarnya tidak menelurkan proses baru untuk setiap file yang sedang disalin. Anda memiliki satu proses di sisi pengiriman dan satu di sisi penerima, seperti halnya dengan rsync.
Kenster
3
Untuk sejumlah besar file kecil rysnc jauh lebih cepat daripada scp. Mereka mengatakan itu karena memiliki overhead yang lebih kecil. Untuk satu file besar, saya akan mengharapkan hasil yang sama.
Untuk pengujian saya, rsync lebih cepat dari scp , Anda dapat menggunakan iotop untuk mengujinya saat mentransfer file yang sama:
sudo iotop -o
Mungkin Anda akan mendapatkan hasil yang berbeda, tetapi Anda dapat mengujinya sendiri. BTW, saat menggunakan scp , jangan foget untuk memilih sandi dengan:
Apakah Anda menyalin ulang file dari yang sudah ada? Jika demikian, kemampuan rsync untuk memblokir membandingkan dan hanya menyalin perbedaan akan relevan.
Jawaban:
Rsync jelas akan lebih cepat daripada scp jika target sudah berisi beberapa file sumber, karena rsync hanya menyalin perbedaannya. Tetapi saya menduga pertanyaan Anda adalah tentang melakukan penyalinan langsung ke target kosong.
Anda telah melewati
-z
opsi untukrsync
; ini mengaktifkan kompresi. Jika bandwidth jaringan adalah faktor pembatas (seringkali), kompresi dapat meningkatkan kecepatan transfer dengan jumlah yang nyata.Anda juga dapat mengaktifkan kompresi dengan
scp
melewatkan-C
opsi. Ini harus tentang hal-hal dengan rsync. Kompresi tidak diaktifkan secara default di ssh karena menghemat bandwidth tetapi menambah latensi dan overhead CPU; latensi buruk untuk sesi interaktif (ini tidak berlaku untukscp
), dan overhead CPU tidak berguna jika file yang Anda salin sudah dikompresi.Versi lama dari
rsync
rsh yang digunakan daripada ssh sebagai lapisan transport default, jadi perbandingan yang adil antararsync
danrcp
. Tapi ssh telah menjadi default sejak 2.6.0 dirilis pada 2004-01-01.Dengan pengaturan kompresi yang sama, saya berharap
rsync
danscp
pada dasarnya memiliki kecepatan yang sama. Silakan bagikan tolok ukur jika Anda menemukan sebaliknya.sumber
rsync -z
masih WAY lebih cepat daripadascp
dengan kompresi yang disarankan dalam jawaban ini diaktifkan. Ini juga lebih cepat daripada mengompresi dan mengarsipkan ke dalam satu file secara manual danscp
file itu (scp
dengan kompresi bahkan lebih lambat dari itu). Jadi pertanyaan OP sebenarnya tetap tidak terjawab: denganscp
begitu lambat dibandingkan denganrsync
?coba scp dengan cara cepat
opsi ini mempercepat scp 5 kali dalam pengaturan saya dibandingkan dengan mesin scp polos: file.
Pembaruan, 2017
Sebenarnya scp lambat karena manajemen detail TCP yang buruk seperti MTU dan ukuran buffer. Untungnya ini telah diperbaiki oleh proyek HPN SSH . Untuk pemahaman saya, Anda dapat menggunakan HPN SSH sebagai transportasi untuk rsync.
sumber
scp -p
(pertahankan tanggal / waktu) sebagai default, dan mungkin-r
(rekursif) begituscp -pr -C ...
. (Saya hanya perlu menggosok dan memulai kembali pekerjaan scp 40Gb menggunakan ini karena saya lupa-p
)Dulu sebaliknya, tapi saya percaya kecepatan rsync telah sangat meningkatkan beberapa revisi terakhir. Ini juga tergantung pada berapa banyak file yang Anda salin. Jika banyak, rsync biasanya akan lebih cepat karena scp memunculkan proses baru untuk setiap file yang Anda salin. Anda dapat mencoba melemahkan penggunaan cipher scp untuk melihat apakah itu mempercepat. Terakhir saya ingat, cipher arcfour adalah yang tercepat.
sumber
Untuk sejumlah besar file kecil rysnc jauh lebih cepat daripada scp. Mereka mengatakan itu karena memiliki overhead yang lebih kecil. Untuk satu file besar, saya akan mengharapkan hasil yang sama.
sumber
Untuk pengujian saya, rsync lebih cepat dari scp , Anda dapat menggunakan iotop untuk mengujinya saat mentransfer file yang sama:
Mungkin Anda akan mendapatkan hasil yang berbeda, tetapi Anda dapat mengujinya sendiri. BTW, saat menggunakan scp , jangan foget untuk memilih sandi dengan:
Sementara
arcfour
bisa mempercepat enkripsi.sumber
Apakah Anda menyalin ulang file dari yang sudah ada? Jika demikian, kemampuan rsync untuk memblokir membandingkan dan hanya menyalin perbedaan akan relevan.
sumber