Estoy buscando la gzip
utilidad más rápida (o zip). Tengo un volumen LVM que existe en un 95% en blanco 0
, por lo que comprimirlo es muy fácil. Estoy buscando la solución más rápida y realmente no me importa la compresión, excepto la 0
's.
Soy consciente de gzip -1
(igual que gzip --fast
) pero me preguntaba si hay algún método más rápido.
Gracias.
Editar:
después de algunas pruebas, comparé gzip -1
, lzop -1
y pigz -1
entre sí , y obtuve los siguientes 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
Edición 2 :
Esto no está relacionado con mi pregunta inicial, sin embargo, al usar time dd if=/dev/VPS/snap | lzop -1 | ssh backup-server "dd of=/home/backupvps/snap.lzop"
(tamaño de bloque cambiado a 16M), ¡el tiempo se reduce a real 18m22.442s
!
fuente
time
de esa manera. El rendimiento del dd utilizado parapigz
es menor que los otros dos.Respuestas:
Si no le importa alejarse de DEFLATE,
lzop
es una implementación de LZO que favorece la velocidad sobre la relación de compresión.fuente
lzop
el más rápido en mi situación. Es más rápido que depigz
alguna manera (probablemente debido a los lotes de 0).Aunque personalmente aún no lo he usado, creo que usar gzip paralelo podría acelerar un poco las cosas:
fuente
Puede probar Parallel Gzip (Pascal lo vinculó) o Parallel BZIP.
En teoría, BZIP es mucho mejor para el texto, por lo que es posible que desee probar pbzip .
fuente
Su disco está limitado a 30 MB / s
Todos los compresores funcionan lo suficientemente bien. Incluso puede reducir la transferencia de red utilizando bzip2 un poco más lento pero omnipresente.
¿Has considerado rsync? Hace la suma de comprobación y luego comprime la diferencia solamente.
fuente
pigz -1: 1073741824 bytes (1.1 GB) copied, 8.6779 seconds, 124 MB/s
ygzip -1: 1073741824 bytes (1.1 GB) copied, 11.6724 seconds, 92.0 MB/s
. He pensado en rsync, pero eso comprobaría el archivo diferenciado y probablemente no ayudaría, ya que la mayoría de las veces ha cambiado mucho.Re: lzop es más lento en su configuración estándar ... Ajustar puede la mitad del tiempo. Pero hay un reemplazo aún más rápido llamado blosc:
https://github.com/FrancescAlted/blosc
Hmm ... El tiempo que tardó en publicar esto y obtener respuestas probablemente sea al menos el doble del ahorro de tiempo que obtendrás ... Ahora discúlpame mientras recompilo mi kernel para eliminar otros .1s de mi tiempo de arranque de 2s.
fuente