tl; dr Melalui tautan transfer yang lambat, kompres, jika tidak, jangan. Di bawah ini adalah tes kecepatan kompresi, tautan ke alat konversi bandwidth dan beberapa info.
Menggunakan kompresi dengan rsync
hanya akan mempercepat jika tautan perantara "cukup lambat", yaitu jika mesin di satu ujung mampu menghasilkan aliran data terkompresi cukup cepat untuk menjenuhkan tautan komunikasi.
Jadi, apa tautan paling lambat di mana saya harus menggunakan kompresi untuk mendapatkan apa pun?
Berikut ini adalah tes yang sangat tidak ilmiah, yang akan menunjukkan seberapa cepat gzip
dapat menghasilkan data, dan apa artinya apakah Anda harus memampatkan transfer massal jaringan Anda secara umum.
Input data akan mengubah hasil tes sangat . Saya menggunakan file biasa (!) Di komputer saya yang mungkin mewakili tipe data yang biasanya saya transfer melalui jaringan. Menggunakan /dev/zero
(menghasilkan nol tanpa batas) akan menyesatkan karena aliran nol akan sangat mudah dikompres, dan menggunakan /dev/random
akan menyesatkan karena alasan yang berlawanan. Jadi alih-alih saya menggunakan file tar dari $HOME/local
direktori saya , yang berisi perangkat lunak yang saya instal di blog saya $HOME
. File itu tidak terkompresi dengan sendirinya, tetapi berisi campuran file biner, file terkompresi kecil dan file sumber / teks, dan akan saya kompres dengan pengaturan default karena gzip
akan menyusut 67% dari 64 MiB ke 22 MiB.
$ gzip -c local.tar | dd of=/dev/null
43092+4 records in
43093+1 records out
22063854 bytes transferred in 2.819 secs (7825741 bytes/sec)
Saya melakukan ini beberapa kali untuk mendapatkan perasaan tentang apa yang mungkin rata-rata, dan sampai sekitar 7800000 byte / s.
Lalu saya menggunakan kalkulator bandwidth jaringan untuk melihat bagaimana konversi ini. Dalam kasus khusus ini, ia berada tepat di bawah kapasitas tautan kabel "100Mb Ethernet", hanya lebih cepat daripada tautan internet "VDSL Download", sedikit lebih cepat daripada tautan nirkabel "802.11 [a / g]", dan di suatu tempat di antara "Bluetooth v3.0" (lebih lambat) dan "USB 2.0" (lebih cepat).
Ini berarti bahwa jika saya menggunakan kompresi lebih cepat dari itu, kompresi kemungkinan akan memperlambat transfer file.
rsync
mungkin tidak menggunakan pustaka yang sama persis seperti gzip
untuk melakukan kompresi, tetapi di atas akan memberi Anda sedikit petunjuk setidaknya.
rsync
melakukan lebih dari kompresi, seperti yang Anda tahu, dan peningkatan kecepatan sebenarnya berasal dari hanya mentransfer [bit] file yang telah berubah.
Dalam pengalaman saya sendiri, menggunakan kompresi dengan rsync
telah menjadi kurang dan kurang bermanfaat selama 10 tahun terakhir, karena bandwidth jaringan telah meningkat (di mana saya).
Untuk melakukan backup inkremental, saya pasti akan merekomendasikan menyelidiki --link-dest
opsi (ini tidak ada hubungannya dengan apa yang ditransfer, hanya dengan bagaimana hal-hal disimpan pada target). Juga, jika Anda melakukannya melalui SSH, jangan gunakan kompresi jika koneksi SSH Anda sudah dikompresi, dan hanya kompres koneksi SSH (terowongan dll.) Yang melewati tautan lambat, untuk alasan yang sama seperti di atas.