[devel] I: git.alt update
Vladimir Lettiev
thecrux на gmail.com
Пт Окт 29 12:47:20 UTC 2010
29 октября 2010 г. 15:58 пользователь Dmitry V. Levin
<ldv на altlinux.org> написал:
> On Fri, Oct 29, 2010 at 02:39:51PM +0400, Vladimir Lettiev wrote:
>> On Fri, Oct 29, 2010 at 01:50:41PM +0400, Dmitry V. Levin wrote:
>> > On Fri, Oct 29, 2010 at 10:06:19AM +0400, Anton V. Boyarshinov wrote:
>> > > минут). Если продолжать в том же духе, машина умирает под грузом IO.
>> >
>> > Это ложный след. Если подкрутить настройки ФС, то и копирование Сизифа
>> > стабилизируется на нескольких секундах. Ядро просто умирает через пару
>> > часов без видимой причины.
>>
>> Вряд ли это ложный след. По крайне мере в приведённых ссылках на баги в ovz
>> говорится о heavy file operations.
>> Думаю параллельно с решением бага в ядре должна вестись работа над
>> оптимизацией алгоритмов сборочницы, для снижения нагрузки на дисковую
>> подсистему.
>> Например, в случае cp -al можно заменить на алгоритм, который рекурсивно обходит
>> все каталоги репозитория, делает ls в них и сравнивает с таким же выводом в
>> локальной копии, и в соответствии с полученной информацией удаляет/копирует
>> файлы. Нагрузка на дисковую подсистему минимальна.
>
> Рекурсивный обход всех каталогов репозитория -- это неминуемый stat на
> каждый файл, если только не знать заранее, какие из этих файлов являются
> каталогами. Например,
> $ find Sisyphus/ | wc -l
> 162679
> $ find Sisyphus/ -not -name \*.rpm | wc -l
> 83
Подумалось, кстати, что задача ещё больше упрощается если учесть, что apt
работает с индексами, и значит для каждого репозитария надо копировать только
индексы, а все пакеты сваливать в одну кучу (файловые конфликты, теоретически,
невозможны, т.к. каждая сборка пакета имеет своё уникальное имя)
--
Vladimir Lettiev aka crux <theCrux на gmail.com>
Подробная информация о списке рассылки Devel