Страница 1 из 1

RPM4 vs RPM5

Добавлено: 29 авг 2017, 10:32
alex_q_2000
Добрый день, коллеги.
В свободное время занимаюсь программированием для 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

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

Re: RPM4 vs RPM5

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

Re: RPM4 vs RPM5

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

Re: RPM4 vs RPM5

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

Re: RPM4 vs RPM5

Добавлено: 29 авг 2017, 12:33
notauser

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

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

Re: RPM4 vs RPM5

Добавлено: 29 авг 2017, 13:53
alex_q_2000
notauser писал(а):

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

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

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

Re: RPM4 vs RPM5

Добавлено: 30 авг 2017, 06:16
keleg
alex_q_2000 писал(а):
notauser писал(а):

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

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

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

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.

Re: RPM4 vs RPM5

Добавлено: 30 авг 2017, 10:46
alex_q_2000
Здравствуйте, Роман. Вы абсолютно правы.

Напомню, что в тестах идёт сравнение времени исполнения запросов:
---------------------------------------------------------------------------------------------
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 и как результат, - её "адептов".

С уважением,
Алексей

Re: RPM4 vs RPM5

Добавлено: 30 авг 2017, 10:51
alex_q_2000
keleg писал(а):под рутом или под sudo?
su - пароль - команда

Re: RPM4 vs RPM5

Добавлено: 30 авг 2017, 13:04
keleg
Спасибо, воспроизвел. Очень интересно, да...

Re: RPM4 vs RPM5

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

Re: RPM4 vs RPM5

Добавлено: 30 авг 2017, 15:32
admsasha
Во, я же о этой проблеме и сообщал :)
http://forum.rosalab.ru/viewtopic.php?f ... 55&p=40304

Re: RPM4 vs RPM5

Добавлено: 30 авг 2017, 15:58
keleg
ОМовцев бы пнуть на этот счет. Вроде там разработчики RPM5

Re: RPM4 vs RPM5

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

Re: RPM4 vs RPM5

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

Re: RPM4 vs RPM5

Добавлено: 07 окт 2017, 19:21
trs
Под рутом 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).