pigz - это параллельная версия gzip. Хотя он использует только один поток для распаковки, он запускает 3 дополнительных потока для чтения, записи и проверки вычислений. Ваши результаты могут отличаться, но мы видим значительное улучшение в декомпрессии некоторых наших наборов данных. После установки pigz файл tar можно извлечь с помощью:
+1. FWIW, вы также можете написать это как tar -xvf --use-compress-program=pigz filenamehere. ( -zсоставляет --use-compress-program=gzip.) В качестве альтернативы, вы можете даже сделать gzipсимволическую ссылку pigzи продолжать использовать -zxvf.
Руах
2
@ruakh, я должен был поставить -xfпосле --use-compress-program=pigz, или я получил ошибку. По какой-то причине это было не быстрее, чем при использовании gzip.
Джондерри
Ибо bzip2есть pbzip2( pдля параллели). tar --use-compress-program=pbzip2 -xvf file.tar.bz2,
AlfC
Есть ли способ использовать pvкоманду, чтобы показать прогресс, или эквивалент, при этом используя --use-compress-program=pigzфлаг? Во время сжатия я могу сделать gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData, но не уверен, как это сделать во время разархивирования / распаковки.
Стефан Ласевски
13
если в tar-шарике много много-много маленьких файлов, отмените параметр 'v', попробуйте еще раз!
Я никогда не использую -v param. Не знаю, зачем людям так много шума в консоли.
Eimantas
9
@Eimantas Когда вы распаковываете что-то, содержащее много файлов размером в несколько гигабайт, вам понадобится некоторая индикация прогресса. :)
Майкл Хэмптон
@TimHughes: это действительно здорово знать, пожалуйста, напишите в качестве отдельного ответа!
Смчи
Майкл Хэмптон: если у вас файлы размером в несколько гигабайт, но есть большие списки небольших файлов, у вас есть веская причина не использовать -v, в моих локальных тестах это делает tar очень медленным, особенно если у вас есть tar, запущенный на удаленном сервере. через терминал я смотрю каталог du -s, чтобы я мог наблюдать за ростом каталога ...
Luciano Andress Martini
Возможно, стоит использовать --checkpoint=NUMBER( отображать сообщения о ходе выполнения каждую запись NUMBERth ) вместо -v.
Стефан Ласевский
6
Если вы хотите увидеть прогресс, используйте что-то вроде pv. Вот пример:
pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
$ tar -zxvf
метод связан с IO или CPU?Ответы:
pigz - это параллельная версия gzip. Хотя он использует только один поток для распаковки, он запускает 3 дополнительных потока для чтения, записи и проверки вычислений. Ваши результаты могут отличаться, но мы видим значительное улучшение в декомпрессии некоторых наших наборов данных. После установки pigz файл tar можно извлечь с помощью:
источник
tar -xvf --use-compress-program=pigz filenamehere
. (-z
составляет--use-compress-program=gzip
.) В качестве альтернативы, вы можете даже сделатьgzip
символическую ссылкуpigz
и продолжать использовать-zxvf
.-xf
после--use-compress-program=pigz
, или я получил ошибку. По какой-то причине это было не быстрее, чем при использованииgzip
.bzip2
естьpbzip2
(p
для параллели).tar --use-compress-program=pbzip2 -xvf file.tar.bz2
,pv
команду, чтобы показать прогресс, или эквивалент, при этом используя--use-compress-program=pigz
флаг? Во время сжатия я могу сделатьgnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData
, но не уверен, как это сделать во время разархивирования / распаковки.если в tar-шарике много много-много маленьких файлов, отмените параметр 'v', попробуйте еще раз!
источник
--checkpoint=NUMBER
( отображать сообщения о ходе выполнения каждую запись NUMBERth ) вместо-v
.Если вы хотите увидеть прогресс, используйте что-то вроде
pv
. Вот пример:источник