FastNetMon

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

No comments :

Post a Comment

Note: only a member of this blog may post a comment.