Возможно, это теперь апстримовский дефолт (довольно дурацкий, я считаю) сжимать модули ядра и 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 у модулей.
Перевести модули ядра и initramfs с zstd на xz или nocompress
Re: Перевести модули ядра и initramfs с zstd на xz или nocompress
1. с каких пор zstd стал медленным, он просто лучше чем gz и все.
2. При установке модули ядра не упаковываются, они изначально упакованы уже т.е. время на них тратится не больше чем на установку ядра с незапакованными модулями.
3. Значит Роса тормоз и Вам нужно перейти на более быструю ОС.
2. При установке модули ядра не упаковываются, они изначально упакованы уже т.е. время на них тратится не больше чем на установку ядра с незапакованными модулями.
3. Значит Роса тормоз и Вам нужно перейти на более быструю ОС.
Re: Перевести модули ядра и initramfs с zstd на xz или nocompress
При обновлении ядра обновляется 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 МБ), модули несжаты.
В файле /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 МБ), модули несжаты.
Re: Перевести модули ядра и initramfs с zstd на xz или nocompress
ну так сжатие initrd к сжатию модулей ядра не имеет никакого отношения. т.е. изначально неправильно проблема обозначена.
модули ядра может и 400Мб, только вот в initrd они не целиком идут (у нас ведь initrd не 400Мб явно?).
выставьте переменную окружения DRACUT_COMPRESS_ZSTD как нравится и нет проблемы.
модули ядра может и 400Мб, только вот в initrd они не целиком идут (у нас ведь initrd не 400Мб явно?).
ну и хорошо.Я проверил -15 уровень требует 160 МБ RAM
выставьте переменную окружения DRACUT_COMPRESS_ZSTD как нравится и нет проблемы.
Re: Перевести модули ядра и initramfs с zstd на xz или nocompress
Именно так. Спасибо за анализ проблемы, провели исследование и уменьшили сжатие до тройки.
Что повысило его скорость в полтора раза.
В тестингах
https://bugzilla.rosa.ru/show_bug.cgi?id=14905
Re: Перевести модули ядра и initramfs с zstd на xz или nocompress
Спасибо. Будет повод затестить новую Росу.
Re: Перевести модули ядра и initramfs с zstd на xz или nocompress
редактировать - сообщение отправлено с ошибкой