From: Anton Farygin <rider@basealt.ru> To: devel@lists.altlinux.org Subject: Re: [devel] incoming/girar: проблема производительности. Date: Thu, 27 Aug 2020 10:27:11 +0300 Message-ID: <5acc7f44-c122-d4ab-c67b-85275232f482@basealt.ru> (raw) In-Reply-To: <20200827022952.GA8129@dad.imath.kiev.ua> On 27.08.2020 05:29, Igor Vlasenko wrote: > 1. incoming/girar: проблема видна была издалека. > ________________________________________________ <skip> > Не надо жалеть сборочницу, это робот, который работает за электроэнергию. > "Жалеть" сборочницу и издеваться над людьми --- это и есть извращение. > Сборочницу не надо "жалеть", ее надо переписать для улучшения > производительности. Тогда хорошо будет всем. > > Игорь, спасибо за интересное и длинное письмо по этому важному вопросу. Я вот тоже чуть чуть сбоку пытаюсь пилить какую-то аналитику по сборочнице и, на самом деле, хочу сказать что большая пропускная способность сборочницы может вылезти боком в другом месте - в архиве. Предлагаю считать постулатом тот факт, что архив состояний репозитория на каждое сборочное задание - это отличная и очень удобная фича, отказываться от которой очень не хочется. Но нужно понимать, что эта клёвая фича основана на использовании в качестве базы данных файловой системы. Т.е. - для экономии места старые пакеты хардлинкаются в новое место и в него уже добавляются изменения из сборочного задания. Очень простая и очень надёжная схема, при которой риск потери данных минимален и всегда можно взять консистентное состояние репозитория за любой момент времени. Живёт это всё сейчас, вроде как, на ext4 (я могу ошибаться). Максимальное количество inodes у ext4 2^32 - 4,294,967,295 Каждый новый таск в репозиторий приводит к тому, что на файловой системе появляется около 160 тысяч (а может быть и больше, я давно не смотрел цифры) новых записей. Т.е. - условно мы можем записать около 26 тысяч сборочных заданий в архив, а после этого из него придётся удалять что-то старое для того, что бы записать что-то новое. Дальше можно порассуждать на предмет смены файловой системы, но я (для зеркала архива) проводил сравнение и более-менее рабочим вариантом оказалась только zfs, которая работает быстрее всего остального подобного, но сильно медленнее ext4. Вообще, конечно, наверняка можно переделать архитектуру архива, например уложить все эти хардлинки в базу данных, но в этом случае будет регресс в плане юзабилити архива - он станет доступен только по http, без возможности смонтировать. В общем, я бы начал именно отсюда, но у Димы наверняка есть какой-то план работ по сборочнице, про который не знает никто, кроме тех, кто принимает участие в её разработки. С другой стороны, если весь perl собирается в одном задании, о мои рассуждения о том, что есть какая-то проблема с архивом - ничтожны, и в данном случае проблема в чём-то другом. Что касается лично моего мнения по тому сборочному заданию с perl - на мой взгляд, увеличение релиза в пакете для rebuild - это нормальная практика и я не вижу в этом ничего плохого, скорее даже наоборот - в этом есть некоторый смысл, т.к. (я про это уже неоднократно писал) - в процессе rebuild пакет становится другим и было бы неплохо научиться его отличать по имени файла, а не только по его содержимому. авторы фичи с DistTag обещали добавить что-то в имена файлов, но пока это всё остановилось на обещаниях. И ещё пару слов про автоматическую пересборку для мелких исправлений пакетов: есть (не)маленькая проблема с тем, что в результате такой пересборки может получится не просто изменение тэга License, но и вообще другой пакет, с другим содержимым и работающий иначе, чем до пересборки. Просто потому, что необходимые ему для сборки пакеты меняются в тех местах, в которых сборочница отследить эти изменения не может.
next prev parent reply other threads:[~2020-08-27 7:27 UTC|newest] Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-27 2:29 Igor Vlasenko 2020-08-27 7:27 ` Anton Farygin [this message] 2020-08-27 11:54 ` Andrey Savchenko 2020-08-27 11:59 ` Anton Farygin 2020-08-27 12:09 ` [devel] архивирование репозиториев Dmitry V. Levin 2020-08-27 12:14 ` Anton Farygin 2020-08-27 12:20 ` Dmitry V. Levin 2020-08-27 12:32 ` Anton Farygin 2020-08-27 15:59 ` Dmitry V. Levin 2020-08-27 18:26 ` Anton Farygin 2020-08-27 20:29 ` Dmitry V. Levin 2020-08-28 7:06 ` Alexey V. Vissarionov 2020-08-28 7:09 ` Anton Farygin 2020-08-27 17:31 ` Michael Shigorin 2020-08-27 17:51 ` Andrey Savchenko 2020-08-27 20:33 ` Dmitry V. Levin 2020-08-28 1:28 ` Dmitry V. Levin 2020-08-28 6:29 ` Andrey Savchenko 2020-08-29 2:04 ` Leonid Krivoshein 2020-08-28 0:58 ` Leonid Krivoshein 2020-08-28 1:11 ` Dmitry V. Levin 2020-08-29 2:16 ` Leonid Krivoshein 2020-08-28 5:03 ` Anton Farygin 2020-08-29 2:22 ` Leonid Krivoshein 2020-08-29 4:58 ` Anton Farygin 2020-08-29 14:18 ` Leonid Krivoshein 2020-08-29 16:23 ` Anton Farygin 2020-08-29 19:28 ` [devel] zfs " Vitaly Chikunov 2020-08-29 20:11 ` Anton Farygin 2020-08-29 20:38 ` Vitaly Chikunov 2020-08-29 21:12 ` Anton Farygin 2020-08-30 4:28 ` Alexey V. Vissarionov 2020-08-27 12:05 ` [devel] incoming/girar: проблема производительности Alexey V. Vissarionov 2020-08-28 9:25 ` Igor Vlasenko 2020-08-28 9:28 ` Anton V. Boyarshinov 2020-08-28 9:31 ` Igor Vlasenko 2020-08-28 9:34 ` Anton Farygin 2020-08-28 9:47 ` Igor Vlasenko 2020-08-27 9:17 ` Michael Shigorin 2020-08-28 0:23 ` [devel] mass rebuilds Dmitry V. Levin 2020-08-28 5:09 ` Anton Farygin 2020-08-28 6:25 ` Andrey Savchenko 2020-08-28 6:58 ` Anton Farygin 2020-08-28 16:46 ` Dmitry V. Levin 2020-08-28 20:23 ` Anton Farygin 2020-08-28 21:47 ` Dmitry V. Levin 2020-08-29 5:08 ` Anton Farygin 2020-08-27 9:57 ` [devel] incoming/girar: проблема производительности Dmitry V. Levin 2020-08-28 18:47 ` Dmitry V. Levin 2020-08-27 11:35 ` [devel] License Tag Policy (Re: incoming/girar: проблема =?utf-8?b?INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuC4=?=) Sergey Afonin 2020-08-27 23:01 ` [devel] unmaintained packages shall not belong to Sisyphus Dmitry V. Levin 2020-08-28 0:04 ` Dmitry V. Levin 2020-08-28 0:35 ` Dmitry V. Levin 2020-08-28 5:22 ` Anton Farygin 2020-08-28 16:02 ` Dmitry V. Levin 2020-08-28 16:30 ` Michael Shigorin 2020-08-28 16:33 ` Michael Shigorin 2020-08-28 16:43 ` Dmitry V. Levin 2020-08-28 19:52 ` Michael Shigorin 2020-08-28 20:04 ` Dmitry V. Levin 2020-08-28 20:34 ` Michael Shigorin 2020-08-28 20:19 ` Alexey Gladkov 2020-08-28 20:46 ` Michael Shigorin 2020-08-28 23:52 ` Alexey Gladkov 2020-08-31 10:14 ` Konstantin Lepikhov 2020-08-31 18:09 ` [devel] [JT] баланс/динамика: пакеты/майнтейнеры (was: unmaintained packages shall not belong to Sisyphus) Michael Shigorin 2020-08-31 7:53 ` [devel] suggested tags order Aleksei Nikiforov 2020-08-31 11:46 ` Sergey V Turchin 2020-08-31 12:25 ` Paul Wolneykien 2020-08-28 16:40 ` [devel] hasher ALT#36531 Dmitry V. Levin 2020-08-30 0:15 ` Igor Vlasenko 2020-08-28 17:55 ` [devel] automatic License Dmitry V. Levin 2020-08-30 8:14 ` Igor Vlasenko 2020-08-30 10:09 ` Alexey Gladkov 2020-08-30 12:44 ` Igor Vlasenko 2020-08-30 15:21 ` Alexey Gladkov 2020-08-30 15:36 ` Michael Shigorin 2020-08-30 15:44 ` Alexey Gladkov 2020-08-30 15:58 ` Andrey Savchenko 2020-08-30 16:40 ` Alexey Gladkov 2020-08-30 17:27 ` Andrey Savchenko 2020-08-30 18:15 ` Alexey Gladkov 2020-08-30 18:47 ` Michael Shigorin 2020-08-30 17:56 ` Igor Vlasenko 2020-08-28 18:26 ` [devel] will be fatal in Perl 5.30 Dmitry V. Levin 2020-08-28 19:46 ` Michael Shigorin 2020-08-28 19:58 ` Dmitry V. Levin 2020-08-28 20:19 ` Michael Shigorin 2020-08-28 22:11 ` Dmitry V. Levin 2020-08-28 22:13 ` Dmitry V. Levin 2020-08-30 0:58 ` Igor Vlasenko 2020-08-30 0:41 ` Igor Vlasenko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5acc7f44-c122-d4ab-c67b-85275232f482@basealt.ru \ --to=rider@basealt.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git