Добавлено многопоточное сжатие XZ в RPM 5

Текущая информация от разработчиков о тех или иных компонентах системы, общение с разработчиками и участниками команды
Ответить
Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 28 дек 2018, 03:54

В тестингах 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

Аватара пользователя
Zeffanyx
Сообщения: 1245
Зарегистрирован: 12 сен 2011, 14:25
Operating system: Rosa Fresh R11, OpenMandriva Lx 4 (Cooker)
Откуда: Санкт-Петербург

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение Zeffanyx » 28 дек 2018, 11:56

Какое основное преимущество у xz? Он быстрее работает или эффективнее сжимает?

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 28 дек 2018, 17:05

Zeffanyx писал(а):
28 дек 2018, 11:56
Какое основное преимущество у xz? Он быстрее работает или эффективнее сжимает?
Эффективнее сжимает, и единственное из доступного в RPM, что может в многопоточность (есть готовая реализация)

notauser
Сообщения: 1205
Зарегистрирован: 06 май 2012, 21:00

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение notauser » 28 дек 2018, 20:02

Zeffanyx писал(а):
28 дек 2018, 11:56
Какое основное преимущество у xz? Он быстрее работает или эффективнее сжимает?
Для того, кто сжимает написали выше. Для пользователя - экономия трафика, выявление проблем памяти и процессора его ПК :) . Но, возможно, свежий xz не такой и/или у пользователей уже не осталось "плохих" ПК.

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 28 дек 2018, 20:37

notauser писал(а):
28 дек 2018, 20:02
Для того, кто сжимает написали выше. Для пользователя - экономия трафика, выявление проблем памяти и процессора его ПК :) . Но, возможно, свежий xz не такой и/или у пользователей уже не осталось "плохих" ПК.
Для пользователей ничего не изменится, т.к. RPM и раньше сжимались xz -6, но в один поток, что никак не влияет на распаковку.

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 28 дек 2018, 20:38

Еще заменили xz -6 на xz -2 для .src.rpm

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение Yamah » 07 янв 2019, 16:29

mikhailnov писал(а):
28 дек 2018, 20:37
Для пользователей ничего не изменится, т.к. RPM и раньше сжимались xz -6, но в один поток, что никак не влияет на распаковку.
Так вот почему у меня на Atom N270 так тормозит установка пакетов! :shock: :-o

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 07 янв 2019, 20:14

Речь про создание пакета, а не установку. Тормозит у вас из-за сочетания медленного диска (5400 оборотов в минуту) и слабого процессора.

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 09 янв 2019, 01:59

Не хотелось бы видеть бесполезные споры,
придирки к словам и т.п.
С этим в личку, пожалуйста. :)

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 12 янв 2019, 13:06

Yamah писал(а):
07 янв 2019, 16:29
Так вот почему у меня на Atom N270 так тормозит установка пакетов! :shock: :-o
У меня тоже тормозит и на моём i5, и на i3 у сына при установке тоже тормозит.
В какой-то момент, при установке пакетов, машина просто перестаёт реагировать,
а секунд через пятнадцать - двадцать всё восстанавливается.
Сейчас для себя верну старый пакет без многопоточной упаковки, и погоняю для проверки.
Что-то меня совсем не вдохновляет многопоточное сжатие.

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 12 янв 2019, 13:49

З.Ы.
Откатил rpm, и установил пакет размером 200 МБ, при установке которого перед этим ноутбук зависал.
В этот раз проблем не было.
Потом запустил обновление около полутора сотен пакетов.
При этом проигрыватель воспроизводил HD фильм, и работал firefox с несколькими вкладками.
Даже не заметил, что шла установка пакетв.
И вроде даже быстрее установились.
Так что буду далее пользоваться этой версией.

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 12 янв 2019, 14:35

А зачем откатывать, достаточно установить 1 поток (0) для %_binary_payload, как объяснено в исходном посте.

По коду патча https://abf.io/import/rpm/blob/rosa2016 ... d-XZ.patch видно, что распараллеливается только encoder, то есть упаковка RPM, не вижу связи с установкой.

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 12 янв 2019, 15:25

mikhailnov писал(а):
12 янв 2019, 14:35
А зачем откатывать, достаточно установить 1 поток (0) для %_binary_payload, как объяснено в исходном посте.

По коду патча https://abf.io/import/rpm/blob/rosa2016 ... d-XZ.patch видно, что распараллеливается только encoder, то есть упаковка RPM, не вижу связи с установкой.
Даже не знаю, почему так, но стало тормозить.
И просто лень разбираться и устанавливать один поток.
Откатился на релиз 80, подняв его версию на 85.
Работает нормально, не тормозит, это важно, а сколько потоков, для меня не важно.
Кстати, установка действительно идёт гораздо быстрее.
Я для себя определился, что мне удобнее.
Лишних сложностей нет, так как половина системы самосборная, и из локальных реп устанавливается.
У меня локальные репы 180 Гб, так что пяток лишних пакетов ничего не решают.

