Estou procurando o gzip
utilitário mais rápido (ou zip). Eu tenho um volume LVM que 95% existe em branco 0
, então comprimir é muito fácil. Estou procurando a solução mais rápida e realmente não ligo para a compressão, exceto a 0
.
Estou ciente gzip -1
(igual a gzip --fast
), mas queria saber se existe algum método mais rápido.
Obrigado.
Edit:
depois de alguns testes, eu comparei gzip -1
, lzop -1
e pigz -1
com o outro e chegou aos seguintes resultados:
PIGZ:
time dd if=/dev/VPS/snap | pigz -1 | ssh backup-server "dd of=/home/backupvps/snap.pigz"
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 2086.87 seconds, 25.7 MB/s
7093985+266013 records in
7163950+1 records out
3667942715 bytes (3.7 GB) copied, 2085.75 seconds, 1.8 MB/s
real 34m47.147s
LZOP:
time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 1829.31 seconds, 29.3 MB/s
7914243+311979 records in
7937728+1 records out
4064117245 bytes (4.1 GB) copied, 1828.08 seconds, 2.2 MB/s
real 30m29.430s
GZIP:
time dd if=/dev/VPS/snap | gzip -1 | ssh backup-server "dd of=/home/backupvps/snap_gzip.img.gz
104857600+0 records in
104857600+0 records out
53687091200 bytes (54 GB) copied, 1843.61 seconds, 29.1 MB/s
7176193+42 records in
7176214+1 records out
3674221747 bytes (3.7 GB) copied, 1842.09 seconds, 2.0 MB/s
real 30m43.846s
Edição 2 :
Isso não está relacionado à minha pergunta inicial, no entanto, usando time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
(tamanho do bloco alterado para 16M) o tempo é reduzido para real 18m22.442s
!
fonte
time
dessa maneira. A taxa de transferência do dd usadapigz
é menor que os outros dois.Respostas:
Se você não se importa em se afastar do DEFLATE,
lzop
é uma implementação do LZO que favorece a velocidade sobre a taxa de compactação.fonte
lzop
o mais rápido no meu cenário. É mais rápido do que depigz
alguma forma (provavelmente devido ao lote de 0).Embora eu pessoalmente ainda não o tenha usado, acho que o uso do gzip paralelo pode acelerar um pouco as coisas:
fonte
Você pode tentar o Parallel Gzip (Pascal vinculado), ou Parallel BZIP.
Em teoria, o BZIP é muito melhor para texto, então você pode tentar o pbzip .
fonte
Seu disco está limitado a 30 MB / s
Todos os compressores fazem bem o suficiente. Você pode até reduzir a transferência de rede usando o bzip2 mais lento, mas onipresente.
Você já considerou rsync? Faz soma de verificação e depois fecha apenas a diferença.
fonte
pigz -1: 1073741824 bytes (1.1 GB) copied, 8.6779 seconds, 124 MB/s
egzip -1: 1073741824 bytes (1.1 GB) copied, 11.6724 seconds, 92.0 MB/s
. Eu pensei em rsync, mas isso verificaria o arquivo diferenciado e provavelmente não ajudaria, pois na maioria das vezes muito mudou.Re: lzop é mais lento na sua configuração std ... Tweaking pode metade do tempo. Mas há uma substituição ainda mais rápida chamada blosc:
https://github.com/FrancescAlted/blosc
Hmm ... O tempo que levou para postar isso e obter respostas provavelmente é pelo menos o dobro da economia de tempo que você terá ... Agora, desculpe-me enquanto recompilar meu kernel para eliminar outros .1s do meu tempo de inicialização dos 2s.
fonte