From: Alexey Tourbin <at@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] Python 2.6: task #16528 Date: Fri, 27 Nov 2009 05:54:34 +0300 Message-ID: <20091127025434.GC9723@altlinux.org> (raw) In-Reply-To: <20091126090245.GX10659@altlinux.org> [-- Attachment #1: Type: text/plain, Size: 2894 bytes --] On Thu, Nov 26, 2009 at 12:02:45PM +0300, Alexey Tourbin wrote: > On Wed, Nov 25, 2009 at 02:12:13PM +0700, REAL wrote: > > Поскольку сборка более 600 пакетов - дело > > очень долгое (на сборку не самых > > монстроидальных 200 пакетов > > потребовалось около 12 часов), возможно, я > > попытаюсь в этой задаче всё собирать до > > упора, таким образом, надеюсь, именно она > > и станет рабочей, из которой в сизиф > > пролезет python 2.6. > > > > Чтобы дело пошло быстрее (сбои ещё будут, > > т.к. там не все пакеты), большая просьба > > пакеты из задачи пока не обновлять, чтобы > > потом не пришлось начинать сборку заново. > > > > http://git.altlinux.org/tasks/16528/task/log.2 > > У нас очень долго выполняется фаза "no need to rebuild", в среднем > не менее минуты на пакет. Всё это конечно не планировалось что людишки > будут заливать пакеты целыми сотнями. Но есть то что есть -- мы так > никуда не уедем. > Я попробовал запрофилировать почему столько много времени уходит чтобы > просто понять что пакет не надо пересобирать от прошлого запуска; там > короче говоря причины разные, то есть одного узкого места нету. Главный фактор почему медленно работала проверка "no need to rebuild" -- это сама схема проверки: собирается src.rpm пакет и в чрут устанавливаются все пакеты BuildReqires. Если содержимое чрута после этого совпадает, то пакет можно не пересобирать. Эта схема теперь модифицирована следующим образом: когда имеется src.rpm пакет от предыдущего запуска, можно замкнуть его список BuildRequires и получить список пакетов, которые будут установлены. То есть можно узнать содержимое чрута без фактической установки пакетов. Есть ещё два фактора, которые заметно влияют на скорость проверки "no need to rebuild". 1) hsh --init на репозитарии с полным списком файлов. Научно установлено, что 'hsh --init' на обычно репозитарии занимает 13 секунд, а на репозитарии с полным списком файлов -- 20 секунд. 2) После сборки каждого очередного пакета хешеру нужно перегенерировать локальный репозитарий; в том числе прочитать все пакеты и вычислить их md5 суммы (потому что md5-кеш пакетов на нодах скорее всего не работает). Я думаю что в хешере можно вообще не генерировать репозитарий и целиком отказаться от genbasedir, а вместо этого в sources.list использовать метод доступа "rpm-dir" вместо "rpm" (repo). Тогда при изменении каталога rpm-dir apt будет считывать информацию прямо из хедеров пакетов, которые там лежат. А это лушче, перечитывать пакеты полностью (для вычисления md5-сумм). > Поэтому я сделал превентивный хак для girar-builder'а: > http://git.altlinux.org/people/at/packages/girar-builder.git?a=commitdiff;h=586f99e1 > Он немного ослабляет требования базовой модели, но не очень сильно. > Тестовая пересборка пакетов, если мы до неё доживём, будет идти по > такой же схеме. [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
prev parent reply other threads:[~2009-11-27 2:54 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-11-25 7:12 REAL 2009-11-25 7:37 ` Alexey Tourbin 2009-11-25 8:00 ` REAL 2009-11-25 7:54 ` Alexey Tourbin 2009-11-25 8:16 ` REAL 2009-11-25 8:03 ` Alexey Tourbin 2009-11-25 8:22 ` REAL 2009-11-25 8:44 ` Alexey Tourbin 2009-11-25 9:33 ` Andrey Rahmatullin 2009-11-25 19:50 ` Alexey Tourbin 2009-11-25 20:04 ` Igor Vlasenko 2009-11-25 21:37 ` Igor Vlasenko 2009-11-25 22:02 ` Alexey Tourbin 2009-11-26 9:04 ` Igor Vlasenko 2009-11-26 9:18 ` Alexey Tourbin 2009-11-26 9:20 ` Igor Vlasenko 2009-11-26 12:49 ` Alexey Morsov 2009-11-25 8:23 ` Денис Смирнов 2009-11-25 8:29 ` Alexey Tourbin 2009-11-28 23:01 ` Michael Shigorin 2009-11-29 0:51 ` Alexey Tourbin 2009-11-29 1:14 ` Led 2009-11-29 1:32 ` Alexey Tourbin 2009-11-29 1:38 ` Led 2009-11-29 1:52 ` Alexey Tourbin 2009-11-30 4:14 ` REAL 2009-11-30 4:26 ` Alexey Tourbin 2009-11-30 4:50 ` REAL 2009-11-30 4:50 ` [devel] трансфёр гарантий Alexey Tourbin 2009-11-30 5:13 ` REAL 2009-11-30 5:33 ` Alexey Tourbin 2009-11-30 6:04 ` REAL 2009-11-30 5:25 ` Sergey Alembekov 2009-11-25 8:36 ` [devel] Python 2.6: task #16528 Sergey Y. Afonin 2009-11-25 9:02 ` REAL 2009-11-26 9:02 ` Alexey Tourbin 2009-11-26 17:00 ` Alexey Tourbin 2009-11-27 9:12 ` Alexey Tourbin 2009-11-27 9:38 ` REAL 2009-11-27 11:35 ` Alexey Tourbin 2009-11-27 12:25 ` Alexey Tourbin 2009-11-27 2:54 ` Alexey Tourbin [this message]
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=20091127025434.GC9723@altlinux.org \ --to=at@altlinux.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