keleg
Сообщения: 5379
Зарегистрирован: 15 сен 2011, 01:58

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение keleg » 13 янв 2019, 10:51

провел большое исследование (правда на виртуалках, чтоб удобней откатывать было).
Регрессий не нашел
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608#c18

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 13 янв 2019, 11:29

keleg писал(а):
13 янв 2019, 10:51
провел большое исследование (правда на виртуалках, чтоб удобней откатывать было).
Регрессий не нашел
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608#c18
По ссылке написано
в связи с сообщениями, что новый rpm медленнее устанавливает пакеты, провел исследование
Но скорость тут не причём совсем.
Я тут писал viewtopic.php?p=98643#p98643
VictorR2007 писал(а):
12 янв 2019, 13:06
В какой-то момент, при установке пакетов, машина просто перестаёт реагировать,
а секунд через пятнадцать - двадцать всё восстанавливается.
Это, проблема для меня, а не скорость.
Тем более что не тестировал на скорость, и последующий вывод был субъективным.
Хотя возможно, что если проблема воссоздаётся в редких случаях, включая мой,
то и скорость меняется после решения проблемы кратковременной заморозки.

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 13 янв 2019, 12:20

"Кратуовременная заморозка" - это высокий load average, забитая очередь процессора и очередь на обращения к диску.

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 13 янв 2019, 14:21

mikhailnov писал(а):
13 янв 2019, 12:20
"Кратуовременная заморозка" - это высокий load average, забитая очередь процессора и очередь на обращения к диску.
Поэтому и подумал, пусть xz работает одним потоком, и остальные потоки освободятся, и не будет проблем.

Аватара пользователя
VictorR2007
Сообщения: 5727
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2016.1
Откуда: Северодвинск

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение VictorR2007 » 13 янв 2019, 14:34

Кстати, всё забываю спросить, есть ли конкретная польза, что xz работает в несколько потоков.
На мой взгляд, достаточно одного потока, и остальные освободятся для остальных задач.
Тем более, что судя по тестам https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608#c18
никакого прироста скорости нет.

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 13 янв 2019, 14:38

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 , самый наглядный результат.

А про распаковку в патче речь и не идет.

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение Yamah » 18 янв 2019, 17:34

mikhailnov писал(а):
07 янв 2019, 20:14
Речь про создание пакета, а не установку. Тормозит у вас из-за сочетания медленного диска (5400 оборотов в минуту) и слабого процессора.
Это понятно. Процессор не может прожевать XZ.И чем сильнее сжатие архива, тем тормознее он работает.
Но когда-то на этом нетбуке жили OpenSUSE 10.x, OpenSUSE 11, Rosa Fresh 2012.1. А дикие тормоза при установке/удалении программ начались в 2014.1 И то не сразу.

Аватара пользователя
mikhailnov
Сообщения: 119
Зарегистрирован: 29 авг 2015, 22:53
Operating system: Ubuntu, ROSA, FreeBSD
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение mikhailnov » 18 янв 2019, 19:37

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.

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение Yamah » 19 янв 2019, 21:42

mikhailnov писал(а):
18 янв 2019, 19:37
в man xz написано, что,ч ем сильнее сжатие, тем меньше нагрузка на процессор при распаковке и тем больше памяти требуется для распаковки
Стоить все-таки понимать, что "на одном и том же оборудовании".

Я как бы сюда не спорить пришел о формате сжатия для пакетов. Я тут порадовался, что ответ для себя нашел, с чего бы нетбук так тормозит при работе с RPM.

notauser
Сообщения: 1205
Зарегистрирован: 06 май 2012, 21:00

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение notauser » 19 янв 2019, 23:49

А tar.gz не тормозит? :) xz замечательная штука, но.., кто бы объяснил на "уровне" алгоритмов все плюшки. Можно считать это дисциплиной некой олимпиады :)
PS Может так. Надо хранить нечто, что будет восcтановлено после... Сжатие не волнует. Немного беспокоит обратный процесс. Для тестирования процесса "распаковки" (читай установки) есть "битая", но "рабочая" ОЗУ в 1-8 Gbit (процессор рано или позно же дожен переварить, да) - с xz всё не просто.
Последний раз редактировалось notauser 20 янв 2019, 00:04, всего редактировалось 1 раз.

notauser
Сообщения: 1205
Зарегистрирован: 06 май 2012, 21:00

Добавлено многопоточное сжатие XZ в RPM 5

Сообщение notauser » 19 янв 2019, 23:57

notauser писал(а):
19 янв 2019, 23:49
И да. Нет ли тут некой зависимости от версии и/или от чего-то подобного...

Ответить