Linux часто использует сжатие gzip и bzip2. Оба они обеспечивают хорошую плотность сжатия и просты в использовании.
При этом bzip2 сжимает большинство файлов эффективнее — но, с другой стороны, медленнее, чем более традиционные gzip или zip. Но вы можете получить эффективность bzip2, значительно увеличив при этом скорость.
Мы говорим об утилите.
pbzip2 - Параллельный BZIP2. Обычно при использовании bzip2 используется только одно ядро процессора, тогда как в современных системах их может быть 2, 4 или, например, 8. Pbzip2 может использовать сразу несколько ядер процессора, что приводит, по мнению авторов, к практически линейному увеличению производительности.
Сжатые файлы, создаваемые pbzip2, полностью совместимы с bzip2 1.0.2 и более новые версии bzip2 (также есть утилита свинья , который, в свою очередь, представляет собой многопоточную реализацию gzip — спасибо альтексхх ).
Ниже приведен результат тестирования скорости сжатия раздела SQL-файла размером 1000 МБ (dd if=dump.sql of=testfile bs=1M count=1000) на компьютере с двумя процессорами Intel Xeon E5520 (4 ядра, 8 потоков, тактовая частота).
2,26 ГГц):
Как видно из результатов тестирования, pbzip2, работающий в 4 потока, примерно в 3,6 раза быстрее, чем bzip2, работающий в один поток, что действительно является почти линейным увеличением производительности.
При этом pbzip2, работающий в 16 потоков, оказался медленнее, чем pbzip2, использующий 4 потока — вероятно, из-за скорости операций ввода-вывода.
Также смотрите дополнительные тесты в комментариях (Спасибо Тристан И близь ) — в том числе с использованием раздела tmpfs в оперативной памяти.
pbzip2 используется примерно так же, как и просто bzip2, но есть некоторые дополнительные функции, например результат прогресса завершение операции в процентах.
Чтобы сжать файл: pbzip2 -k -p4 filename
Где имя файла - имя файла.
По умолчанию сжатый файл называется так же, как и исходный, но в конце добавляется расширение .
bz2 (то есть в данном случае имя_файла.
bz2 ).
Опция -k необходима, чтобы предотвратить удаление исходного кода pbzip2 после завершения сжатия.
Вы также можете добавить опцию -v для отображения подробной информации, включая процент выполнения операции.
Опция -p устанавливает количество потоков (в данном случае 4).
Чтобы разархивировать файл: pbzip2 -dk -p4 filename.bz2
Где имя_файла.
bz2 - имя файла.
По умолчанию распакованный файл называется так же, как и сжатый, но в конце удаляется расширение .
bz2 (то есть в данном случае имя файла ).
Опция -d необходима для выполнения распаковки.
Соответственно, вместе с выводом подробной информации и ходом операции сжатие будет выглядеть так: pbzip2 -kv -p4 filename
Распаковать файл можно так: pbzip2 -dkv -p4 filename.bz2
Если вам необходимо сжать целый каталог, то, как и в случае с gzip и bzip2, создается так называемый tarball (который сам по себе не имеет сжатия), содержащий нужный каталог, и он сжимается необходимой утилитой.
В случае с pbzip2 это можно сделать в одну строку следующим образом: tar cf myfile.tar.bz2 --use-compress-prog=pbzip2 directory_to_compress/
Или вот так: tar -c directory_to_compress/ | pbzip2 -c > myfile.tar.bz2
Во втором случае соответственно можно еще добавить -p4 (чтобы установить количество потоков 4).
Теги: #linux #конфигурация Linux #производительность #многопоточность #сжатие #сжатие #bzip2 #bzip2 #pbzip2
-
На Машине – В Небо
19 Oct, 24 -
Колония. Глава 24: Отъезд
19 Oct, 24 -
Бессмертная Улитка
19 Oct, 24