Сайт | Скачать | Видео | Wiki

Автор Тема: Типы компресии SquashFS  (Прочитано 40516 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Типы компресии SquashFS
« : 26 Январь 2015, 14:52:11 »
Тесты и выводы
https://forum.puppyrus.org/index.php?topic=21412.msg153353#msg153353

Обнаружил, что в pra03 обновился squashfs-tool 4.3.4. Расширен список компрессий
Устроил гонки. Жал Dir объемом 26.480 M    cups-2.0.1-1

Код
mksquashfs:                     unsquashfs
время   размер
00.21 s 15868 k lz4             0.072s
00.93 s 14533 k lz4-Xhc
03.98 s 12902 k gzip            0.173s
05.65 s 13529 k lzo
08.24 s 11756 k lzma
08.91 s 11751 k xz
17.70 s 11457 k xz-x86
32.79 s 11063 k xz-x86-512      0.695s

32.79 s 11063 k xz-x86-512
17.70 s 11457 k xz-x86
08.91 s 11751 k xz
08.24 s 11756 k lzma
03.98 s 12902 k gzip
05.65 s 13529 k lzo
00.93 s 14533 k lz4-Xhc
00.21 s 15868 k lz4
lz4 порвал всех по скорости, но примонтировать его (mont -o loop)  не удалось - вероятно нет поддержки в ядре
Кроме того старые unsquashfs не разожмут
По размеру лидер не изменился xz c оптимизацией x86 и блоком 512 (то что и юзаем в pfs-utils). В чем и хотелось убедиться

Золотая середина -  gz - здесь все ровно. Не зря от по дефолту
« Последнее редактирование: 25 Декабрь 2021, 12:17:12 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re:Типы компресии squashfs
« Ответ #1 : 28 Февраль 2015, 20:45:06 »
lz4 порвал всех по скорости, но примонтировать его (mont -o loop)  не удалось - вероятно нет поддержки в ядре
В этом ядре появилась

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Типы компресии SquashFS
« Ответ #3 : 23 Февраль 2019, 12:29:04 »
Немного наблюдений по xz. Алгоритм xz -Xbcj x86 -b 512k в 2 раза дольше сжимает чем xz -b 512k, при почти одинаковом размере.
Но есть исключения. Если сжимать /var только xz -b 512k, наоборот удвоение размера (там несжатые архивы *.files; /var/cache/pkgfile).
Код
% sudo ./squashtest xz -Xbcj x86 -b 512k --dirs /mnt/live/memory/images/001-prar1811-kr1.pfs 
./squashtest: строка 2: /etc/initvars: Нет такого файла или каталога
write/mnt/live/memory/images/001-prar1811-kr1.pfs     xz -Xbcj x86 -b 512k           131M         121.35 sec

==========================================================
read  all          xz -Xbcj x86 -b 512k           0.13 sec

write all          xz -Xbcj x86 -b 512k         121.35 sec
==========================================================
size all                        cource             609.8M
size all          xz -Xbcj x86 -b 512k             130.3M
==========================================================
Best read  speed  -- xz -Xbcj x86 -b 512k
Best write speed  -- xz -Xbcj x86 -b 512k
Best compression  -- xz -Xbcj x86 -b 512k
==========================================================
sudo ./squashtest xz -Xbcj x86 -b 512k --dirs   463,78s user 24,66s system 333% cpu 2:26,26 total
Код
% sudo ./squashtest xz -b 512k --dirs /mnt/live/memory/images/001-prar1811-kr1.pfs 
./squashtest: строка 2: /etc/initvars: Нет такого файла или каталога
write/mnt/live/memory/images/001-prar1811-kr1.pfs               xz -b 512k           133M          62.35 sec

==========================================================
read  all                    xz -b 512k           0.11 sec

write all                    xz -b 512k          62.35 sec
==========================================================
size all                        cource             609.8M
size all                    xz -b 512k             132.2M
==========================================================
Best read  speed  -- xz -b 512k
Best write speed  -- xz -b 512k
Best compression  -- xz -b 512k
==========================================================
sudo ./squashtest xz -b 512k --dirs   232,34s user 24,13s system 294% cpu 1:26,99 total
« Последнее редактирование: 23 Февраль 2019, 13:01:36 от krasnyh »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Initrd UIRD
« Ответ #4 : 23 Декабрь 2021, 17:13:22 »
Я тоже был консервативен, пока не сравнил первый запуск хрома в xz и zstd
Уже сто раз перетирали что замер скорости на одной машине не говорит ни о чем. На разном железе разные алгоритмы показывают лучшие результаты по скорости чтения. А xz стабильно меньше размером, что дает плюс при работе по сети и при обновлениях. Кстати у меня новый достаточно шустрый ноут. надо будет проверить. Но бариум сейчас на zstd )
А в конфиг (там есть lfa prar2019) этот -e не засунуть?
Если кастрировать  надо много, то проще сделать свой конфиг для mkuird на основе mkuird.cfg. Lfa и prar это конфиги загрузки при сборке они не читаются.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Re: Initrd UIRD
« Ответ #5 : 23 Декабрь 2021, 17:28:59 »
на одной машине
Я проверял на нескольких - около 5 размой старости и мощи
Но на другом софте подобного не замечал.
На любом софте замечал только на ARM процах

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Re: Initrd UIRD
« Ответ #6 : 23 Декабрь 2021, 17:34:41 »
Я проверял на нескольких - около 5 размой старости и мощи
Сделаю тесты на новом ноуте на nvme и на usb2.0. Остальное сответственно одинаково: рязань 5 5600H, 16G рамы.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Re: Initrd UIRD
« Ответ #7 : 23 Декабрь 2021, 17:46:45 »
Но бариум сейчас на zstd )
Хе хе )

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Re: Initrd UIRD
« Ответ #8 : 23 Декабрь 2021, 17:53:36 »
NVME:
Код
squashtest lz4, lzo, xz, zstd --dirs /.memory/bundles/{0,1}*
write     /.memory/bundles/00-basesys.trm.xzm                      lz4           986M           1.72 sec
write     /.memory/bundles/00-basesys.trm.xzm                      lzo           808M          32.03 sec
write     /.memory/bundles/00-basesys.trm.xzm                       xz           643M          49.97 sec
write     /.memory/bundles/00-basesys.trm.xzm                     zstd           699M          30.72 sec

