LINUX.ORG.RU
ФорумAdmin

dwarfs вроде должна быть быстрой но...

 ,


0

2

Итак, есть некая замена squoshfs в виде dwarfs.

Вроде как она должна быть быстрее в плане чтения.

Только вот по умолчанию она существенно медленнее как сжимается, так и распаковывается.

Там есть какие то «примочки» для ускорения и т.д.

В общем поделитесь опытом оптимизации dwarfs.

P.S. Разумеется речь идет об оптимизации без серьезного урона сжатию. И крайне желательно использовать zstd.

P.P.S. Из за крайне «удачного» названия, эта штука совершенно не гуглится.

Перемещено hobbit из general

…должна быть быстрее в плане чтения.

Цитата из одной хвалебной статьи: «DwarFS и SquashFS почти не отличаются по быстроте обращения к информации в образе…»

…крайне желательно использовать zstd.

Ну так используй. Squashfs с zstd будет быстрее.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от andytux

Ну так используй. Squashfs с zstd будет быстрее.

У автора есть тесты, в которых быстрее dwarfs.

Вот практического применения DwarFS действительно мало. На ум только приходит Conty от @Kron4ek:

conty_dwarfs.sh, conty_lite_dwarfs.sh и conty_wine_dwarfs.sh такие же, как обычные версии, за исключением того, что они сжаты с помощью DwarFS вместо SquashFS, таким образом, они занимают меньше места на диске.

Помимо лучшего сжатия, DwarFS также имеет лучшее кэширование и лучшую поддержку многопоточности, и, по моему опыту, он считывает сжатые файлы заметно быстрее, чем SquashFS (в частности, squashfuse). Однако преимущество squashfuse заключается в том, что он использует меньше памяти.

krasnh ★★★★★
()
Последнее исправление: krasnh (всего исправлений: 2)
Ответ на: комментарий от krasnh

Кроме Conty, еще существует проект tebako.
Продвинутый упаковщик исполняемых файлов для интерпретируемых языков.

Tebako использует libdwarfs, библиотеку form of DwarFS, разработанную для проекта Tebako.

krasnh ★★★★★
()

Для mkdwarfs можешь поэксперементировать с опциями -S (размер блока) и -B (дедупликация одинаковых сегментов).

Если ты используешь стандартные настройки mkdwarfs, то это значит, что у тебя размер блока по умолчанию равен 24 (что соответствует 16 Мбайт). В моем понимании, если характер доступа к данным внутри образа случайный, размер блока нужно уменьшать (к примеру, до 1 Мбайт - значение 20). Эта опция сильно влияет в том числе и на коэффициент сжатия, поэтому тут нужно подбирать значение под себя. У mksquashfs размер блока по умолчанию 128 Кб.

Дедуплицирование одинаковых сегментов можешь попробовать отлючить (-B0).

Уровень сжатия zstd по умолчание выставлен на 22, в случае с zstd это особо не влияет на скорость чтение файлов из образа, но влияет на потребление памяти и сильно влияет на скорость создания образа. Можно попробовать уменьшить это значение до 19, скорость создания образа должна увеличиться, при этом коэффициент сжатия, скорее всего, будет примерно таким же.

$ mkdwarfs -l7 -C zstd:level=19 -S 20 -B 0 -i input_dir -o output_image

Для dwarfs (монтирование образа) можешь поэксперементировать с опциями cachesize (размер кэша для блоков файловой системы) и workers (количество потоков, исопльзуемых для распаковки сжатых блоков).

А вообще, документация у dwarfs довольно хорошая и опций всяких много. Читай, эксперементируй.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 5)

Вроде как она должна быть быстрее в плане чтения.

Нет. Сколько тестил в разных конфигурациях и прочем, SquashFS намного быстрее, как минимум в плане чтения.

CrX ★★★★★
()