[devel] печальные последствия перехода на rpm-4.13
Gleb Fotengauer-Malinovskiy
glebfm на altlinux.org
Ср Янв 25 20:42:43 MSK 2017
Hi,
On Wed, Jan 25, 2017 at 07:48:12AM +0300, Alexey Tourbin wrote:
> Уважаемые мужчины!
>
> Вследствие перехода на rpm-4.13 в вашем национальном дистрибутиве
> наблюдается многократное замедление работы.
>
> Вот как сканировал пакеты старый rpm:
[...]
> Предварительный осмотр показывает, что rpm теперь вычисляет какие-то
> хитрые SHA1-суммы.
Никакой хитрости, оно сравнивает SHA1HEADER с реальностью. Мне не кажется
это совсем плохой идеей, а для чтения тысяч файлов всегда можно сделать
%__vsflags = %__vsflags|_RPMVSF_NODIGESTS, например 0xf0f00.
> Но это полбеды, а настоящий масштаб бедствия становится понятен, если
> посмотреть, что происходит с виртуальной памятью.
[...]
Спасибо за исследование!
> У пакета ffmpeg маленький заголовок, потому что в нем находится только
> программа ffmpeg (плюс еще ffplay и ffprobe) и несколько man-страниц.
> Старому rpm нужно было 2 страницы виртуальной памяти, новому - 12.
>
> Всё это конечно же происходит из-за readahead. Я когда-то делал патч
> для отключения readahead во время загрузки заголовка:
> http://git.altlinux.org/people/at/packages/rpm.git?a=commitdiff;h=66b17f5f
> На новый rpm его не портировали.
Да, портировалось необходимое, а такие вещи к сожалению остались
до появления необходимости. :)
Со спортированным патчем (см task #177147) на rpmquery
-p ~/chromium-55.0.2883.75-alt1.x86_64.rpm получается:
-total cached size: 245,760
+total cached size: 77,824
Раньше были те же 77,824.
> Правда, этот патч мне не очень нравится, потому на время загрузки
> заголовка readahead отключается полностью.
В контексте сборочницы этот патч очень важен когда кэша нет. Мы даже с
ним теряем минут, кажется, 40 на создание кэша.
> Теоретически этом может
> привести к тому, что для загрузки заголовка может потребоваться
> несколько physical reads. Но на практике их не требуется (ср. total
> time у /tmp/rpmq и rpmquery) - вероятно, выручает встроенный кеш
> внутри самого жесткого диска.
>
> * * *
>
> В связи со всем этим безобразием более актуально встает вопрос о
> кешировании заголовков. Пожалуй, напишу об этом отдельным письмом.
Если речь в первую очередь о сборочнице, то, возможно, стоит задуматься о
патчинге apt-овых индексов (вместо генерации их с нуля). Остальные
клиенты gb-sh-rpmhdrcache вполне могли бы патчить то, что у них есть -- и
генератор useful-files и генератор contents_index.
Понятно, что единственной загвоздкой в патчинге индексов являются именно
useful-files.
--
glebfm
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 801 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20170125/fb91caea/attachment.bin>
Подробная информация о списке рассылки Devel