gzip? bzip? XZ!

gzip? bzip? XZ!

Кратко о важном.

Все админы часто пользуются архиваторами: zip, bzip, gzip, rar и прочее. Как то не принято в среде линукса использовать rar, чаще — gzip/bzip. Оба сжимают быстро и со средней эффективностью.

Но для большей эффективно, я рекомендую xz.

Для сжатия в cli, обычно используются утилиты gzip, bzip2 и xz.

Для более быстрого сжатия, я использую их параллельные аналоги: pxz, pigz, pbzip2.

Тест:

— имеется файл, лог работы одной утилиты размером 6.8Gb (7282321541b). Сожмем тремя архиваторами, с дефолтными параметрами, и оценим время сжатия и качество сжатия.

Для наглядности исходный файл клонирован два раза.

[sam@centos-1 tmp]$ ls -l
total 21334932
-rw-rw-r-- 1 sam sam   7282321541 Apr  2 23:59 1.log
-rw-r--r-- 1 sam sam   7282321541 Apr  9 08:41 2.log
-rw-r--r-- 1 sam sam   7282321541 Apr  9 09:22 3.log
[sam@centos-1 tmp]$ time pigz 1.log

real    0m17.957s
user    5m59.215s
sys     0m6.877s
[sam@centos-1 tmp]$ time pbzip2 2.log

real    1m36.461s
user    35m52.041s
sys     0m49.704s
[sam@centos-1 tmp]$
[sam@centos-1 tmp]$ time pxz 3.log

real    5m27.033s
user    115m29.228s
sys     0m36.940s
[sam@centos-1 tmp]$ ls -l
total 1847080
-rw-rw-r-- 1 sam sam   911627019 Apr  2 23:59 1.log.gz
-rw-r--r-- 1 sam sam   543825204 Apr  9 08:41 2.log.bz2
-rw-r--r-- 1 sam sam   435952812 Apr  9 09:22 3.log.xz

Результаты (размер файлов в % от первоначального):

gz = 12,51 %
bz2 = 7.46 %
xz = 5.98 %

XZ сжимал дольше всех, и сжал лучше всех. GZIP работает хуже всего, но его задача сжимать как можно быстрее, не зря же он используется в работе веб-серверов.