RPM4 vs RPM5
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
RPM4 vs RPM5
Добрый день, коллеги.
В свободное время занимаюсь программированием для Mageia Linux (хобби). В данный момент пишу программу-клинер, среди возможностей которой есть рекурсивный анализ зависимостей актуальных пакетов и сирот. В процессе адаптации для ОС ROSA R9 (обе архитектуры) возникли некоторые вопросы.
Напомню, что:
----------------------------
ROSA R9 - rpm5, urpmi7
Mageia 5(6) - rpm4, urpmi8
Замеры производились на VirtualBox 5.1.26r117224 в Windows 7 x64.
Ниже приведу результаты работы стандартных для Mageia и ROSA команд и время их выполнения:
---------------------------------------------------------------------------------------------
Ребилд базы данных RPM: rpm --rebuilddb - Mageia=5 сек - ROSA=4 мин. 45 сек
Поиск "правых" зависимостей пакета: urpmq --whatrequires libgcc1 - Mageia=7 сек - ROSA=1 мин. 48 сек.
Поиск "правых" зависимостей пакета: urpmq --whatrequires glibc - Mageia=7 сек - ROSA=5 мин.32 сек.
*правые зависимости, т.е. для каких пакетов нужен исследуемый пакет
Эти простейшие тесты показали, что RPM5 усредненно в 8-10 раз медленнее, чем RPM4.
Вопрос: С чем связаны такие временнЫе показатели работы RPM5 по отношению к RPM4?
Заранее благодарен за ответ...
В свободное время занимаюсь программированием для Mageia Linux (хобби). В данный момент пишу программу-клинер, среди возможностей которой есть рекурсивный анализ зависимостей актуальных пакетов и сирот. В процессе адаптации для ОС ROSA R9 (обе архитектуры) возникли некоторые вопросы.
Напомню, что:
----------------------------
ROSA R9 - rpm5, urpmi7
Mageia 5(6) - rpm4, urpmi8
Замеры производились на VirtualBox 5.1.26r117224 в Windows 7 x64.
Ниже приведу результаты работы стандартных для Mageia и ROSA команд и время их выполнения:
---------------------------------------------------------------------------------------------
Ребилд базы данных RPM: rpm --rebuilddb - Mageia=5 сек - ROSA=4 мин. 45 сек
Поиск "правых" зависимостей пакета: urpmq --whatrequires libgcc1 - Mageia=7 сек - ROSA=1 мин. 48 сек.
Поиск "правых" зависимостей пакета: urpmq --whatrequires glibc - Mageia=7 сек - ROSA=5 мин.32 сек.
*правые зависимости, т.е. для каких пакетов нужен исследуемый пакет
Эти простейшие тесты показали, что RPM5 усредненно в 8-10 раз медленнее, чем RPM4.
Вопрос: С чем связаны такие временнЫе показатели работы RPM5 по отношению к RPM4?
Заранее благодарен за ответ...
Re: RPM4 vs RPM5
То есть количество "для каких пакетов" - не идентично?alex_q_2000 писал(а):*правые зависимости, т.е. для каких пакетов нужен исследуемый пакет
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
Re: RPM4 vs RPM5
Это условности, чтобы сэкономить время понимания: левые - те, которые требуются данному пакету, правые - те, для которых требуется данный пакет. По существу вопроса что-нибудь не хотите добавить?trs писал(а):То есть количество "для каких пакетов" - не идентично?alex_q_2000 писал(а):*правые зависимости, т.е. для каких пакетов нужен исследуемый пакет

Re: RPM4 vs RPM5
Если время обработки данных (в частности базы) от их размера не зависит, то по существу такого положения дел мне сказать нечего.
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
Re: RPM4 vs RPM5
Справедливо, trs. Тестовыми были официальные live-сборки, без дополнительного софта.
Re: RPM4 vs RPM5
Код: Выделить всё
urpmq --whatrequires libgcc1 | wc -l
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
Re: RPM4 vs RPM5
ROSA - 4610notauser писал(а):и сравнить. Для начала.Код: Выделить всё
urpmq --whatrequires libgcc1 | wc -l
Mageia - 3042
Господа, кажется я понял в чём дело, но не пойму, почему именно есть такая привязка в ROSA. Скорость обработки этих запросов зависит от прав, с которыми они выполняются. Под обычным юзером скорость у ROSA и у Mageia - примерно одинаковы (быстро). Если смотреть под рутом (ROSA), скорость снижается в разы! Это какая-то фишка ОС?

