Sıkıştırma ile scp neden olmadan daha yavaş?


11

Bir CentOS 6.5 VM'nin kök dosya sistemini bir laboratuvar sunucusundan diğerine depolayan 20 GB KVM vdisk dosyasını aktarmam gerekiyordu. Büyük dosya boyutu ve bir keresinde birkaç yüz mega bayta böyle bir vdisk dosyasını sıkıştırmış olduğum gerçeği, içgüdüsel olarak sıkıştırmayı etkinleştirdi, scpancak oldukça düşük bir aktarım hızı gördüğüme şaşırdım. Sonra ve bzip2ile birlikte denedim ve ürküyor. İşte yöntemlerin ve ortalama verimin özeti.sshcat

  • scp -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 11 MB / sn.
  • bzip2 -c vm1-root.img | ssh -l root 192.168.161.62 "bzip2 -d -c > /mnt/vdisks/vm1-root.img", 5 MB / sn. Bu daha da düşük sonuç, İnternet'te arama yapılmasına neden oldu.
  • scp -c arcfour -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 13 MB / sn. Bu şekilde kullanımı , serverfault üzerine bir cevapta-c arcfour önerildi . Bu pek yardımcı olmadı. Sonunda sıkıştırmayı devre dışı bıraktım.
  • scp vm1-root.img root@192.168.161.62:/mnt/vdisks/, 23 MB / sn.

Sıkıştırma daha hızlı olmamalı mıydı?

EDIT: Sorunun neden reddedildiğini bilmiyorum. Burada öğrenilecek bir şey olduğunu düşündüm.

ssh(1)@Sven'den man sayfa ipucunu aldıktan sonra , sıkıştırmayı içermeyen birkaç alternatif dosya aktarım yöntemini denedim, her ikisi de daha iyi sonuçlarla.

  • cat vm1-root.img | ssh -l root 192.168.161.62 "cat > /mnt/vdisks/vm1-root.img", 26 MB / sn.

  • nc -l 5678 > /mnt/vdisks/vm1-root.imgalıcıda ve nc 192.168.161.62 5678 < vm1-root.imgvericide 40 MB / sn. Bağlantı noktası 5678, keyfi bir bağlantı noktasıdır .

Kullanmanın ncen hızlı kopyalama yöntemi olduğu ortaya çıktı!

Geçmişte, scp -Cdüşündüğüm zaman çok iyi çalıştı. Örneğin, /var/log/messages*birkaç GB boyutunda syslogs ( ) aktarılırken . Birkaç yüz KB / sn'lik sıkıştırılmamış aktarım hızı 1-2 MB / sn'ye yükselir. Bu örnek, kılavuz sayfasında belirtildiği gibi yavaş bir bağlantı olması durumunda düşmektedir.

Ben 20 GB bölüm için yeni oluşturulan bir vdisk görüntü sıkıştırılmış boyutu sadece 200 MB olduğu bir durum var. Yaklaşık 25 MB / sn aktarım hızı ile kopyalama işlemini 13 dakika yerine sadece 8 saniyede yapabiliriz! Açıkçası, scpsıkıştırma olmadan bu durumda verimsizdir ve scp -Cdaha da kötüsü.

Sanırım, burada öğrenilen ana ders, scp -Csadece bir kolaylık olarak düşünülmelidir. Bir dosya önemli ölçüde sıkıştırılabilirse, önce kaynakta sıkıştırmak, sıkıştırılmış formu aktarmak ve sonunda hedefe sıkıştırmak daha iyidir. Sıkıştırma ve açma işlemini hızlı bir şekilde yapan araçlar (örn. Pbzip2 ) daha fazla yardımcı olacaktır.

Yanıtlar:


9

Alıntılama man ssh(kullanılan taban scp):

Modem hatlarında ve diğer yavaş bağlantılarda sıkıştırma istenir, ancak sadece hızlı ağlardaki işleri yavaşlatır.

Sorun, verilerin sıkıştırılmasının ağ üzerinden gönderilmesinden daha fazla zaman almasıdır.


Özellikle aktarım hızının neden daha düşük olduğunu soruyordu, ancak ssh'nin bunu aslında veri boyutunu tüm işlemin toplam süresine bölerek ve verileri sıkıştırdığı bölümü ve verileri ağ.
Ernie

@Ernie: 20 MB / sn hızında veri iletebiliyorsanız ve sıkıştırma çok yavaş olduğu için sistem yalnızca 15 MB / sn ile gönderebilirse, yalnızca 15 MB / sn ile iletilir. Hepsi bu kadar.
Sven

@Ernie: Tarafından yazdırılan aktarım hızı scp, sıkıştırma / açma işleminde harcanan süreyi içerir. Bildirilen değerler durum böyle değilse şaşırtıcı görünecektir.
pdp

0

Ayrıca, sıkıştırma üzerine nc en iyi hızı alır çünkü şifrelemez. Kayıpsız sıkıştırma, verilerin yedek bölümlerini bulmaya dayanır; bu, ağ düzeyinde yapıldığında maksimum [arabellek boyutu] bayta bakabileceğiniz ve tüm dosya ile ilk kez [dosya boyutu] baytına bakabileceğiniz içinde yinelenen bayt cümleleri avlamak ve ezmek.

Ayrıca, disk görüntülerini taşımak için ntfsclone / partclone gibi dosya sistemine duyarlı bir araç kullanmalısınız, çünkü sıkıştırma bile ayrılmamış blokları atlamaktan kurtulamaz - herhangi bir veri aktarmanız gerekmiyorsa aktarım hızınız sonsuzdur. Ayrıca bir Windows bölümünde takas ve hazırda bekletme dosyalarını yok etmeyi unutmayın ya da önemsiz kopyalamak sadece atmak ve yine de yeniden oluşturur.

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.