RPM4 vs RPM5

Ответить
Аватара пользователя
alex_q_2000
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

RPM4 vs RPM5

Сообщение alex_q_2000 » 29 авг 2017, 10:32

Добрый день, коллеги.
В свободное время занимаюсь программированием для 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?
Заранее благодарен за ответ...

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: RPM4 vs RPM5

Сообщение trs » 29 авг 2017, 11:28

alex_q_2000 писал(а):*правые зависимости, т.е. для каких пакетов нужен исследуемый пакет
То есть количество "для каких пакетов" - не идентично?

Аватара пользователя
alex_q_2000
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

Re: RPM4 vs RPM5

Сообщение alex_q_2000 » 29 авг 2017, 11:48

trs писал(а):
alex_q_2000 писал(а):*правые зависимости, т.е. для каких пакетов нужен исследуемый пакет
То есть количество "для каких пакетов" - не идентично?
Это условности, чтобы сэкономить время понимания: левые - те, которые требуются данному пакету, правые - те, для которых требуется данный пакет. По существу вопроса что-нибудь не хотите добавить? :)

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: RPM4 vs RPM5

Сообщение trs » 29 авг 2017, 12:23

Если время обработки данных (в частности базы) от их размера не зависит, то по существу такого положения дел мне сказать нечего.

Аватара пользователя
alex_q_2000
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

Re: RPM4 vs RPM5

Сообщение alex_q_2000 » 29 авг 2017, 12:30

Справедливо, trs. Тестовыми были официальные live-сборки, без дополнительного софта.

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

Re: RPM4 vs RPM5

Сообщение notauser » 29 авг 2017, 12:33

Код: Выделить всё

urpmq --whatrequires libgcc1 | wc -l
и сравнить. Для начала.

Аватара пользователя
alex_q_2000
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

Re: RPM4 vs RPM5

Сообщение alex_q_2000 » 29 авг 2017, 13:53

notauser писал(а):

Код: Выделить всё

urpmq --whatrequires libgcc1 | wc -l
и сравнить. Для начала.
ROSA - 4610
Mageia - 3042

Господа, кажется я понял в чём дело, но не пойму, почему именно есть такая привязка в ROSA. Скорость обработки этих запросов зависит от прав, с которыми они выполняются. Под обычным юзером скорость у ROSA и у Mageia - примерно одинаковы (быстро). Если смотреть под рутом (ROSA), скорость снижается в разы! Это какая-то фишка ОС? :)

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

Re: RPM4 vs RPM5

Сообщение keleg » 30 авг 2017, 06:16

alex_q_2000 писал(а):
notauser писал(а):

Код: Выделить всё

urpmq --whatrequires libgcc1 | wc -l
и сравнить. Для начала.
ROSA - 4610
Mageia - 3042

Господа, кажется я понял в чём дело, но не пойму, почему именно есть такая привязка в ROSA. Скорость обработки этих запросов зависит от прав, с которыми они выполняются. Под обычным юзером скорость у ROSA и у Mageia - примерно одинаковы (быстро). Если смотреть под рутом (ROSA), скорость снижается в разы! Это какая-то фишка ОС? :)
под рутом или под sudo?

Аватара пользователя
Галахов Роман
Сообщения: 2284
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa 2016.1 Fresh KDE (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: RPM4 vs RPM5

Сообщение Галахов Роман » 30 авг 2017, 07:19

alex_q_2000 писал(а): ROSA - 4610
Mageia - 3042

Господа, кажется я понял в чём дело, но не пойму, почему именно есть такая привязка в ROSA. Скорость обработки этих запросов зависит от прав, с которыми они выполняются. Под обычным юзером скорость у ROSA и у Mageia - примерно одинаковы (быстро). Если смотреть под рутом (ROSA), скорость снижается в разы! Это какая-то фишка ОС? :)
Тут еще не известно: это фишка ОС ROSA или особенность RPM5... А для того, чтобы узнать точно ответ на этот вопрос, нужно протестировать данную операцию, на других ос которые используют RPM5 http://wiki.rosalab.ru/ru/index.php/RPM5 Хотя бы на одной из них, чтобы оценить скорость работы RPM5 в сравнении с ROSA Fresh...
Вот цитата из темы про RPM5 на unixforum
Вопреки распространенному мнению, версия RPM5 используется далеко не только в Mandriva/ROSA Linux. Сначала она нашла применение у разработчиков Unity Linux, потом – в дистрибутивах Wind River Linux и Ark Linux, проектах OpenPKG, CAOS Linux и OpenEmbedded.
Rosa 2016.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

Аватара пользователя
alex_q_2000
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

Re: RPM4 vs RPM5

Сообщение alex_q_2000 » 30 авг 2017, 10:46

Здравствуйте, Роман. Вы абсолютно правы.

Напомню, что в тестах идёт сравнение времени исполнения запросов:
---------------------------------------------------------------------------------------------
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
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

Re: RPM4 vs RPM5

Сообщение alex_q_2000 » 30 авг 2017, 10:51

keleg писал(а):под рутом или под sudo?
su - пароль - команда

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

Re: RPM4 vs RPM5

Сообщение keleg » 30 авг 2017, 13:04

Спасибо, воспроизвел. Очень интересно, да...

Аватара пользователя
admsasha
Сообщения: 274
Зарегистрирован: 25 ноя 2011, 17:54
Operating system: ROSA
Контактная информация:

Re: RPM4 vs RPM5

Сообщение admsasha » 30 авг 2017, 15:26

keleg писал(а):Спасибо, воспроизвел. Очень интересно, да...
Где-то в этом форуме уже писали о данной проблеме.

Аватара пользователя
admsasha
Сообщения: 274
Зарегистрирован: 25 ноя 2011, 17:54
Operating system: ROSA
Контактная информация:

Re: RPM4 vs RPM5

Сообщение admsasha » 30 авг 2017, 15:32

Во, я же о этой проблеме и сообщал :)
http://forum.rosalab.ru/viewtopic.php?f ... 55&p=40304

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

Re: RPM4 vs RPM5

Сообщение keleg » 30 авг 2017, 15:58

ОМовцев бы пнуть на этот счет. Вроде там разработчики RPM5

Аватара пользователя
alex_q_2000
Сообщения: 7
Зарегистрирован: 29 авг 2017, 10:16
Operating system: Mageia 5/6, Windows 7
Откуда: Богородск
Контактная информация:

Re: RPM4 vs RPM5

Сообщение alex_q_2000 » 30 авг 2017, 17:31

В ходе дискуссии я получил представление о том, что эта "особенность" уже известна сообществу, а решение отдаётся на откуп разработчикам. Вопросов пока больше нет. Всех благодарю за сотрудничество. Всего наилучшего.

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

Re: RPM4 vs RPM5

Сообщение keleg » 01 сен 2017, 12:05

alex_q_2000 писал(а):В ходе дискуссии я получил представление о том, что эта "особенность" уже известна сообществу, а решение отдаётся на откуп разработчикам. Вопросов пока больше нет. Всех благодарю за сотрудничество. Всего наилучшего.
ок. Т.к. проблема не сильно критичная, ее решение не форсируется. Если кто-то возьмется - welcome!

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: RPM4 vs RPM5

Сообщение trs » 07 окт 2017, 19:21

Под рутом rpm перестраивает часть индексов базы данных, а под пользователем на это нет прав.

BerkleyDB синхронизирует каждую операцию, что бы БД оставалась в консистентном состоянии в случае аварии, отсюда замедление.

Для ускорения можно добавить в файл /etc/rpm/macros строку

Код: Выделить всё

%__nofsync nofsync
Для временного изменения у 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).

Ответить