SSH üzerinden rsync neden SCP üretimini 10 kat artırıyor?


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

scpbana sadece 200K / s rsyncveriyor , ama bana 1.9M / s veriyor

Aynı sonuçları birkaç kez test ettim.

rsync birden çok konu kullanıyor ??

Yanıtlar:


7

Her iki protokol de SSH'ye dayanmaktadır. Ve SSH'nin kendisinin bir miktar yükü var : wiki

SCP, birkaç küçük dosyayı aktarmak için gerçekten naif bir algoritmaya sahip gerçekten naif bir protokoldür. Çok fazla senkronizasyona (RTT - Gidiş-Dönüş Süresi) ve küçük tamponlara (temel olarak 2048 B - kaynağı ) sahiptir.

Rsync performans için üretilmiştir ve bu nedenle çok daha iyi sonuçlar verir ve daha fazla özelliğe sahiptir.

10x hızlandırması sizin durumunuza özeldir. Yüksek gecikme şeritleri üzerinden tüm dünyaya dosya aktarırsanız, scpvakada çok daha kötü performans elde edersiniz , ancak yerel ağda performans neredeyse aynı olabilir.

Ve hayır, sıkıştırma ( -Ciçin scp) yardımcı olmaz. En büyük problem, gecikme ve arabellek boyutudur.


7

RSYNC ve SCP

SCP temel olarak SSH kullanarak yerel olarak veya bir ağ üzerinden kaynaktan hedefe düz bir eski kopya yapar, ancak -CSSH sıkıştırmasının ağ üzerindeki verilerin kopyalanmasını potansiyel olarak hızlandırmak için anahtarı kullanabilirsiniz .

RSYNC , veri aktarımı sırasında ağ bağlantısını otomatik olarak optimize eden verimli bir sağlama toplamı arama algoritması kullanarak ağ bağlantısı üzerindeki iki dosya grubu arasındaki farkları aktarır.

RSYNC

AÇIKLAMA

   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.

kaynak


SCP

AÇIKLAMA

 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.

kaynak


3
Bu durumda, durum biraz farklı olsa da: Sadece tek bir dosyayı kopyalıyor. (Bu muhtemelen uzak uçta mevcut değildir.)
Daniel B

1
@DanielB Bunu hala olabilir sanmıyorum RSYNC varsayılan olarak bile bir dosya için veri bağlantısı optimize eder ve belki iletim sırasında veriyi sıkıştırarak bu yüzden daha az veri parçaları aslında oysa boru aşağı gönderilir SCP olmadan -Canahtar gelmez' t Verileri borudan geçirirken sıkıştırır mı?
Pezevenk Suyu

2
rsyncKomut satırında ne sıkıştırma ne de sağlama toplamı belirtilmez . Tabii ki dosya içi delta algoritması her zaman aktiftir. Muhtemelen sadece bu scpberbat.
Daniel B
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.