Benim rsync neden saf cp hatta scp ile karşılaştırıldığında bu kadar yavaş?


15

Ben bir pay (pay monte edilir monte aracılığıyla Windows 7'ye Linux dosya aktarma ediyorum dan Windows'un üzerinde benim LAN içinde yeni makineye eski çok sayıda veri (yani yaklaşık bir TB) taklit ediyorum .. Linux) . Şimdiye kadar 100MBit'e sahip olduğum için yeterince şanssızım. Doğal olarak körü körüne rsync kullandım ama bir gün sonra neden bu kadar yavaş hissettiğini merak ettim. İlerleme göstergesinin etkinleştirilmesi, yaklaşık 2MB / s aktarım hızımı gösterdi.

Bu yüzden makul bir büyük dosya (800MB) aldım ve transfer zamanlamasını (1) izledim:

cp : 05:33
scp (2): 06:33
rsync : 21:51

1) Her çalıştırma arasındaki dosyaları sildim
2) scp localhost üzerinden aynı Linux makinesine doğrudan paylaşıma; tamamen işe yaramaz ama bir ilerleme ölçer sağladı

Testler,

(cp|scp|rsync) <source> <destination>

Scp için host / port dışında özel bir argüman yok. Hatta -Wrsync için anahtarı denedim ama on dakika sonra iptal edildi. rsync Lenny üzerinde çalışan 3.0.3. Kopyalama sürecini her zaman kesintiye uğratmak ve devam ettirmek için beni rsync'e yönlendirdim, ancak şimdi bu gereksinimi ciddi olarak yeniden düşünmem gerektiğini düşünüyorum.

Bu kadar büyük bir fark nasıl mümkün olabilir?

Güncelleme / Çözüldü:

Rschuler sayesinde konuyu çözebildim : verimlilik nedeniyle smb montajı yerine rsync arka plan programı kullanın. Bahsedilen DeltaCopy işe yarıyor, ancak birkaç şeye dikkat etmek gerekiyor

  • güzel bir GUI sarmalayıcısıdır, ancak bir şeyler ters giderse, nasıl düzeltileceğini bilmek iyidir. Görünüşe göre kullanıcı kimlik bilgilerimi girdim, altında rsync hizmetini ilk kez çalıştırıyorum, ancak GUI yeni bir tane belirlememe izin vermedi. Bir hizmet olarak çalıştığını ve orada uygun kimlik bilgilerini ayarlayabildiğini anladım
  • Bağlantılara izin vermek için bağlantı noktasını el ile güvenlik duvarına eklemek gerekiyor
  • Kişisel zevk: paylaşımların parola korumalı olduğundan veya yoksa, hizmetin pencerelerle otomatik olarak başlamamasından emin olun; her ihtimale karşı
  • Sarılı rsync ikili dosyası yerel bir Windows bağlantı noktası değil, cygwin üzerine kuruludur. Ancak, içerdiği cygwin DLL UTF8 düzgün işlemez ve ascii olmayan karakterler karıştırdı. Http://www.okisoft.co.jp/esc/utf8-cygwin/ adresinden sabit bir DLL alın .

Bundan sonra, transfer değeri 2MB / s'den ~ 8MB / s'ye yükseldi; kesinlikle harika!


Her test çalıştırmanız arasında hedef dosyayı sildiniz mi? Hedef dosya zaten mevcutsa ve meta veriler doğru değilse, hem kaynağı hem de hedefi kontrol etmelidir.
Zoredache

@Zoredache: Çalışmalar arasındaki dosyaları sildim; Ayrıca -Wanahtarın bunu görmezden gelmesi gerekiyor
işareti

Yanıtlar:


18

(paylaşım Linux'ta Windows'tan yüklenir)

O senin problemin. rsync hedef üzerinde yuvarlama sağlama toplamı yapıyor. Windows paylaşır. Sağlama toplamlarını hesaplamak için tüm verileri ağ üzerinden alıyorsunuz. (Muhtemelen bir kereden fazla).

Yapmanız gereken her iki makinede de rsync çalıştırmak. Bu şekilde ağ kabloları üzerinden sadece farklar (ve sağlama toplamları) aktarılır. DeltaCopy pencereli bir rsync'dir. Gitmen için yeterince iyi dokümana sahip.

Neden rsync'i kötüye kullandığınızı düşündüğümün daha iyi bir açıklaması için bu soruya verilen oylamaya verilen cevaba bakın .


Bingo, cevabın daha önemli olamazdı. Çok teşekkürler, dersimi öğrendim.
işaretleyin
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.