Архиватор (многоядерность) (Быстрый архиватор (x86-64))

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Аватара пользователя
Stream
Сообщения: 223
ОС: CentOS 6.4 без дров видео.

Архиватор (многоядерность)

Сообщение Stream »

У меня 4 ядра. Я создал tar.gz архив. Задействовано почти полностью было одно. Остальные 2 поочередно процентов на 10-20. 4-е аообще в простое.

Какой архиватор посоветуете быстрый и чтобы использовал все ядра.

P.S. У меня Opensuse 11.1 x86-64
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Архиватор (многоядерность)

Сообщение Sleeping Daemon »

Stream писал(а):
09.04.2010 03:04
У меня 4 ядра. Я создал tar.gz архив. Задействовано почти полностью было одно. Остальные 2 поочередно процентов на 10-20. 4-е аообще в простое.

Какой архиватор посоветуете быстрый и чтобы использовал все ядра.

P.S. У меня Opensuse 11.1 x86-64

Тот, который напишите сами. Как вариант - модифицируете имеющийся с явным распараллеливанием операций, например с использованием OpenMP.
Спасибо сказали:
Аватара пользователя
Tverskoy
Сообщения: 460
Статус: Мандривопоклонник
ОС: Mandriva 2011 x86_64

Re: Архиватор (многоядерность)

Сообщение Tverskoy »

7zip и pbzip2, можете сами убедиться если упаковывать через консоль.
Спасибо сказали:
Аватара пользователя
oper777
Сообщения: 411
ОС: gentoo

Re: Архиватор (многоядерность)

Сообщение oper777 »

A parallel implementation of gzip for modern
multi-processor, multi-core machines

Pigz
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Архиватор (многоядерность)

Сообщение rm_ »

Tverskoy писал(а):
09.04.2010 07:03
7zip и pbzip2, можете сами убедиться если упаковывать через консоль.

Верно, + ещё есть plzip.

Sleeping Daemon писал(а):
09.04.2010 04:31
Тот, который напишите сами.

Всё уже написано до нас. ©
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: Архиватор (многоядерность)

Сообщение Luinnar »

Tverskoy писал(а):
09.04.2010 07:03
7zip и pbzip2, можете сами убедиться если упаковывать через консоль.

У pbzip2 есть один серьёзный недостаток: он не может принимать данные для архивирования из стандартного ввода, только из файла. А файл, как правило, нужно предварительно создать с помощью, скажем, tar. Это особенно неэффективно, когда данных много.

Так что я бы рекомендовал 7zip попробовать. У нас он для бэкапов используется, жмёт лучше, чем bzip2, а с опцией -mx=3 (уровень сжатия) ещё и значительно быстрее.
Спасибо сказали:
Аватара пользователя
Stream
Сообщения: 223
ОС: CentOS 6.4 без дров видео.

Re: Архиватор (многоядерность)

Сообщение Stream »

Luinnar

А как с помощью 7zip сделать backup. Там ведь по умаолчанию нельзя сохранять права. Кстати, я жал им с опцией a, Жмет долго. Пояти полность. использует 2 процессора. Остальные 2 по 30 процентов.

Я не могу установить pbzip2 и pigz, скачал исходники. Там есть Makefile.
Пишу make- не работает. Появляются ошибки.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5480
ОС: Gentoo

Re: Архиватор (многоядерность)

Сообщение /dev/random »

Попробуйте опцию -mmt=N, где N - количество потоков, обычно задают на 1 больше, чем у вас есть ядер.
Спасибо сказали:
Аватара пользователя
Stream
Сообщения: 223
ОС: CentOS 6.4 без дров видео.

Re: Архиватор (многоядерность)

Сообщение Stream »

Пишу make в папке pbzip2
Появляется Цель `all' не требует выполнения команд.
Пишу make Makefile: Цель `Makefile' не требует выполнения команд.
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: Архиватор (многоядерность)

Сообщение Luinnar »

