Rsync --bwlimit tidak berfungsi


12

Saat ini saya menggunakan rsync untuk memindahkan file besar dari satu host ke host lain. Saya ingin membatasi debit untuk transfer ini. Setelah membaca halaman manual saya menemukan opsi --bwlimit yang mengharapkan nilai KB / s.

Saya ingin membatasi transfert hingga 100Mbit / s. Jadi saya menggunakan pengaturan berikut:

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

Tapi ini sepertinya tidak dihormati menurut keluaran rsync:

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

Jika saya tidak salah: 19.33MB / s ~ = 154Mbit / s

Jadi apa yang salah di sini?

PS: rsync versi 3.0.6 protokol versi 30

Terima kasih atas bantuan Anda !


Ini berfungsi dengan rsync 3.0.4 (Ubuntu), 3.0.6 (openSUSE) dan 3.0.9 (Ubuntu) menggunakan parameter yang sama. Anda harus memberikan informasi lebih lanjut tentang sistem Anda.
scai


@mreithub Jawaban dalam posting ini memang menarik tetapi sebenarnya Hugo tampaknya mentransfer file yang agak besar.
scai

rsync bwlimits untuk setiap file, untuk membatasi bw Anda harus membatasi koneksi, (di linux menggunakan iptables + tc atmail.com/kb/2009/throttling-bandwidth ), jadi tidak ada cara yang mudah.
zb

Halo, saya menjalankan RHEL 6 tetapi ini tidak membuat banyak perbedaan. Ya ini file besar, jadi debitnya harus hampir stabil. Sebagai informasi, perintah yang setara dengan SCP bekerja dengan baik. Jadi saya tidak tahu apa yang salah dengan rsync.
Hugo

Jawaban:


10

Saya pikir Anda mengalami "ledakan" seperti yang disebutkan dalam halaman manual:

--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.

Jadi seperti yang saya tanyakan sebelumnya, keseluruhan rasio pada akhir pekerjaan Anda akhirnya terbatas pada 10 juta.


4

Seperti disebutkan dalam halaman manual rsync , transfer dalam KByte / dtk:

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

2
Itulah yang saya gunakan: 10 000 kilobyte = 78,12500 megabit
Hugo

2
Anda tidak memperhatikan apa yang saya katakan. Rsync menggunakan Byte alih-alih bit , jadi Anda harus menghitung bandwidth dalam bit dan
menyamarkannya

Saya memiliki masalah yang sama, ketika saya meletakkannya --bwlimit=100, saya memperoleh 275kB / s, sangat teratur antara 265-285 kB / s, tidak ada ledakan. Apa yang salah di sini?
Brethlosze

2

Saya ingin membatasi transfer ke 100Mbit / s Jadi saya menggunakan pengaturan berikut:

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

100 Mbit / s adalah (kurang-lebih) 10 MByte / s, yang memang 10.000 KByte / s. Jika Anda memukul rsyncledakan, mungkin alat yang terpisah trickleakan membantu:

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

0

Nilai yang ditampilkan adalah kecepatan transfer efektif yang mencakup kecepatan dari kompresi dan algoritma delta, ini dapat dengan mudah diamati dengan melihat sejumlah besar jika rsyncsesi terputus dimulai kembali dengan transfer parsial diaktifkan (ex --append-verify).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.