pigz es una versión paralela de gzip. Aunque solo usa un solo hilo para la descompresión, inicia 3 hilos adicionales para leer, escribir y verificar el cálculo. Sus resultados pueden variar, pero hemos visto una mejora significativa en la descompresión de algunos de nuestros conjuntos de datos. Una vez que instales pigz, el archivo tar se puede extraer con:
+1. FWIW, también puedes escribir eso como tar -xvf --use-compress-program=pigz filenamehere. ( -zequivale a --use-compress-program=gzip). Alternativamente, incluso puede hacer que gzipsea un enlace simbólico pigzy seguir usándolo -zxvf.
ruakh
2
@ruakh, tuve que poner -xfdespués --use-compress-program=pigz, o recibí un error. Por alguna razón, no fue más rápido que usarlo gzip.
jonderry
Porque bzip2hay pbzip2( ppara paralelo). tar --use-compress-program=pbzip2 -xvf file.tar.bz2.
alfC
¿Hay alguna manera de usar el pvcomando para mostrar el progreso, o un equivalente, mientras se usa la --use-compress-program=pigzbandera? Puedo hacerlo durante la compresión, gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourDatapero no estoy seguro de cómo hacerlo durante la descompresión / descompresión.
Stefan Lasiewski
13
Si hay muchos, muchos archivos pequeños en la bola de alquitrán, cancele el parámetro 'v', ¡intente nuevamente!
Nunca uso -v param. No sé por qué la gente necesita tanto ruido en la consola.
Eimantas
9
@Eimantas Cuando descomprimas algo que contiene muchos archivos de varios gigabytes, querrás alguna indicación de progreso. :)
Michael Hampton
@TimHughes: es muy bueno saberlo, ¡publíquelo como respuesta por separado!
smci
Michael Hampton si tiene archivos de varios gigabytes pero mezclado con una gran lista de archivos pequeños, tiene una buena razón para no usar -v, en mis pruebas locales hace que el alquitrán sea muy lento, especialmente si tiene alquitrán en un servidor remoto a través de la terminal, lo que hago es mirar el directorio du -s para poder ver cómo crece el directorio ...
Luciano Andress Martini
Puede valer la pena usar --checkpoint=NUMBER( mostrar mensajes de progreso cada NÚMERO registro ) en lugar de -v.
Stefan Lasiewski
6
Si quieres ver el progreso usa algo como pv. Aquí hay un ejemplo:
pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
$ tar -zxvf
método está vinculado a IO o CPU?Respuestas:
pigz es una versión paralela de gzip. Aunque solo usa un solo hilo para la descompresión, inicia 3 hilos adicionales para leer, escribir y verificar el cálculo. Sus resultados pueden variar, pero hemos visto una mejora significativa en la descompresión de algunos de nuestros conjuntos de datos. Una vez que instales pigz, el archivo tar se puede extraer con:
fuente
tar -xvf --use-compress-program=pigz filenamehere
. (-z
equivale a--use-compress-program=gzip
). Alternativamente, incluso puede hacer quegzip
sea un enlace simbólicopigz
y seguir usándolo-zxvf
.-xf
después--use-compress-program=pigz
, o recibí un error. Por alguna razón, no fue más rápido que usarlogzip
.bzip2
haypbzip2
(p
para paralelo).tar --use-compress-program=pbzip2 -xvf file.tar.bz2
.pv
comando para mostrar el progreso, o un equivalente, mientras se usa la--use-compress-program=pigz
bandera? Puedo hacerlo durante la compresión,gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData
pero no estoy seguro de cómo hacerlo durante la descompresión / descompresión.Si hay muchos, muchos archivos pequeños en la bola de alquitrán, cancele el parámetro 'v', ¡intente nuevamente!
fuente
--checkpoint=NUMBER
( mostrar mensajes de progreso cada NÚMERO registro ) en lugar de-v
.Si quieres ver el progreso usa algo como
pv
. Aquí hay un ejemplo:fuente