FastNetMon

Showing posts with label gzip. Show all posts
Showing posts with label gzip. Show all posts

Monday, 19 March 2012

gzip vs pigz

Все тесты проведены на базе Intel i7 CPU X980 - 12 логических ядер.

gzip
time tar -cpzf /var/backup/4601.tar.gz -C /vz/private/4601 .


real 3m10.887s - это астрономическое время
user 3m0.454s
sys 0m8.755s

pigz
time tar --use-compress-program=pigz -cpf /var/backup/4601.tar.gz -C /vz/private/4601 .


real 0m27.728s - это астрономическое время
user 4m3.871s
sys 0m7.412s

tar без сжатия
time tar -cpf /var/backup/4601.tar -C /vz/private/4601 .


real 1m10.247s
user 0m1.400s
sys 0m7.596s



Итого, pigz где-то в 6 раз быстрее, нежели gzip. Вообще, несмотря на hyper threading, это как раз равно числу физических ядер испытуемой машины. Кроме этого, pigz вдвое быстрее, чем просто tar без сжатия. Насколько я понимаю, это объясняется тем, что данных пишется меньше и процессор снимает данные быстрее, чем осуществляется простая запаковка без сжатия.

Далее привожу более-менее корректно проведенные тесты на архивацию уже сжатого tar.gz архива.

Сжатие pigz:
real 0m19.414s
user 2m21.545s
sys 0m4.596s

real 0m19.371s
user 2m20.833s
sys 0m4.720s

real 0m19.218s
user 2m21.341s
sys 0m4.368s

Сжатия gzip:
real 1m37.801s
user 1m35.586s
sys 0m3.388s


real 1m38.116s
user 1m35.990s
sys 0m3.284s


real 1m38.371s
user 1m36.222s
sys 0m3.092s


Без сжатия:
real 0m3.175s
user 0m0.052s
sys 0m1.908s

real 0m4.768s
user 0m0.072s
sys 0m2.520s

real 0m5.012s
user 0m0.100s
sys 0m2.456s

Причем, в режиме pipe pigz также дает серьезный прирост:
time cat Counter-Strike_LinuxServer_with-AmxModX.tar.gz | pigz > archive.pigz

real 0m1.608s
user 0m15.246s
sys 0m0.688s

time cat Counter-Strike_LinuxServer_with-AmxModX.tar.gz | gzip > archive.gz

real 0m10.647s
user 0m10.138s
sys 0m0.602s

Другие бенчмарки: http://www.unixdaemon.net/tools/commandline/pigz-parallel-gzip.html, http://edwin.io/pigz-vs-gzip-benchmark

Sunday, 18 March 2012

Классический gzip на современных мультипроцессорных машинах неэффективен - встречайте Pigz

Велкам: http://zlib.net/pigz/

Все тоже самое, но в несколько потоков и с использованием всех возможных мощностей серверов.

Причем, он бинарно совместим с обычным gzip.

Заставить tar использовать его для сжатия можно вот так:
tar --use-compress-program=pigz -cpf /root/archive.tar.gz /data