tl; dr Su collegamenti a trasferimento lento, comprimi, altrimenti no. Di seguito è riportato un test della velocità di compressione, un collegamento a uno strumento di conversione della larghezza di banda e alcune informazioni.
L'uso della compressione con rsync
accelera le cose solo se il collegamento intermedio è "abbastanza lento", ovvero se la macchina ad un'estremità è in grado di produrre un flusso di dati compresso abbastanza veloce da saturare il collegamento di comunicazione.
Quindi, qual è il collegamento più lento a cui dovrei usare la compressione per ottenere qualcosa?
Di seguito è riportato un test molto poco scientifico, che mostrerà quanto rapidamente è gzip
possibile produrre dati e cosa significhi se è necessario comprimere i trasferimenti di massa della rete in generale.
I dati di input cambieranno notevolmente il risultato del test . Sto usando un normale file non compresso (!) Sul mio computer che potrebbe essere rappresentativo del tipo di dati che trasferisco normalmente su reti. L'uso /dev/zero
(producendo zero illimitati) sarebbe fuorviante in quanto un flusso di zero sarebbe molto facile da comprimere e l'uso /dev/random
sarebbe fuorviante per la ragione opposta. Quindi invece uso un file tar della mia $HOME/local
directory, che contiene il software che ho installato nel mio $HOME
. Il file non è compresso di per sé, ma contiene un mix di file binari, piccoli file compressi e file di origine / testo, e lo comprimerei con le impostazioni predefinite perché gzip
si ridurrebbe del 67% da 64 MiB a 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)
Lo faccio alcune volte per avere un'idea di ciò che potrebbe essere la media e arriva a circa 7800000 byte / s.
Quindi utilizzo un calcolatore della larghezza di banda della rete per vedere in cosa si converte. In questo caso particolare, sembra essere appena sotto la capacità di un collegamento cablato "100 Mb Ethernet", appena più veloce di un uplink Internet "VDSL Download", leggermente più veloce di un collegamento wireless "802.11 [a / g]", e da qualche parte tra "Bluetooth v3.0" (più lento) e "USB 2.0" (più veloce).
Ciò significa che se sto usando la compressione su qualcosa di più veloce di quello, probabilmente la compressione rallenterà il trasferimento del file.
rsync
potrebbe non utilizzare esattamente le stesse librerie digzip
di compressione, ma quanto sopra ti darebbe almeno un suggerimento.
rsync
fa più della compressione però, come sai, e il vero aumento di velocità deriva dal solo trasferimento di [bit di] file che sono cambiati.
Nella mia esperienza, l'uso della compressione con rsync
è diventato sempre meno vantaggioso negli ultimi 10 anni circa, poiché la larghezza di banda delle reti è aumentata (dove sono).
Per fare backup incrementali, consiglio vivamente di investigare l' --link-dest
opzione (questo non ha nulla a che fare con ciò che viene trasferito, solo con il modo in cui le cose vengono archiviate sulla destinazione). Inoltre, se lo fai su SSH, non utilizzare la compressione se la tua connessione SSH è già compressa e comprimi solo connessioni SSH (tunnel, ecc.) Che si trovano su collegamenti lenti, per gli stessi motivi di cui sopra.