Membuat rsync menggunakan lebih sedikit bandwidth?

46

Saya menggunakan rsync untuk mencadangkan dan menyinkronkan berbagi jaringan dan komputer saya. Saya sudah menemukan ini.

Masalahnya adalah, ketika menggunakan rsync untuk mentransfer file, ia menggunakan semua bandwidth yang ia dapat. Saya ingin membatasi kecepatannya, sehingga saya dapat menggunakan koneksi saya untuk hal-hal lain.

Secara khusus, saat ini saya mendengarkan Last.FM, tetapi tetap terputus, karena rsync menjenuhkan koneksi lokal.

Kedengarannya tidak mungkin, tetapi dalam hal ini LAN saya benar-benar secepat internet saya (10 megabit untuk keduanya, yay universitas!). Either way, saya tidak memiliki bandwidth tambahan saat rsync berjalan. Ada ide?

Oh, btw, khususnya saya menjalankan Ubuntu 9.04.

Mike Cooper
sumber

Jawaban:

67

Gunakan --bwlimit=KBPS opsi untuk membatasi bandwidth I / O, KBytes per detik

Lihat juga halaman manual .

DaveParillo
sumber
Sempurna. Saya tidak tahu mengapa saya melewatkannya di manhalaman saat pertama kali.
Mike Cooper
8
setelah fakta, tetapi ingin menunjukkan bahwa opsi ini membatasi bandwidth rata-rata. file pertama dikirim dengan kecepatan penuh dan file berikutnya dicekik untuk mencoba turun ke nilai bandwidth yang ditentukan. untuk benar-benar membatasi bandwidth, Anda ingin melihat sesuatu sepertitrickle
joshtronic
1
@ Joshtronic Saya bertanya-tanya apakah Anda memperhatikan jawaban supervacuo? Saya sekarang telah menguji ini dan dapat menjamin fakta bahwa "file pertama dikirim penuh" tidak benar kecuali untuk file terkecil.
20

(Ini idealnya akan menjadi jawaban atas komentar joshtronic )

--bwlimit=XXsebenarnya memiliki masalah sebaliknya; transfer memang merupakan rata-rata bergerak - seperti yang dijelaskan oleh Rsync Basics :

Karena sifat transfer rsync, blok data dikirim, maka jika rsync menentukan transfer terlalu cepat, ia akan menunggu sebelum mengirim blok data berikutnya. Hasilnya adalah tingkat transfer rata-rata sama dengan batas yang ditentukan.

Tidak jelas apakah rata-rata diambil di seluruh file, tetapi dalam hal apa pun itu tidak benar

file pertama dikirim dengan kecepatan penuh dan file berikutnya dicekik untuk mencoba turun ke nilai bandwidth yang ditentukan

Bahkan file pertama akan dicekik selama cukup besar untuk rata-rata untuk menendang (yang berarti semua kecuali file terkecil).

Anda benar tetesan itu akan menjadi solusi yang lebih baik, tetapi apa yang saya pahami dari makalah penjelasan (" Trickle: Pembentuk Bandwidth Userland untuk Sistem Unix-like ") adalah itu trickle juga berfungsi dengan menunda I / O berdasarkan rata-rata transfer yang bergerak . Saya kira harapan dalam merekomendasikan itu adalah bahwa ia menggunakan pengukuran frekuensi yang lebih tinggi untuk menerapkan rata-rata. Saya belum dapat menemukan data online yang mengkonfirmasi hal ini (meskipun makalah di atas memang menyebut rsynckode sebagai "sederhana", menyarankan para penulis trickleberpikir bahwa data mereka melakukan pekerjaan yang lebih baik).

supervacuo
sumber