Re: RPM4 vs RPM5
под рутом или под sudo?alex_q_2000 писал(а):ROSA - 4610notauser писал(а):и сравнить. Для начала.Код: Выделить всё
urpmq --whatrequires libgcc1 | wc -l
Mageia - 3042
Господа, кажется я понял в чём дело, но не пойму, почему именно есть такая привязка в ROSA. Скорость обработки этих запросов зависит от прав, с которыми они выполняются. Под обычным юзером скорость у ROSA и у Mageia - примерно одинаковы (быстро). Если смотреть под рутом (ROSA), скорость снижается в разы! Это какая-то фишка ОС?
- Галахов Роман
- Сообщения: 2356
- Зарегистрирован: 26 фев 2012, 20:02
- Откуда: Моск. обл. Волоколамск
Re: RPM4 vs RPM5
Тут еще не известно: это фишка ОС ROSA или особенность RPM5... А для того, чтобы узнать точно ответ на этот вопрос, нужно протестировать данную операцию, на других ос которые используют RPM5 http://wiki.rosalab.ru/ru/index.php/RPM5 Хотя бы на одной из них, чтобы оценить скорость работы RPM5 в сравнении с ROSA Fresh...alex_q_2000 писал(а): ROSA - 4610
Mageia - 3042
Господа, кажется я понял в чём дело, но не пойму, почему именно есть такая привязка в ROSA. Скорость обработки этих запросов зависит от прав, с которыми они выполняются. Под обычным юзером скорость у ROSA и у Mageia - примерно одинаковы (быстро). Если смотреть под рутом (ROSA), скорость снижается в разы! Это какая-то фишка ОС?
Вот цитата из темы про RPM5 на unixforum
Вопреки распространенному мнению, версия RPM5 используется далеко не только в Mandriva/ROSA Linux. Сначала она нашла применение у разработчиков Unity Linux, потом – в дистрибутивах Wind River Linux и Ark Linux, проектах OpenPKG, CAOS Linux и OpenEmbedded.
Rosa 2021.1 Fresh HIPER SLIM
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
Re: RPM4 vs RPM5
Здравствуйте, Роман. Вы абсолютно правы.
Напомню, что в тестах идёт сравнение времени исполнения запросов:
---------------------------------------------------------------------------------------------
urpmq --whatrequires glibc
urpmq --whatrequires libgcc1
Результаты тестирования:
------------------------------------
Mandriva-linux-PWP-2011-i586 (rpm-5.3.13-0.20110712.2-mdv2011.0.i586) - работает отлично и под рутом и под юзером
OpenMandrivaLx.3.02-PLASMA.x86_64 (rpm-5.4.15-40-omv2015.0.x86_64.rpm) - тормозит под рутом
ROSA.FRESH.LXQT.R9.i586 (rpm-5.4.10-74-rosa2016.1.i586) - тормозит под рутом
MagOS_2014red_20170721 (rpm-5.4.10-68-rosa2014.1.i586) - тормозит под рутом
Из тестов видно, что торможение обработки запроса под рутом - это "особенность" OpenMandrivaLx и как результат, - её "адептов".
С уважением,
Алексей
Напомню, что в тестах идёт сравнение времени исполнения запросов:
---------------------------------------------------------------------------------------------
urpmq --whatrequires glibc
urpmq --whatrequires libgcc1
Результаты тестирования:
------------------------------------
Mandriva-linux-PWP-2011-i586 (rpm-5.3.13-0.20110712.2-mdv2011.0.i586) - работает отлично и под рутом и под юзером
OpenMandrivaLx.3.02-PLASMA.x86_64 (rpm-5.4.15-40-omv2015.0.x86_64.rpm) - тормозит под рутом
ROSA.FRESH.LXQT.R9.i586 (rpm-5.4.10-74-rosa2016.1.i586) - тормозит под рутом
MagOS_2014red_20170721 (rpm-5.4.10-68-rosa2014.1.i586) - тормозит под рутом
Из тестов видно, что торможение обработки запроса под рутом - это "особенность" OpenMandrivaLx и как результат, - её "адептов".
С уважением,
Алексей
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
Re: RPM4 vs RPM5
su - пароль - командаkeleg писал(а):под рутом или под sudo?
Re: RPM4 vs RPM5
Спасибо, воспроизвел. Очень интересно, да...
Re: RPM4 vs RPM5
Где-то в этом форуме уже писали о данной проблеме.keleg писал(а):Спасибо, воспроизвел. Очень интересно, да...
Re: RPM4 vs RPM5
ОМовцев бы пнуть на этот счет. Вроде там разработчики RPM5
- alex_q_2000
- Сообщения: 235
- Зарегистрирован: 29 авг 2017, 10:16
- Откуда: Богородск
- Контактная информация:
Re: RPM4 vs RPM5
В ходе дискуссии я получил представление о том, что эта "особенность" уже известна сообществу, а решение отдаётся на откуп разработчикам. Вопросов пока больше нет. Всех благодарю за сотрудничество. Всего наилучшего.
Re: RPM4 vs RPM5
ок. Т.к. проблема не сильно критичная, ее решение не форсируется. Если кто-то возьмется - welcome!alex_q_2000 писал(а):В ходе дискуссии я получил представление о том, что эта "особенность" уже известна сообществу, а решение отдаётся на откуп разработчикам. Вопросов пока больше нет. Всех благодарю за сотрудничество. Всего наилучшего.
Re: RPM4 vs RPM5
Под рутом rpm перестраивает часть индексов базы данных, а под пользователем на это нет прав.
BerkleyDB синхронизирует каждую операцию, что бы БД оставалась в консистентном состоянии в случае аварии, отсюда замедление.
Для ускорения можно добавить в файл /etc/rpm/macros строку
Для временного изменения у rpm имеется ключ --nofsync (в справке про него умалчивается, определён в /usr/lib/rpm/rpmopt как alias).
Для urpmi аналогичная опция --fastunsafe http://wiki.rosalab.ru/ru/index.php/%D0 ... 1%81_Urpmi
Так же можно использовать ZFS (где синхронизация за ненадобностью отключается на уровне ФС), возможно, и какие-то ещё файловые системы.
P.S.
Вариант добавить в /var/lib/rpm/DB_CONFIG как предлагается http://rpm5.org/community/rpm-users/0554.html
опцию set_flags DB_TXN_NOSYNC
либо set_flags DB_TXN_NOSYNC on
http://www.oracle.com/technetwork/datab ... TXN_NOSYNC
https://docs.oracle.com/cd/E17275_01/ht ... flags.html
в моих экспериментов заметных изменений не дал (сравнивал не время, а смотрел strace вызовы fdatasync).
BerkleyDB синхронизирует каждую операцию, что бы БД оставалась в консистентном состоянии в случае аварии, отсюда замедление.
Для ускорения можно добавить в файл /etc/rpm/macros строку
Код: Выделить всё
%__nofsync nofsync
Для urpmi аналогичная опция --fastunsafe http://wiki.rosalab.ru/ru/index.php/%D0 ... 1%81_Urpmi
Так же можно использовать ZFS (где синхронизация за ненадобностью отключается на уровне ФС), возможно, и какие-то ещё файловые системы.
P.S.
Вариант добавить в /var/lib/rpm/DB_CONFIG как предлагается http://rpm5.org/community/rpm-users/0554.html
опцию set_flags DB_TXN_NOSYNC
либо set_flags DB_TXN_NOSYNC on
http://www.oracle.com/technetwork/datab ... TXN_NOSYNC
https://docs.oracle.com/cd/E17275_01/ht ... flags.html
в моих экспериментов заметных изменений не дал (сравнивал не время, а смотрел strace вызовы fdatasync).