Rsync --bwlimit çalışmıyor


12

Şu anda büyük dosya bir ana bilgisayardan diğerine aktarmak için rsync kullanıyorum. Bu transfer için borçlandırmayı sınırlamak istiyorum. Man sayfasını okuduktan sonra bir KB / s değeri bekleyen --bwlimit seçeneğini buldum.

100Mbit / s civarı aktarım sınırlamak istiyorum Bu yüzden aşağıdaki ayarları kullandım:

rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/

Ancak rsync'in çıktısına göre buna saygı duyulmuyor gibi görünüyor:

file.sql.gz
   570851702 100%   33.90MB/s    0:00:16 (xfer#5, to-check=34/39)
file.sql.gz
    11195140 100%    7.45MB/s    0:00:01 (xfer#6, to-check=33/39)
file.sql.gz
    51439169 100%   19.41MB/s    0:00:02 (xfer#7, to-check=32/39)
file.sql.gz
       34022 100%    1.55MB/s    0:00:00 (xfer#8, to-check=31/39)
file.sql.gz
     2305698 100%    6.96MB/s    0:00:00 (xfer#9, to-check=30/39)
file.sql.gz
     2152942 100%    2.73MB/s    0:00:00 (xfer#10, to-check=29/39)
file.sql.gz
    86655633 100%   19.33MB/s    0:00:04 (xfer#11, to-check=28/39)
file.sql.gz
  3614476032  40%   34.82MB/s    0:02:28

Yanlış değilsem: 19.33MB / s ~ = 154Mbit / s

Burada yanlış olan ne?

PS: rsync sürüm 3.0.6 protokolü sürüm 30

Yardımın için teşekkürler !


Burada aynı parametreleri kullanarak rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) ve 3.0.9 (Ubuntu) ile çalışır. Sisteminiz hakkında daha fazla bilgi vermelisiniz.
scai


@mreithub Bu yazıdaki cevap gerçekten ilginç ama aslında Hugo oldukça büyük dosyaları aktarıyor gibi görünüyor.
scai

Her dosya için rsync bwlimits, bw sınırlamak için bağlantıyı sınırlamanız gerekir, (linux üzerinde iptables + tc atmail.com/kb/2009/throttling-bandwidth ), bu yüzden kolay bir yol yok.
zb '

Merhaba, RHEL 6 kullanıyorum ama bu pek fark yaratmıyor. Evet, bu büyük bir dosya, bu nedenle borç neredeyse istikrarlı olmalıdır. Bilgi için SCP ile eşdeğer komut harika çalışıyor. Bu yüzden rsync ile neyin yanlış olduğunu bilmiyorum.
Hugo

Yanıtlar:


10

Bence man sayfasında belirtildiği gibi bazı "patlama" yaşadınız:

--bwlimit=RATE
          ... 
          Some "burstiness" may be seen where rsync writes out a block 
          of data and then sleeps to bring the average rate into compliance.

Daha önce sorduğum gibi, işinizin sonundaki oran en sonunda 10 milyon ile sınırlıydı.


4

Rsync man sayfasında belirtildiği gibi , KByte / sn olarak aktarılır:

--bwlimit=KBPS          limit I/O bandwidth; KBytes per second

2
Kullandığım şey: 10000 kilobayt = 78.12500 megabit
Hugo

2
Söylediklerime dikkat etmedin. Rsync kullanımı Byte yerine biraz , bu yüzden de bant genişliğini hesaplamak zorunda bit ve bunu gizli byte
shgnInc

Ben aynı sorunları var, ben koymak --bwlimit=100, ben 265-285 kB / s arasında çok düzenli 275kB / s elde, hiçbir patlama. Burada yanlış olan ne?
Brethlosze

2

Aktarmayı 100Mbit / s civarı ile sınırlamak istiyorum Bu yüzden aşağıdaki ayarları kullandım:

rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/

100 Mbit / s (yaklaşık) 10 MByte / s, aslında 10.000 KByte / s. Eğer rsyncpatlama vuruyorsanız, belki de ayrı bir araç trickleyardımcı olacaktır:

trickle -s -d 10000 -u 10000 -t 10 -l 100 rsync --progress -v --temp-dir=/tmp srv:/tmp/* /tmp/

0

Gösterilen değer, sıkıştırma ve delta algoritmasından kaynaklanan hızları içeren etkili aktarım hızıdır rsync, kısmi aktarımlar etkinken (ör. --append-verify) Kesintiye uğramış bir oturum yeniden başlatılırsa büyük sayıları görerek kolayca gözlemlenebilir .

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.