Saya memiliki gambar iso besar yang saat ini sedang diunduh oleh klien torrent dengan reservasi ruang dihidupkan: itu berarti, ukuran file tidak berubah sementara beberapa potongan dalam (4 Mib) terus berubah karena pengunduhan.
Pada 90% unduhan saya melakukan rsync awal untuk menghemat waktu nanti:
$ rsync -Ph DVD.iso / media / another-hdd / mengirim daftar file tambahan DVD.iso 2.60G 100% 40.23MB / s 0:01:01 (xfer # 1, to-check = 0/1) mengirim 2,60G byte yang diterima 73 byte 34,59M byte / detik ukuran total speedup 2.60G adalah 1.00
Lalu, ketika file sudah sepenuhnya diunduh, saya rsync lagi:
total size is 2.60G speedup is 1.00
Speedup = 1 mengatakan delta-transfer tidak digunakan, meskipun 90% dari file tidak berubah, target dir pada FS lain dan menyalin membutuhkan beberapa menit. Mengapa tidak mencoba mempercepat transfer ?! Bagaimana saya bisa memaksa rsync
untuk menggunakan delta-transfer?
Jawaban:
Menurut halaman manual , psusi benar:
sumber
-no-W
-no-W
tidak hanya bekerja opsi panjang-no-whole-file
. Alasan saya membutuhkan sakelar ini adalah ketika saya menyiapkan cadangan dan memiliki file besar (mis. Gambar) yang tidak memiliki waktu modifikasi yang sama. Jauh lebih cepat, speedup 163.26, untuk menyinkronkan file-file ini menggunakan delta-transfer pada sistem file lokal saya.--no-whole-file
(tolong, perhatikan ganda--
di awal).Jawaban langsung untuk pertanyaan ini adalah:
Gunakan
--no-W
bendera untuk memaksa kompresi delta, tidak masalah lokal atau jarak jauh.Pembaruan: Sepertinya ada lebih banyak cerita. The
delta compression
tampaknya diaktifkan hanya antara menerima dan proses pancar rsync. Saat mengeluarkan file ke sistem file,rsync
mungkin masih menulis seluruh file, bahkan dengan kompresi delta aktif.Lihat penyelidikan "Wakan Tanka" di sini .
sumber
--no-W
selalu transfer seluruh file dalam kasus saya. Silakan periksa unix.stackexchange.com/questions/291156/…Secara default, rsync pertama kali membuat salinan baru dari file target dan kemudian menggantinya, karena berbagai alasan keamanan. Anda dapat mengesampingkan ini dengan menentukan
--inplace
bersama dengan--no-whole-file
. Ini memberitahu rsync untuk melakukan pengeditan di tempat file target, menerima berbagai risiko (biasanya kecil untuk situasi ini) seperti yang didokumentasikan dalam halaman manual.sumber
Secara default,
rsync
buat salinan file di tempat tujuan dan kemudian diganti secara orisinal dengan yang baru. Ini dilakukan untuk alasan keamanan. Apa yang Anda cari adalah--inplace
opsi, yang akan menyebabkanrsync
hanya memodifikasi bagian dari file tujuan yang telah berubah relatif terhadap sumbernya.Untuk kasus penggunaan OP, saya sarankan mematikan pra-alokasi juga, sehingga salinan jarang dapat disinkronkan, yang akan jauh lebih cepat. Untuk unduhan, jangan khawatir tentang fragmentasi kecuali Anda menggunakan sistem file yang sangat kuno seperti VFAT. File media pada khususnya tidak dibaca pada kinerja maksimum media penyimpanan, jadi mendefragmennya adalah upaya yang sia-sia.
Untuk menyalin direktori unduhan Anda ke volume tujuan, saya sarankan flag dan operasi ini, dalam urutan ini:
Lulus pertama akan menyalin file baru jarang ke tujuan Lewat kedua akan memperbarui file yang ada di tempat, hanya menyalin perubahan
Karena itu melakukan salinan delta yang jarang dan di tempat, Anda dapat menjalankan ini berulang kali tanpa menimbulkan IO ekstra. Bahkan jika Anda memiliki 20 torrents yang berjalan secara bersamaan, itu tidak akan memperkuat penulisan di tujuan, atau menghancurkan volume source / dest.
sumber