tl; dr Sobre links de transferência lentos, comprima, caso contrário não. Abaixo está um teste de velocidade de compressão, um link para uma ferramenta de conversão de largura de banda e algumas informações.
Usar a compactação com rsync
só acelerará se o link intermediário for "lento o suficiente", ou seja, se a máquina em uma extremidade for capaz de produzir um fluxo de dados compactado rápido o suficiente para saturar o link de comunicação.
Então, qual é o link mais lento no qual eu deveria usar compressão para ganhar alguma coisa?
O seguinte é um teste muito pouco científico, que mostrará com que rapidez gzip
pode produzir dados e o que isso significa para saber se você deve compactar suas transferências em massa de rede em geral.
Os dados de entrada irão alterar o resultado do teste muito . Eu estou usando um arquivo regular (!) Descompactado no meu computador que pode ser representativo do tipo de dados que eu geralmente transfiro através de redes. Usar /dev/zero
(produzindo zeros ilimitados) seria enganoso, pois um fluxo de zeros seria muito fácil de compactar, e usar /dev/random
seria enganoso pela razão oposta. Então, ao invés disso, eu uso um arquivo tar do meu diretório $HOME/local
, que contém o software que eu instalei no meu $HOME
. O arquivo é descompactado por si só, mas contém uma mistura de arquivos binários, pequenos arquivos compactados e arquivos fonte / texto, e eu o comprimiria com a configuração padrão para gzip
que iria encolher 67% de 64 MiB para 22 MiB. / p>
$ 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)
Eu faço isso algumas vezes para ter uma ideia do que a média pode ser, e chega a cerca de 7800000 bytes / s.
Depois, uso uma calculadora de largura de banda de rede para ver em que isso se converte. Neste caso em particular, ele está apenas sob a capacidade de um link com fio "100Mb Ethernet", apenas mais rápido que um link "VDSL Download", um pouco mais rápido que um link sem fio "802.11 [a / g]" e em algum lugar entre "Bluetooth v3.0" (mais lento) e "USB 2.0" (mais rápido).
Isso significa que, se eu estiver usando compactação sobre qualquer coisa mais rápido , a compactação provavelmente diminuirá a transferência do arquivo.
rsync
pode não estar usando as mesmas exatas bibliotecas como gzip
para fazer a compactação, mas o acima daria a você uma pequena dica, pelo menos.
O
rsync
faz mais do que a compressão, como você sabe, e o aumento da velocidade do real vem apenas da transferência de [bits de] arquivos que foram alterados.
Em minha própria experiência, o uso da compactação com rsync
se tornou menos e menos benéfico nos últimos 10 anos, à medida que a largura de banda das redes aumentou (onde estou).
Para fazer backups incrementais, eu recomendaria definitivamente investigar a opção --link-dest
(isso não tem nada a ver com o que é transferido, apenas com a maneira como as coisas são armazenadas no destino). Além disso, se você estiver fazendo isso por SSH, não use a compactação se sua conexão SSH já estiver compactada e apenas comprima conexões SSH (túneis etc.) que estejam sobre links lentos, pelos mesmos motivos acima.