Упаковка модулей в zstd для ускорения старта системы

Собственно, вот: Все самое интересное из мира IT-индустрии (и оригинал
Arch Linux - News: Now using Zstandard instead of xz for package compression )

Arch Linux перешёл на архивы zstd: 1300% к скорости распаковки пакетов
Разработчики Arch Linux сообщили, что изменили схему упаковки пакетов с алгоритма. Ранее использовался алгоритм xz (.pkg.tar.xz). Теперь же задействован zstd (.pkg.tar.zst). Это позволило увеличить скорость распаковки на 1300 % ценой незначительного увеличения размера самих пакетов (примерно 0,8 %). Это позволит ускорить процесс установки и обновления пакетов в системе.

Для начала нужно чтоб zstd появился в squashfs :slight_smile:
И в приведенные цифры слабо верится, при всей крутости zstd.
Заменить алгоритм сжатия можно и сейчас, перепаковав модули с любым из доступных mksquashfs алгоритмов. Для тестирования алгоритмов у нас есть скриптик squashtest. Он прогоняет сжатие и распаковку модулей на разных алгоритмах. Дело в том, что скорость чтения будет зависеть не только от алгоритма, но и от системы. То есть от проца и скорости чтения с носителя. Чем быстрее проц и медленнее носитель тем большее нужно сжатие и наоборот. Для ноутов i3,i5 с обычным винтом обычно в скорости выигрывают lzo или gzip. Для i7 xz (как в магос), для нетбуков - lz4.
Прирост по цифрам может быть достаточно ощутимый, но на глаз при загрузке почти не заметно. С zstd думаю будет плюс-минус также.

Значит, надо тестировать. У меня i3 и i5 основные, другим компам не столь существенна скорость загрузки.

Полагаю, алгоритмы при прочих равных плюс-минус сравнимы по степени сжатия, это однократная операция при сборке, причем НЕ упользователя. Но zstd вероятно более оптимизирован именно в плане распаковки, и конкретно для системы команд и архитектуры современных процессоров. Более старые алгоритмы наверняка или вообще не учитывают эти особенности, оптимизируясь только компилятором, или тюнились под более старые процессоры.

Флешка USB3.0 выдаёт на чтение под 80МБ/с, практически как ноутбучный HDD на 5400rpm линейно, но случайный поиск канеш много шустрее. Даже USB2.0 читает до 40МБ/с, опять же плюс по поиску. Не думаю, что те, кому критична скорость загрузки, используют оч медленные флешки. Так что надо экспериментировать.

Попробуйте squashtest. Если будет ощутимая разница в скорости чтения относительно xz может и имеет смысл пережать.
Есть еще момент. Если перепаковывать модули магос с другим алгоритмом то при обновлении вы будете качать целиком всю сборку, а если модули не трогать то только измененные блоки, то есть обычно втрое меньше.
Для перепаковки можно использовать magosrepack или mkpfs в цикле. С мкпфс можно объединить модули в один, это тоже даст небольшой прирост в скорости чтения и потребления RAM.

На счет скорости не знаю, но архив ~.tar.gz допустим в Магее не совсем корректно работает с правами доступа.
Если за архивировать домашнюю папку юзера в архив ~.tar.gz и потом запустить dolphin от root и уже от root разархивировать данный архив ~.tar.gz то домашняя папка юзера будет с правами root
Я в таких случаях пакую папку в модуль (xzm) и в нужном месте распаковываю.

Вы можете делать сквошфс модули с алгоритмом gzip, работать будут также как и xz, но с некоторыми конфигурациями железа скорость чтения вырастет, а с некоторыми у
падет. Об этом речь. Не о тар.гз

Попробуйте squashtest. Если будет ощутимая разница в скорости чтения относительно xz может и имеет смысл пережать.

squashtest пока не поддерживает алгоритм zstd. Возможно, в будущих версиях? Я пока на предыдущей сборке, даже не самой свежей.