Страница 1 из 1
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 28 дек 2018, 03:54
mikhailnov
В тестингах RPM, наученный упаковывать .rpm и .src.rpm, используя многопоточное сжатие xz.
Сжатие .src.rpm переведено с gzip на xz по умолчанию.
Сжатием .rpm был xz, он и остался, но стал многопоточным по умолчанию.
Пример проверки использованного в пакете сжатия:
# rpm -qp --qf '%{PAYLOADCOMPRESSOR}\n' rpm-5.4.10-82.src.rpm
xz
Настройка многопоточного сжатия производится записыванием параметров в файл /etc/rpm/macros , которые переопределят параметры по умолчанию из файла /usr/lib/rpm/macros.d/mandriva
Новая стандартная конфигурация в /usr/lib/rpm/macros.d/mandriva такая:
%_binary_payload w6T.xzdio
%_source_payload w6T.xzdio
%_binary_payload - настройка сжатия .src.rpm
%_source_payload - настройка сжатия .rpm
Примеры:
%_binary_payload w6T2.xzdio - сжимать .rpm с помощью XZ на уровне упаковки 6 в 2+1=3 потока
%_binary_payload w9T0.xzdio - сжимать .rpm с помощью XZ на уровне упаковки 9 в 0+1=1 поток
%_binary_payload w6T.xzdio - сжимать .rpm с помощью XZ на уровне упаковки 6 в максимальное количество потоков по числу ядер процессора.
Про уровни упаковки см. в man xz.
(чтобы удостовериться, что именно n+1, см. код:
https://abf.io/import/rpm/blob/rosa2016 ... atch#lc-55 )
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608
Патчи, добавшие эти изменения:
*
https://abf.io/import/rpm/blob/rosa2016 ... d-XZ.patch
*
https://abf.io/import/rpm/blob/rosa2016 ... and-.patch
*
https://abf.io/import/rpm/blob/rosa2016 ... imit.patch
Сборки нового RPM для тех, кто не пользуется тестовыми репозиториями rosa2016.1:
https://abf.io/build_lists/2956123
https://abf.io/build_lists/2956124
В качестве бенчмарка по упаковке нескольких гигабайтов в RPM предлагается использовать
https://gitlab.com/nixtux-packaging/appimage2pkg .
Эта статья в других местах:
https://nixtux.ru/819
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 28 дек 2018, 11:56
Zeffanyx
Какое основное преимущество у xz? Он быстрее работает или эффективнее сжимает?
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 28 дек 2018, 17:05
mikhailnov
Zeffanyx писал(а): ↑28 дек 2018, 11:56
Какое основное преимущество у xz? Он быстрее работает или эффективнее сжимает?
Эффективнее сжимает, и единственное из доступного в RPM, что может в многопоточность (есть готовая реализация)
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 28 дек 2018, 20:02
notauser
Zeffanyx писал(а): ↑28 дек 2018, 11:56
Какое основное преимущество у xz? Он быстрее работает или эффективнее сжимает?
Для того, кто сжимает написали выше. Для пользователя - экономия трафика, выявление проблем памяти и процессора его ПК
. Но, возможно, свежий xz не такой и/или у пользователей уже не осталось "плохих" ПК.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 28 дек 2018, 20:37
mikhailnov
notauser писал(а): ↑28 дек 2018, 20:02
Для того, кто сжимает написали выше. Для пользователя - экономия трафика, выявление проблем памяти и процессора его ПК
. Но, возможно, свежий xz не такой и/или у пользователей уже не осталось "плохих" ПК.
Для пользователей ничего не изменится, т.к. RPM и раньше сжимались xz -6, но в один поток, что никак не влияет на распаковку.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 28 дек 2018, 20:38
mikhailnov
Еще заменили xz -6 на xz -2 для .src.rpm
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 07 янв 2019, 16:29
Yamah
mikhailnov писал(а): ↑28 дек 2018, 20:37
Для пользователей ничего не изменится, т.к. RPM и раньше сжимались xz -6, но в один поток, что никак не влияет на распаковку.
Так вот почему у меня на Atom N270 так тормозит установка пакетов!
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 07 янв 2019, 20:14
mikhailnov
Речь про создание пакета, а не установку. Тормозит у вас из-за сочетания медленного диска (5400 оборотов в минуту) и слабого процессора.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 09 янв 2019, 01:59
VictorR2007
Не хотелось бы видеть бесполезные споры,
придирки к словам и т.п.
С этим в личку, пожалуйста.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 12 янв 2019, 13:06
VictorR2007
Yamah писал(а): ↑07 янв 2019, 16:29
Так вот почему у меня на Atom N270 так тормозит установка пакетов!
У меня тоже тормозит и на моём i5, и на i3 у сына при установке тоже тормозит.
В какой-то момент, при установке пакетов, машина просто перестаёт реагировать,
а секунд через пятнадцать - двадцать всё восстанавливается.
Сейчас для себя верну старый пакет без многопоточной упаковки, и погоняю для проверки.
Что-то меня совсем не вдохновляет многопоточное сжатие.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 12 янв 2019, 13:49
VictorR2007
З.Ы.
Откатил rpm, и установил пакет размером 200 МБ, при установке которого перед этим ноутбук зависал.
В этот раз проблем не было.
Потом запустил обновление около полутора сотен пакетов.
При этом проигрыватель воспроизводил HD фильм, и работал firefox с несколькими вкладками.
Даже не заметил, что шла установка пакетв.
И вроде даже быстрее установились.
Так что буду далее пользоваться этой версией.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 12 янв 2019, 14:35
mikhailnov
А зачем откатывать, достаточно установить 1 поток (0) для %_binary_payload, как объяснено в исходном посте.
По коду патча
https://abf.io/import/rpm/blob/rosa2016 ... d-XZ.patch видно, что распараллеливается только encoder, то есть упаковка RPM, не вижу связи с установкой.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 12 янв 2019, 15:25
VictorR2007
Даже не знаю, почему так, но стало тормозить.
И просто лень разбираться и устанавливать один поток.
Откатился на релиз 80, подняв его версию на 85.
Работает нормально, не тормозит, это важно, а сколько потоков, для меня не важно.
Кстати, установка действительно идёт гораздо быстрее.
Я для себя определился, что мне удобнее.
Лишних сложностей нет, так как половина системы самосборная, и из локальных реп устанавливается.
У меня локальные репы 180 Гб, так что пяток лишних пакетов ничего не решают.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 13 янв 2019, 10:51
keleg
провел большое исследование (правда на виртуалках, чтоб удобней откатывать было).
Регрессий не нашел
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608#c18
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 13 янв 2019, 11:29
VictorR2007
По ссылке написано
в связи с сообщениями, что новый rpm медленнее устанавливает пакеты, провел исследование
Но скорость тут не причём совсем.
Я тут писал
viewtopic.php?p=98643#p98643
VictorR2007 писал(а): ↑12 янв 2019, 13:06
В какой-то момент, при установке пакетов, машина просто перестаёт реагировать,
а секунд через пятнадцать - двадцать всё восстанавливается.
Это, проблема для меня, а не скорость.
Тем более что не тестировал на скорость, и последующий вывод был субъективным.
Хотя возможно, что если проблема воссоздаётся в редких случаях, включая мой,
то и скорость меняется после решения проблемы кратковременной заморозки.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 13 янв 2019, 12:20
mikhailnov
"Кратуовременная заморозка" - это высокий load average, забитая очередь процессора и очередь на обращения к диску.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 13 янв 2019, 14:21
VictorR2007
mikhailnov писал(а): ↑13 янв 2019, 12:20
"Кратуовременная заморозка" - это высокий load average, забитая очередь процессора и очередь на обращения к диску.
Поэтому и подумал, пусть xz работает одним потоком, и остальные потоки освободятся, и не будет проблем.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 13 янв 2019, 14:34
VictorR2007
Кстати, всё забываю спросить, есть ли конкретная польза, что xz работает в несколько потоков.
На мой взгляд, достаточно одного потока, и остальные освободятся для остальных задач.
Тем более, что судя по тестам
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608#c18
никакого прироста скорости нет.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 13 янв 2019, 14:38
mikhailnov
VictorR2007 писал(а): ↑13 янв 2019, 14:34
Кстати, всё забываю спросить, есть ли конкретная польза, что xz работает в несколько потоков.
На мой взгляд, достаточно одного потока, и остальные освободятся для остальных задач.
Тем более, что судя по тестам
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608#c18
никакого прироста скорости нет.
Да, при
упаковке жирных RPM ускорение сборки большое. На ABF на Draftsight тестировал (перепаковка жирных блобов). Локально тестировал на упаковке
https://gitlab.com/nixtux-packaging/appimage2pkg , самый наглядный результат.
А про распаковку в патче речь и не идет.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 18 янв 2019, 17:34
Yamah
mikhailnov писал(а): ↑07 янв 2019, 20:14
Речь про создание пакета, а не установку. Тормозит у вас из-за сочетания медленного диска (5400 оборотов в минуту) и слабого процессора.
Это понятно. Процессор не может прожевать XZ.И чем сильнее сжатие архива, тем тормознее он работает.
Но когда-то на этом нетбуке жили OpenSUSE 10.x, OpenSUSE 11, Rosa Fresh 2012.1. А дикие тормоза при установке/удалении программ начались в 2014.1 И то не сразу.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 18 янв 2019, 19:37
mikhailnov
Yamah писал(а): ↑18 янв 2019, 17:34
Это понятно. Процессор не может прожевать XZ.И чем сильнее сжатие архива, тем тормознее он работает.
в man xz написано, что,ч ем сильнее сжатие, тем меньше нагрузка на процессор при распаковке и тем больше памяти требуется для распаковки
Код: Выделить всё
On the same hardware, the decompression speed is approximately a constant number of bytes of compressed data per second. In other words, the
better the compression, the faster the decompression will usually be.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 19 янв 2019, 21:42
Yamah
mikhailnov писал(а): ↑18 янв 2019, 19:37
в man xz написано, что,ч ем сильнее сжатие, тем меньше нагрузка на процессор при распаковке и тем больше памяти требуется для распаковки
Стоить все-таки понимать, что "на одном и том же оборудовании".
Я как бы сюда не спорить пришел о формате сжатия для пакетов. Я тут порадовался, что ответ для себя нашел, с чего бы нетбук так тормозит при работе с RPM.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 19 янв 2019, 23:49
notauser
А tar.gz не тормозит?
xz замечательная штука, но.., кто бы объяснил на "уровне" алгоритмов все плюшки. Можно считать это дисциплиной некой олимпиады
PS Может так. Надо хранить нечто, что будет восcтановлено после... Сжатие не волнует. Немного беспокоит обратный процесс. Для тестирования процесса "распаковки" (читай установки) есть "битая", но "рабочая" ОЗУ в 1-8 Gbit (процессор рано или позно же дожен переварить, да) - с xz всё не просто.
Добавлено многопоточное сжатие XZ в RPM 5
Добавлено: 19 янв 2019, 23:57
notauser
notauser писал(а): ↑19 янв 2019, 23:49
И да. Нет ли тут некой зависимости от версии и/или от чего-то подобного...