zaLinux.ru

Как пользоваться zstd для очень быстрого сжатия файлов

Оглавление

1. Современная утилита командной строки для очень быстрой архивации

2. Насколько zstd быстрее zip и других архиваторов

3. Как установить zstd в Linux

4. Как пользоваться zstd в Linux

5. Как распаковать архив с помощью zstd в Linux


1. Современная утилита командной строки для очень быстрой архивации

Утилита zstd — это современный архиватор, который способен очень быстро сжимать файлы.

Увеличение скорости зависит от конкретного компьютера и его центрального процессора, а именно от того, сколько у него ядер. Например, на моём компьютере zstd сжимает быстрее zip в 16 раз!

При современных скоростях интернет-соединения, иногда быстрее скачать или выгрузить несжатый файл размером 20-30 Гб, чем предварительно его архивировать. Для архивации больших файлов нужно слишком много времени — зачастую больше, чем нужно для передачи по сети несжатого файла.

Утилита zstd исправляет это — файл сжимается и лучше (меньший размер архива) и, самое главное, время сжатия сокращается очень значительно.

2. Насколько zstd быстрее zip и других архиваторов

Для измерения скорости сжатия я взял большой файл (экспортированная база данных MariaDB, фактически текстовый документ — такие файлы хорошо сжимаются). Для подсчёта затраченного времени я использовал утилиту time.

К примеру, файл размером 22.3 Гб был сжат с помощью zstd всего за 24.7 секунд.

time zstd -3 -T0 db.sql

А zip сжала этот же файла за 6 минут и 27.5 секунд:

time zip -3 db.sql.zip db.sql

То есть zstd быстрее zip почти в 16 раз!

Но нужно сразу оговориться — выигрыш скорости будет различным на различных компьютерах, поскольку zstd является многопоточным архиватором, а опция -T0 говорит использовать все возможные ядра (на тестируемой системе как раз 16 полноценных физических ядер).

Причём у zstd и степень сжатия оказалась лучше — файл архива имеет размер 6.3G, а архив zip имеет размер 7.3G.

Секрет скорости zstd в том, что она является многопоточной. При использовании zstd увеличивается нагрузка на центральный процессор по сравнению с zip и других утилитами архивации, которые являются однопоточными и нагружают процессор в гораздо меньшей степени.

3. Как установить zstd в Linux

Вполне возможно, что утилита zstd у вас уже установлена — на проверенных мной системах zstd присутствует, причём эта программа доступна даже на виртуальном хостинге.

Чтобы проверить, установлена ли программа zstd, попробуйте вывести краткую справку по zstd:

zstd -h

Или проверьте версию zstd:

zstd -V

Если вы увидите ошибку что программа не найдена, то её нужно установить.

Для установки zstd в Debian, Ubuntu, Linux Mint, Kali Linux и их производные выполните команду:

sudo apt install zstd

Для установки zstd в Arch Linux, Manjaro, BlackArch и их производные выполните команду:

sudo pacman -S zstd

4. Как сжать архив с помощью zstd в Linux

Чтобы сжать файл используйте команду, где вместо FILE вставьте путь до файла для сжатия:

zstd -T0 FILE

Полный аналог предыдущей команды (явно установлен уровень сжатия, который по умолчанию равен 3):

zstd -3 -T0 FILE

Вместо -3 вы можете использовать числа от -1 (минимальное сжатие, максимальная скорость) до -19 (максимальное сжатие, минимальная скорость)

zstd -T0 -6 FILE

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

zstd -T0 --rm FILE

5. Как распаковать архив с помощью zstd в Linux

Для распаковки архивов .zst используйте любую из следующих команд (они идентичны):

zstd -d FILE.zst
unzstd FILE.zst

По умолчанию файл архива будет сохранён. Если вы хотите удалить файл архива в случае удачной распаковки, то добавьте к любой команде опцию —rm:

zstd -d --rm FILE.zst
unzstd --rm FILE.zst

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *