Neden rsync -avz scp-r'den daha hızlı?


55

Bu konuda biraz şaşırdım? Neden rsync scp'den daha hızlı? Rsync altındaki scp kullanmıyor mu yoksa daha verimli bir şey mi yapıyor? Scp'yi hızlandırmanın bir yolu var mı?


1
Bu yeni bir kopya.
grm

Yanıtlar:


68

Hedef zaten bazı kaynak dosyalarını içeriyorsa, Rsync yalnızca farkları kopyaladığından, açıkça scp'den daha hızlı olacaktır. Ancak sorunuzun boş bir hedefe basit bir kopya çıkarmaktan ibaret olduğunu düşünüyorum.

-zSeçeneği geçtiniz rsync; bu sıkıştırma açar. Şebeke bant genişliği sınırlayıcı bir faktör ise (genellikle), sıkıştırma aktarım hızını belirgin bir miktarda artırabilir.

Seçeneği scpileterek sıkıştırmayı da etkinleştirebilirsiniz -C. Bu, rsync ile ilgili şeyler hakkında bile olmalı. Bant genişliği tasarrufu sağladığından gecikme ve CPU ek yükü eklediğinden sıkıştırma, ssh'de varsayılan olarak etkin değildir; gecikme etkileşimli oturumlar için kötüdür (bu geçerli değildir scp) ve kopyaladığınız dosyalar zaten sıkıştırılmışsa CPU ek yükü işe yaramazdır.

rsyncVarsayılan taşıma katmanı olarak kullanılan ssh yerine eski rsh'nin eski sürümleri olduğundan, adil bir karşılaştırma rsyncve arasında olacaktır rcp. Ancak ssh, 2004-01-01’de yayımlanan 2.6.0’dan bu yana varsayılan olmuştur.

Özdeş sıkıştırma ayarları ile, ben beklediğiniz rsyncve scptemelde aynı hız olması. Aksi takdirde lütfen kriterleri paylaşın.


3
Nice, -C kullanarak aktarım
hızımı

Ben sadece 3-9 MB civarında 16 dosya içeren bir dizin için test ettim ve rsync -zhala scpbu cevaplarda etkin olan herhangi bir sıkıştırma ile WAY'den daha hızlı olduğunu test ettim . Ayrıca manuel olarak bir dosyaya sıkıştırıp arşivlemek scpve bu dosyayı kullanmaktan scpdaha hızlıdır ( sıkıştırmayla bile daha yavaştır). Öyleyse, OP sorusu aslında cevapsız kalıyor: neye göre scpçok yavaş rsync?
ohcibi

12

hızlı bir şekilde scp deneyin

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

bu seçenekler düz scp makinesine kıyasla kurulumumda scp'yi 5 kat hızlandırıyor: dosya.

Güncelleme, 2017

Aslında scp, MTU ve arabellek boyutu gibi TCP ayrıntılarının kötü yönetimi nedeniyle yavaştır. Neyse ki bu, HPN SSH projesi tarafından düzeltildi . Anladığım kadarıyla HPN SSH'yi rsync için bir aktarma aracı olarak kullanabilirsiniz.


1
Müthiş, teşekkürler !! Ancak her zaman scp -pvarsayılan ( her zaman tarih / saati koru) yapın ve muhtemelen -r(özyinelemeli) yapın scp -pr -C .... (Sadece bunları unuttum çünkü kullanarak -p
40 GB'lık

Komuta -p ekledim, bir ipucu için teşekkürler.
Peter K,

4

Etrafında başka bir yol vardı, ama rsync'in hızının son birkaç revizyonda büyük artış sağladığına inanıyorum. Ayrıca kaç tane dosya kopyaladığınıza da bağlıdır. Çok ise rsync genellikle daha hızlı olacaktır çünkü scp kopyaladığınız her dosya için yeni bir işlem başlatır. Hızlandırılıp hızlandırılmadığını görmek için şifre scp'nin kullandığı zayıflamayı deneyebilirsiniz. En son hatırladığım, arkforo şifresi en hızlısıydı.


2
Scp, kopyalanan her dosya için aslında yeni bir işlem oluşturmaz. Bir rsync'de olduğu gibi, gönderen tarafta bir tane ve alıcı tarafta bir tane var.
Kenster,

3

Rysnc çok sayıda küçük dosya için scp'den çok daha hızlıdır. Genel gider daha küçük olduğu için diyorlar. Büyük bir dosya için benzer sonuçlar beklerdim.


3

Benim Test için rsync daha hızlıdır scp kullanabileceğiniz, iotop aynı dosyayı aktarma bunları test etmek:

sudo iotop -o

Belki farklı bir sonuç alırsınız, ancak onları kendiniz test edebilirsiniz. BTW, scp kullanırken , şifresini kullanarak şifresini seçmeyin:

scp -c arcfour <source> <dest>

arcfourŞifreleme hızlandırabilir iken .


0

Dosyaları mevcut dosyalara tekrar mı kopyalıyorsunuz? Öyleyse, rsync'in karşılaştırmayı engelleme ve yalnızca farkları kopyalama yeteneği alakalı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.