Zstd - это open source алгоритм сжатия данных без потерь, разработанный Янном Коллетом (Yann Collet) в Facebook. Zstd обеспечивает быструю скорость сжатия и распаковки в реальном времени. Разработчик Debian и Ubuntu Джулиан Андрес Клод (Julian Andres Klode) в почтовой рассылке сообщил, что у Canonical есть планы внедрить данный алгоритм по умолчанию, начиная с Ubuntu 18.10.
Zstd поддерживает до 19 уровней сжатия, обеспечивая коэффициент сжатия 2,877 при скорости сжатия 430 Мб/с и скорость распаковки 1110 Мб/с (выше чем у xz или gzip).
Джулиан Андрес Клод пишет, что в результате тестов удалось установку Ubuntu 18.04 Bionic Beaver ускорить на 10%, используя zstd с максимальным уровнем сжатия 19. На 40% быстрее установка проходит с использованием библиотеки eatmydata, разработанной для отключения fsync и связанных с ней пакетов.
В такой конфигурации zstd с уровнем 19 увеличил размер секции main у Ubuntu 18.04 Bionic Beaver (64 бита) с 5,6 Гб до 5,9 Гб (на 6%), но скорость установки за счёт скорости распаковки увеличилась, как описано выше, на 10% и на 40% при использовании eatmydata. Джулиан Андрес Клод является автором утилиты apt и, как было сказано в статье APT станет быстрее, dpkg и apt давно готовы к применению различных архиваторов.
Сырые данные теста от разработчиков.
Kernel install (eatmydata, perf report, time spent in compression)
---------------------------------------------------------------------------------------
Before: 54.79% liblzma.so.5.2.2
After: 11.04% libzstd.so.1.3.3
Kernel install (eatmydata)
----------------------------------
12.49user 3.04system 0:12.57elapsed 123%CPU (0avgtext+0avgdata 68720maxresident)k
0inputs+1056712outputs (0major+159306minor)pagefaults 0swaps
5.60user 2.33system 0:07.07elapsed 112%CPU (0avgtext+0avgdata 81388maxresident)k
0inputs+1108720outputs (0major+171171minor)pagefaults 0swaps
firefox
--------
8.80user 3.57system 0:37.17elapsed 33%CPU (0avgtext+0avgdata 25260maxresident)k
8inputs+548024outputs (0major+376614minor)pagefaults 0swaps
4.52user 3.30system 0:33.14elapsed 23%CPU (0avgtext+0avgdata 25152maxresident)k
0inputs+544560outputs (0major+386394minor)pagefaults 0swaps
firefox eatmydata
-----------------------
8.79user 2.87system 0:12.43elapsed 93%CPU (0avgtext+0avgdata 25416maxresident)k
0inputs+548016outputs (0major+384193minor)pagefaults 0swaps
4.24user 2.57system 0:08.54elapsed 79%CPU (0avgtext+0avgdata 25280maxresident)k
0inputs+544584outputs (0major+392117minor)pagefaults 0swaps
libreoffice
-------------
22.51user 7.65system 1:28.34elapsed 34%CPU (0avgtext+0avgdata 64856maxresident)k
0inputs+1376160outputs (0major+1018794minor)pagefaults 0swaps
11.34user 6.66system 1:18.04elapsed 23%CPU (0avgtext+0avgdata 64676maxresident)k
16inputs+1370112outputs (0major+1024989minor)pagefaults 0swaps
libreoffice eatmydata
----------------------------
22.41user 6.82system 0:27.45elapsed 106%CPU (0avgtext+0avgdata 64772maxresident)k
0inputs+1376160outputs (0major+1035581minor)pagefaults 0swaps
10.86user 5.78system 0:17.70elapsed 94%CPU (0avgtext+0avgdata 64800maxresident)k
0inputs+1370112outputs (0major+1043637minor)pagefaults 0swaps
Оригинал zstd compression for packages.
Дата последней правки: 2018-03-13 09:04:41