И снова про параллельные архиваторы (pigz)

pigs parallel archiver параллельный архиватор pigsПро актуальность многопотокового архиватора, который использовал бы сразу несколько процессоров (ядер) для упаковки файла, я уже говорил. И даже приводил пример архиватора pbzip2 — многопотокового пакователя в .bz2. Недавно отыскалось аналогичное воплощение для .gzИтак, архиватор pigz. Как говорится на сайте, читать это название надо не как “pigs” (типа, множество свиней), а как “пиг-зии”. Пакует, как уже было сказано, в популярный формат .gz. Количество процессоров распознаёт автоматически. Скачать исходники можно на www.zlib.net/pigz, там же находится документация. Версию для берём в репозитории software.opensuse.org.

Начнём тестирование. Запакуем, к примеру на 4-процессорной машине архивчик на 1,3ГБ:

flycat:/mnt/g1/0/backups-full # ls -l
-rw-r--r--  1 flycat users  1376542720 Oct 22 13:29 sochi-ticker.tar
-rw-r--r--  1 root   root   1376542720 Oct 22 13:30 sochi-ticker1.tar

flycat:/mnt/g1/0/backups-full # cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      :                   Intel(R) Xeon(TM) CPU 3.20GHz
stepping        : 3
cpu MHz         : 3200.067
cache size      : 2048 KB
... skip ...
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni monitor ds_cpl cid cx16 xtpr
bogomips        : 6400.13
... skip ...
processor       : 3
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      :                   Intel(R) Xeon(TM) CPU 3.20GHz
stepping        : 3
cpu MHz         : 3200.067
cache size      : 2048 KB
...
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni monitor ds_cpl cid cx16 xtpr
bogomips        : 6400.30

Сначала обычным архиватором:

butt2:/mnt/g1/0/backups-full # time gzip -9 sochi-ticker.tar

real    6m34.877s
user    6m24.924s
sys     0m5.680s

А затем параллельным:

butt2:/mnt/g1/0/backups-full # time pigz -9 sochi-ticker1.tar

real    2m41.780s
user    8m42.309s
sys     0m7.396s

Ну что же, разница во времени весьма существенна. Понятное дело, что не в 4 раза для 4 камней — не всё определяется процессорами, сказывается и ввод-вывод, но программа вполне применима для желающих сэкономить время. Думаю, для десктопа — самое то. По поводу серверов — не знаю, не знаю, надо ещё подумать: а стоит ли загружать все ядра сервера?

И снова про параллельные архиваторы (pigz): 6 комментариев

  1. В общем-то я не сомневаюсь в увеличении производительности, но учитывая хорошее умение линукса кэшировать доступ к файлам, нужно было делать минимум по два чередующихся прогона, чтобы второй по счёту не имел форы в виде закэшированных в памяти файлов, которые там появились после первого прогона.

Добавить комментарий

Ваш адрес email не будет опубликован.