[devel] Почему сборочница тормозит: корень зла в алогритмах.

Alexey Tourbin alexey.tourbin на gmail.com
Чт Фев 8 08:40:04 MSK 2018


2018-02-07 23:51 GMT+03:00 Dmitry V. Levin <ldv на altlinux.org>:
> On Wed, Feb 07, 2018 at 09:47:31PM +0200, Igor Vlasenko wrote:
> [...]
>> Имеем: на сопоставимом классе пакетов
>> autorepo-scripts на altair
>> выдает скорость в 20.000 транзакций в сутки.
>> При этом girar на кластере, существенно превосходящем
>> altair по производительности,
>> выдает скорость в 500 транзакций в сутки.
>>
>> Да, это гораздо более простая, однопользовательская,
>> однонодная, нераспределенная сборочница,
>> однако на моих задачах она кроет нашу сборчницу
>> даже не как бык овцу, а еще на порядок сильнее.
>>
>> В чем разница? Разница в алгоритмах.
>
> На самом деле всё ещё проще: разница в задачах.
>
> Возьмём первый попавшийся на глаза пакет из недавней python-пачки:
> http://git.altlinux.org/tasks/archive/done/_195/200021/logs/events.1.1.log
>
> Что мы видим: всё задание обрабатывалось 48:08 - 36:53 = 11.25 минут, из
> них собственно сборка заняла 41:17 - 37:43 = 3.5 минуты, всё остальное --
> это разнообразное тестирование, изготовление индексов (около минуты), и
> коммит (ещё около минуты).  Таким образом, большая часть времени обработки
> небольшого задания уходит на тестирование (один только install check занял
> 3 минуты), которого в autorepo-scripts нет в принципе, потому что задача
> другая.
>
> Очевидно, чтобы ускорить обработку заданий, стадию тестирования предстоит
> распараллелить.  Изготовление индексов и коммит тоже неплохо было бы
> ускорить.

Надо пропускать установку некоторых *-debuginfo пакетов. В них нет
%post-скриптов или триггеров, плохо устанавливаться они могут только
из-за файловых конфликтов.  Тогда, зная результаты установки основных
пакетов, можно выбрать только один или несколько *-debuginfo пакетов,
таких что они вытягивают все остальные.


Подробная информация о списке рассылки Devel