write        /.memory/bundles/05-kmod.trm.xzm                      lz4            72M           0.16 sec
write        /.memory/bundles/05-kmod.trm.xzm                      lzo            72M           1.10 sec
write        /.memory/bundles/05-kmod.trm.xzm                       xz            71M           2.14 sec
write        /.memory/bundles/05-kmod.trm.xzm                     zstd            71M           1.32 sec

write          /.memory/bundles/10-extsys.xzm                      lz4           934M           1.71 sec
write          /.memory/bundles/10-extsys.xzm                      lzo           733M          26.88 sec
write          /.memory/bundles/10-extsys.xzm                       xz           571M          44.16 sec
write          /.memory/bundles/10-extsys.xzm                     zstd           619M          28.62 sec

==========================================================
read  all                           lz4          12.11 sec
read  all                           lzo          13.59 sec
read  all                            xz          86.13 sec
read  all                          zstd          15.42 sec

write all                           lz4           3.59 sec
write all                           lzo          60.01 sec
write all                            xz          96.27 sec
write all                          zstd          60.66 sec
==========================================================
size  all                        source     4158.5M (100%)
size  all                           lz4    1990.7M (47.8%)
size  all                           lzo    1611.7M (38.7%)
size  all                            xz    1283.5M (30.8%)
size  all                          zstd    1387.1M (33.3%)
==========================================================
Best read  speed  -- lz4
Best write speed  -- lz4
Best compression  -- xz
==========================================================


Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Re: Initrd UIRD
« Ответ #9 : 23 Декабрь 2021, 17:55:00 »
Тестируйте на первый запуск хрома. Там на глаз заметно

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Re: Initrd UIRD
« Ответ #10 : 23 Декабрь 2021, 17:56:27 »
USB:
Код
squashtest lz4, lzo, xz, zstd --dirs /.memory/bundles/{0,1}*
write     /.memory/bundles/00-basesys.trm.xzm                      lz4           986M         229.80 sec
write     /.memory/bundles/00-basesys.trm.xzm                      lzo           808M         208.49 sec
write     /.memory/bundles/00-basesys.trm.xzm                       xz           643M         171.54 sec
write     /.memory/bundles/00-basesys.trm.xzm                     zstd           699M         178.23 sec

write        /.memory/bundles/05-kmod.trm.xzm                      lz4            72M          19.77 sec
write        /.memory/bundles/05-kmod.trm.xzm                      lzo            72M          18.15 sec
write        /.memory/bundles/05-kmod.trm.xzm                       xz            71M          19.28 sec
write        /.memory/bundles/05-kmod.trm.xzm                     zstd            71M          17.69 sec

write          /.memory/bundles/10-extsys.xzm                      lz4           934M         214.15 sec
write          /.memory/bundles/10-extsys.xzm                      lzo           733M         183.30 sec
write          /.memory/bundles/10-extsys.xzm                       xz           571M         154.69 sec
write          /.memory/bundles/10-extsys.xzm                     zstd           619M         159.55 sec

