Mercurial — высокая загрузка ЦП при отправке изменений в репозиторий сервера

Недавно мы внедрили Mercurial в одной из наших команд в нашей компании в качестве пробной версии, прежде чем развернуть ее для всех. До сих пор все прошло довольно хорошо. Но когда мы разрешили другой команде доступ к Mercurial, мы столкнулись с проблемой при отправке изменений из нашего локального репозитория в репозиторий сервера.

Процесс python.exe использует почти 100% ЦП на сервере, когда выполняется отправка. И это при одном единственном толчке. Первоначально он был равен 100%, но мы добавили server.uncompressed = true в hgrc, и это немного помогло, но все еще высоко.

Сервер представляет собой виртуальную машину под управлением Windows Server 2008 Standard на процессоре Intel Xeon 3 ГГц с 2 ГБ ОЗУ.

Поиск в гугле не дал никакой полезной информации. Есть ли у SO какие-либо предложения?


person Athtar    schedule 14.03.2011    source источник
comment
Вы храните большие файлы в mercurial?   -  person Wim Coenen    schedule 14.03.2011
comment
Нет чрезмерно больших. Файлов много (это проект веб-сайта), но самый большой файл всего около 18 МБ.   -  person Athtar    schedule 14.03.2011
comment
По сути, это отчет об ошибке, и герцогства считают, что гораздо лучше сообщать об этом по адресу [email protected], где сообщество и разработчики Mercurial могут помочь вам в отладке.   -  person Martin Geisler    schedule 17.03.2011


Ответы (2)


Вы действительно уверены, что где-то есть проблема?

Я действительно не вижу ничего плохого в том, чтобы использовать всю доступную мощность процессора для выполнения этой работы.

Использование сжатия, вероятно, «помогло», потому что python должен получить доступ, чтобы дождаться, пока библиотека декомпрессии выполнит свою работу.

Вы предпочитаете ждать 5 секунд при 20% загрузке или 1 секунду при 100% загрузке?

person krtek    schedule 14.03.2011
comment
Обычно я бы не заботился о циклах процессора. Но это с одного нажатия. Что происходит, когда у вас есть больше людей, использующих Mercurial и продвигающих одновременно? У нас есть около 7 команд, которые будут использовать Mercurial после того, как он будет полностью реализован, и мы не знаем, смогут ли они его использовать, если эта проблема останется. - person Athtar; 14.03.2011
comment
нажатие блокирует репозиторий, поэтому другому пользователю придется дождаться завершения операции. - person krtek; 14.03.2011
comment
Однако это не для одного репозитория. У каждой команды есть свои репозитории, с которыми они будут работать. - person Athtar; 14.03.2011
comment
Затем ЦП все еще работает на 100%, но каждое задание выполняется немного медленнее. По-прежнему не вижу проблемы, если прямо сейчас push не занимает более 20 секунд, и вы думаете, что это может занять несколько минут с несколькими пользователями. Ваше репо действительно большое? Содержимое ваших наборов изменений также было довольно большим? Если нет, то я не уверен, откуда может возникнуть проблема. - person Mikezx6r; 14.03.2011
comment
Пуш на 35 МБ с одним-двумя наборами изменений сейчас занимает около 5 минут. - person Athtar; 14.03.2011

Возможно, вы столкнулись с проблемой № 135. Попробуйте разместить репозиторий через https вместо доступа к нему через ssh.

person Wim Coenen    schedule 14.03.2011