tl; dr Nos links de transferência lenta, 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.
O uso de compressão com rsync
apenas acelerará as coisas 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 compactados rápido o suficiente para saturar o link de comunicação.
Então, qual é o link mais lento no qual devo usar a compactação para obter alguma coisa?
A seguir, um teste não científico, que mostrará a rapidez com gzip
que os dados podem ser produzidos e o que isso significa para você compactar as transferências em massa da rede em geral.
Os dados de entrada mudarão bastante o resultado do teste . Estou usando um arquivo normal não compactado (!) No meu computador, que pode ser representativo do tipo de dados que eu normalmente transfiro pelas redes. Usar /dev/zero
(produzir zeros ilimitados) seria enganoso, pois um fluxo de zeros seria muito fácil de compactar e /dev/random
seria enganoso pelo motivo oposto. Então, em vez disso, uso um arquivo tar do meu $HOME/local
diretório, que contém o software que instalei no meu diretório $HOME
. O arquivo é descompactado por si só, mas contém uma mistura de arquivos binários, pequenos arquivos compactados e arquivos de origem / texto, e eu o compactaria com a configuração padrão, gzip
pois diminuiria 67% de 64 MiB para 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)
Faço isso algumas vezes para ter uma ideia de qual pode ser a média e chega a cerca de 7800000 bytes / s.
Então eu uso uma calculadora de largura de banda de rede para ver em que isso se converte. Nesse caso em particular, é um pouco menor que a capacidade de um link com fio "100Mb Ethernet", um pouco mais rápido que um link de internet "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 a compactação em algo mais rápido que isso, a compactação provavelmente diminuirá a transferência do arquivo.
rsync
pode não estar usando exatamente as mesmas bibliotecas que gzip
para fazer a compactação, mas as opções acima dariam uma dica, pelo menos.
rsync
faz mais do que comprimir, como você sabe, e o aumento real da velocidade vem apenas da transferência de [bits de] arquivos que foram alterados.
Na minha própria experiência, o uso de compressão com rsync
tornou-se cada vez menos benéfico nos últimos 10 anos, com o aumento da largura de banda das redes (onde estou).
Para fazer backups incrementais, eu recomendaria definitivamente investigar a --link-dest
opção (isso não tem nada a ver com o que é transferido, apenas com o modo como as coisas são armazenadas no destino). Além disso, se você estiver fazendo isso por SSH, não use compactação se a sua conexão SSH já estiver compactada e comprima apenas conexões SSH (túneis etc.) que estão em links lentos, pelos mesmos motivos acima.