==========================================================
read  all                           lz4          83.76 sec
read  all                           lzo          66.50 sec
read  all                            xz          99.87 sec
read  all                          zstd          59.25 sec

write all                           lz4         463.72 sec
write all                           lzo         409.94 sec
write all                            xz         345.51 sec
write all                          zstd         355.47 sec
==========================================================
size  all                        source     4158.5M (100%)
size  all                           lz4    1990.7M (47.8%)
size  all                           lzo    1611.7M (38.7%)
size  all                            xz    1283.5M (30.8%)
size  all                          zstd    1387.1M (33.3%)
==========================================================
Best read  speed  -- zstd
Best write speed  -- xz
Best compression  -- xz
==========================================================


Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Re: Initrd UIRD
« Ответ #11 : 23 Декабрь 2021, 17:59:05 »
Тестируйте на первый запуск хрома. Там на глаз заметно
Зачем на глаз, у меня линейка есть. Запустил и жди. Еще бы по хорошему все лишнее поотключать.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Re: Initrd UIRD
« Ответ #12 : 23 Декабрь 2021, 19:53:14 »
Интересно было бы на этом же железе проверить с полным бинарным ядром pf. Там патченый zstd, который обещает увеличение скорости в некоторых задачах до 30%.

Но если не досуг, то не надо. :)

Цитата
Измерено для x86_64 на моем Intel i9-9900k @ 3,6 ГГц:
>>
- Сжатие BtrFS zstd на уровнях 1 и 3 на 5% быстрее
> - Распаковка BtrFS zstd + чтение на 15% быстрее
> - Распаковка SquashFS zstd + чтение 15% быстрее
> - сжатие F2FS zstd + запись на уровне 3 на 8% быстрее
> - Распаковка zstd F2FS + чтение на 20% быстрее
> - Распаковка ZRAM + чтение на 30% быстрее
> - Распаковка ядра zstd на 35% быстрее
> - Распаковка initramfs zstd + сборка на 5% быстрее
https://lkml.org/lkml/2021/11/10/869
« Последнее редактирование: 23 Декабрь 2021, 19:56:34 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Типы компресии SquashFS
« Ответ #13 : 25 Декабрь 2021, 11:11:25 »
Перенес
NVМЕ
read  all                            xz          86.13 sec
read  all                          zstd          15.42 sec
USB
read  all                            xz          99.87 sec
read  all                          zstd          59.25 sec
Т.е. выводы :
1. Быстрые носители (NVME) быстрее медленных (USB)  ;D
2. При существенном разве что только для copy2ram (который актуален только на медленных носителях) увеличении размера модуля, zstd быстрее в разы xz не зависимо от CPU и носителя

Приложил squashtest . В прар2110 требует доустановки bc и у меня read показал нули
Разбираться не стал. Скрипт большой, трудночитаемый. Написал свой squashtest2
Код
CPU~Quad core Intel Core i3-8100 (-MCP-) speed/max~800/3600 MHz Kernel~5.13.0-pf5-lf x86_64 Up~1:43
Mem~974.5/7824.3MB HDD~240.1GB(72.7% used) Procs~174 Client~Shell inxi~2.3.56
253M    google-chrome-gtk3-p-96.0.4664.110_64-sf01

write zstd 18: 12,80
read  zstd 18: 0,26
100M    google-chrome-gtk3-p-96.0.4664.110_64-sf01.pfs

write xz max : 35,97
read  xz     : 1,51
92M     google-chrome-gtk3-p-96.0.4664.110_64-sf01.pfs

=========

33      /mnt/live/memory/images/celluloid-gtk3-p-0.21_64-sf06
write zstd 18: 1,50
read  zstd 18: 0,02
9,3M    celluloid-gtk3-p-0.21_64-sf06.pfs

write xz max : 3,64
read  xz     : 0,27
8,3M    celluloid-gtk3-p-0.21_64-sf06.pfs
3. Особенно зффект ускорения заметен на больших файлах (бинарник chrome 180мб)
4. На маленьких файлах ускорение даже в разы незаметно
Т.е. злоупотреблять zstd тоже смысла нет.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: Типы компресии SquashFS
« Ответ #14 : 25 Декабрь 2021, 11:55:06 »
Раз упоминается squashtest, то тема для объединения Алгоритмы сжатия/распаковки.

Подробней о методике теста от betcher.


Разбираться не стал.
rsync

1. Быстрые носители (NVME) быстрее медленных (USB)    ;D
Нет. Основной вывод - чтение xz настолько медленное, что не упирается в скорость носителя, в отличие от других алгоритмов. Т.е. на свежем современном железе такой фругал будет сильно проигрывать "Большим Линуксам".
« Последнее редактирование: 25 Декабрь 2021, 12:08:12 от krasnyh »