Advertências com gzip --rsyncable - sem aceleração

2

Eu estou usando (tentando) gzip para compactar um arquivo SQL de uma maneira rsyncable para transferir o backup com o mínimo de atraso.

No entanto, parece que isso não está funcionando, já que a aceleração é sempre 1,00.

O arquivo é criado ao descarregar o banco de dados para um .sql arquivo e, em seguida, emissão gzip -f3 --rsyncable file.sql.

Em seguida, a máquina remota faz um rsync contra o último backup com os seguintes sinalizadores:

rsync -avhhiP --inplace

Por que meu speedup pode ser 1,00? Eu não deveria estar recriando o arquivo de cada vez e, em vez disso, atualizá-lo, talvez? Eu não vi nenhuma menção a este método de orientação on-line sobre o uso do sinalizador --rsyncable.

Estou usando:

# gzip -V
gzip 1.5
deed02392
fonte
1
E se --rsyncable não está listado no gzip --help, o comando não suporta essa opção. Eu também tenho o gzip 1.5 (Gentoo) e ele não tem essa opção. A presença de --rsyncable opção depende se a distribuição aplicou o patch que adiciona a opção. Qual distribuição você tem?
Dan D.
Se você quiser a opção, você precisará aplicar o patch e construir o gzip.
Dan D.
Ah, eu pensei que isso deveria ter sido corrigido desde a versão 1.4. Eu verifiquei o --help saída e o manpage, um menciona mas não o outro embora eu não estou seguro que especificamente. Isso está ligado Debian wheezy.
deed02392
2
OK, acabei de marcar e --rsyncable IS na saída de ajuda, mas não está na manpage.
deed02392
Você já tentou sem - em branco? Eu não sei como o rsync não pôde retransferir o arquivo inteiro (ou pelo menos tudo a partir do primeiro bloco modificado) se você pedir para atualizar no local.
Benoît

Respostas:

5

A questão já é um pouco antiga, mas talvez minha resposta ainda ajude uma ou outra:

O Debian Wheezy tem o bug mencionado no gzip que renderiza o --rsyncable -flag não funcional.

Vejo o bug correspondente do Debian .

Você pode usar pigz como um substituto, que é uma paralelização gzip -replacement que usa várias CPUs, pode compactar um pouco mais eficientemente se você especificar manualmente tamanhos de bloco maiores e fornecer oficialmente --rsyncable implementação supostamente melhor do que a fornecida pelo gzip patch.

Além disso, rsync s --inplace parâmetro reduz a eficiência do algoritmo de transmissão delta - para citar a manpage:

A eficiência do algoritmo de transferência delta do rsync pode ser reduzida se alguns dados no arquivo de destino forem sobrescritos antes que possam ser copiados para uma posição posterior no arquivo. Isto não se aplica se você usar --backup, já que o rsync é inteligente o suficiente para usar o arquivo de backup como o arquivo base para a transferência.

Gunter Ohrner
fonte
Nota: esse bug do Debian foi aparentemente corrigido quando o gzip 1.6-3 foi carregado, dezembro de 2013. Isso significa que ele deve funcionar corretamente em Jessie e mais tarde.
thomasrutter
Sim, como escrevi, Wheezy é afetado. O patch funciona em todas as outras versões do Debian que o incluem. Ainda pigz pretende fornecer um pouco mais eficaz --rsyncable bandeira.
Gunter Ohrner
0

Eu passei muito tempo tentando descobrir porque --rsyncable não estava funcionando para mim no Ubuntu 12.04 e no gzip 1.4 antes de se deparar com isso: https://bugs.launchpad.net/ubuntu/+source/gzip/+bug/1021975

Parece que há uma regressão no pacote 1.4 ubuntu, o que significa que o patch rsyncable não foi incluído corretamente no release, apesar de estar listado no gzip --help. Não tenho certeza se isso afeta outras distribuições ou versões do Ubuntu.

Mike Campbell
fonte