Stream писал(а):
09.04.2010 13:16
Luinnar

А как с помощью 7zip сделать backup. Там ведь по умаолчанию нельзя сохранять права. Кстати, я жал им с опцией a, Жмет долго. Пояти полность. использует 2 процессора. Остальные 2 по 30 процентов.

Я не могу установить pbzip2 и pigz, скачал исходники. Там есть Makefile.
Пишу make- не работает. Появляются ошибки.

Если нужно права сохранить, то сначала в tar, а потом в 7z. Например, так:

Код: Выделить всё

tar cf - <your-files> | 7z a -si -mx=3 backup.tar.7z

-mx=3 - уровень сжатия 3, по-умолчанию используется 5, но по моим тестам -mx=3 работает значительно быстрее, а размер получается не намного больше.
Если у вас данные небольшие, то можно без этой опции:

Код: Выделить всё

tar cf - <your-files> | 7z a -si backup.tar.7z


Stream писал(а):
09.04.2010 13:33
Пишу make в папке pbzip2
Появляется Цель `all' не требует выполнения команд.
Пишу make Makefile: Цель `Makefile' не требует выполнения команд.

Обычно порядок компиляции такой:

Код: Выделить всё

./configure
make
sudo make install
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: Архиватор (многоядерность)

Сообщение Luinnar »

А распаковать так:

Код: Выделить всё

cd <target-directory> && 7z x -so <path-to-backup.tar.7z> | tar xf -
Спасибо сказали:
Аватара пользователя
Stream
Сообщения: 223
ОС: CentOS 6.4 без дров видео.

Re: Архиватор (многоядерность)

Сообщение Stream »

/Desktop> /home/stream/bin/p7zip_9.04/bin/7za a -mx=3 -mmt=4 cds.7z /home/stream/file

Когда использую 2 аргумента -mx=3 -mmt=4, то испольуется одно ядро.
Кстати, такое ощущение, что mmt там по умолчанию настроен.
Заметил, что чем сильнее степень сжатия mx=, тем больше задействованы прцессоры кроме 1-го. 1-й всегда задействован

Вот скриншот загрузки CPU при архивировании папки с множеством поддиректорий в файл формата 7z с опциями mmt=5 mx=3 4; процессор Core-5-750 4 Ядра

Изображение

С помощью make, make install поставил 7zip в нужную папку, хотя он только с make мог уже работать ))
Поставил pbzip2

А вот pigz пишет
linux-6t58:/home/stream/bin/pigz-2.1.6 # make install
make: *** Нет правила для сборки цели `install'. Останов

pigz нашел в репозитариях openSuse 11.1
Поставил. Он архивирует вроде папку, когда опцию -r (recursive) ставишь, только непонятно куда. Но не все ядра задействованы.
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: Архиватор (многоядерность)

Сообщение Luinnar »

Stream писал(а):
09.04.2010 13:52
pigz нашел в репозитариях openSuse 11.1
Поставил. Он архивирует вроде папку, когда опцию -r (recursive) ставишь, только непонятно куда. Но не все ядра задействованы.

Наверное, так же как и gzip, архивирует все файлы в указанном каталоге по-одному, причём исходные файлы перезаписываются архивами. :)
Для создания одного архива следует использовать всё тот же tar. До или после архивации - на ваш выбор, хотя лучше всё же до.
Спасибо сказали:
Аватара пользователя
Tverskoy
Сообщения: 460
Статус: Мандривопоклонник
ОС: Mandriva 2011 x86_64

Re: Архиватор (многоядерность)

Сообщение Tverskoy »

для бекапов лучше подойдет tar.lzma
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

Re: Архиватор (многоядерность)

Сообщение Luinnar »

lzma не использует многопоточность.
Кстати, вот результаты проведённого мною тестирования разных архиваторов на предмет скорости и степени сжатия:
Обсуждение архиваторов

А вот почему мы используем tar.7z для бэкапов:
Обсуждение архиваторов
Спасибо сказали: