Esiste un modo per estrarre un file tar.gz più velocemente di tar -zxvf filenamehere
?
Abbiamo file di grandi dimensioni e stiamo cercando di ottimizzare l'operazione.
Esiste un modo per estrarre un file tar.gz più velocemente di tar -zxvf filenamehere
?
Abbiamo file di grandi dimensioni e stiamo cercando di ottimizzare l'operazione.
Risposte:
pigz è una versione parallela di gzip. Sebbene utilizzi un solo thread per la decompressione, avvia 3 thread aggiuntivi per la lettura, la scrittura e il controllo del calcolo. I risultati possono variare ma abbiamo riscontrato un miglioramento significativo nella decompressione di alcuni dei nostri set di dati. Una volta installato pigz, il file tar può essere estratto con:
pigz -dc target.tar.gz | tar xf -
tar -xvf --use-compress-program=pigz filenamehere
. ( -z
equivale a --use-compress-program=gzip
.) In alternativa, puoi persino creare gzip
un collegamento simbolico pigz
e continuare a utilizzare -zxvf
.
-xf
dopo --use-compress-program=pigz
, o ho ottenuto un errore. Per qualche ragione, non è stato più veloce dell'uso gzip
però.
bzip2
c'è pbzip2
( p
per parallelo). tar --use-compress-program=pbzip2 -xvf file.tar.bz2
.
pv
comando per mostrare i progressi, o un equivalente, usando anche la --use-compress-program=pigz
bandiera? Durante la compressione, posso farlo gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData
, ma non sono sicuro di come farlo durante la fase di decompressione / decompressione.
se ci sono molti molti piccoli file nella tar ball, cancella il parametro 'v', riprova!
--checkpoint=NUMBER
( visualizzare i messaggi di avanzamento ogni NUMBERth record ) anziché -v
.
Se vuoi vedere i progressi usa qualcosa di simile pv
. Ecco un esempio:
pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
$ tar -zxvf
metodo è associato a IO o CPU?