Перевести модули ядра и initramfs с zstd на xz или nocompress

Ответить
artenaki
Сообщения: 86
Зарегистрирован: 25 фев 2023, 22:33
Operating system: Linux

Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение artenaki »

Возможно, это теперь апстримовский дефолт (довольно дурацкий, я считаю) сжимать модули ядра и initramfs (initrd) в zstd с дичайшим уровнем сжатия, это очень медленно на виртуалке, а происходит при каждом обновлении ядра. Я проверял в Rosa 12.5.1, там используется zstd. Rosa 13 не проверял ещё, но думаю также. Спрашивал у ChatGPT как отказаться от zstd. Он дал какие-то советы, но пока ничего не поменялось (тестил в Rosa 12, правда). Возможно, это проявится только при обновлениях ядра/grub. А что посоветуют люди? В идеале хотелось бы nocompress, как в ubuntu 22.04 (у модулей).

Как я всё это выявил? Поставил Rosa 12.5.1 в виртуалку, пришли обновления за год и что-то связанное с ядром или grub ну очень уж долго обновлялось, а в htop мелькал zstd. А в Mageia Cauldron ядра обновляются быстро, уже не раз обновления приходили, там xz у модулей.
irton
Сообщения: 959
Зарегистрирован: 30 окт 2021, 04:17
Operating system: Rosa Fresh Xfce

Re: Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение irton »

1. с каких пор zstd стал медленным, он просто лучше чем gz и все.
2. При установке модули ядра не упаковываются, они изначально упакованы уже т.е. время на них тратится не больше чем на установку ядра с незапакованными модулями.
3. Значит Роса тормоз и Вам нужно перейти на более быструю ОС.
artenaki
Сообщения: 86
Зарегистрирован: 25 фев 2023, 22:33
Operating system: Linux

Re: Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение artenaki »

При обновлении ядра обновляется initrd.
В файле /usr/sbin/dracut из пакета dracut нашёл строчку $DRACUT_COMPRESS_ZSTD -15 -q -T0. Это сжатие initrd с помощью zstd. -15 не самое лёгкое сжатие. У zstd дефолт -3.
Не знаю что там сжимается (модули ядра 400 МБ+ весят), но это очень долго на виртуалке с 512...1024 МБ RAM и одним ядром. Если в параллель, то может своппинг снижать скорость. Я проверил -15 уровень требует 160 МБ RAM.

В Mageia Cauldron initrd gzip best (16 MB), модули xz, в Ubuntu 22.04 cpio (60 МБ), модули несжаты.
irton
Сообщения: 959
Зарегистрирован: 30 окт 2021, 04:17
Operating system: Rosa Fresh Xfce

Re: Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение irton »

ну так сжатие initrd к сжатию модулей ядра не имеет никакого отношения. т.е. изначально неправильно проблема обозначена.
модули ядра может и 400Мб, только вот в initrd они не целиком идут (у нас ведь initrd не 400Мб явно?).
Я проверил -15 уровень требует 160 МБ RAM
ну и хорошо.

выставьте переменную окружения DRACUT_COMPRESS_ZSTD как нравится и нет проблемы.
keleg
Сообщения: 4930
Зарегистрирован: 15 сен 2011, 01:58

Re: Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение keleg »

artenaki писал(а): 07 мар 2025, 05:22 При обновлении ядра обновляется initrd.
Именно так. Спасибо за анализ проблемы, провели исследование и уменьшили сжатие до тройки.
Что повысило его скорость в полтора раза.
В тестингах
https://bugzilla.rosa.ru/show_bug.cgi?id=14905
artenaki
Сообщения: 86
Зарегистрирован: 25 фев 2023, 22:33
Operating system: Linux

Re: Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение artenaki »

Спасибо. Будет повод затестить новую Росу.
astragalo
Сообщения: 21
Зарегистрирован: 03 авг 2022, 14:44
Operating system: Rosa R12.2

Re: Перевести модули ядра и initramfs с zstd на xz или nocompress

Сообщение astragalo »

редактировать - сообщение отправлено с ошибкой
Ответить

Вернуться в «Обсуждение РОСА Фреш 13 (платформа РОСА 13)»