git pull очень медленный (не часть передачи ssh) на сервере Windows 2003

У меня проблема с определенным сервером, и я был бы признателен за помощь в отладке.

Запуск git версии 1.7.10.msysgit.1, установленный как часть расширений git 2.3.1 Windows 2003 Standard R2 SP2. Также установлен cwRsync (на основе Cygwin 1.7). Работает Trend AV (нет прав на изменение, так как это рабочая машина). Сервер представляет собой виртуальную машину VMWare и достаточно загружен.

Основная проблема заключается в том, что git pull (либо из git extensions, либо из git bash) занимает несколько минут даже для очень маленького репозитория (600 КБ и 26 файлов). Загрузка ЦП достигает почти 100% (на 1 ЦП) на время. Диспетчер задач приписывает эту нагрузку «Системе». Память и ЦП для git.exe остаются постоянными (и низкими).

Вообще git изначально очень медленно что-либо делал на сервере. Я значительно улучшил это, изменив $PS1, удалив __git_ps1. После этого git clone, git push, локальные операции git все еще довольно вялые (по 5-10 секунд каждый), но, по крайней мере, их можно использовать. (Я использую Linux 90% своего времени, так что ожидайте молниеносных скоростей!)

Захват пакетов во время git pull показывает, что SSH-связь происходит на 80% в процессе и длится всего несколько секунд (как и следовало ожидать в хорошей системе). Функционально git pull успешно завершается без сообщений об ошибках.

Ручное использование ssh для входа в систему или извлечения файлов выглядит нормально, используя plink, оригинальный ssh ​​(в комплекте) ssh 4.6p1 openSSL 0.9.8e или обновленную замену ssh 5.9p1 openSSL 0.9.8s Этот вид скидок любой сети или аспект, связанный с SSH.

В системных журналах или журналах расширения git нет ничего, указывающего на какие-либо ошибки.

Я посмотрел дефрагментацию на 2 установленных дисках. Оба нуждаются в дефрагментации (10% и 14%), один заполнен на 90%, другой имеет разумное пространство. У меня нет разрешения на дефрагментацию, но я попытался клонировать репо на оба 2 диска без существенной разницы в ошибке.

Я с подозрением относился к Trend AV (но не могу изменить это, чтобы исключить его), но провел те же тесты, используя тот же репозиторий на другом сервере, и это было невероятно быстро.

Я с подозрением отнесся к тому, что git может сканировать $HOME (учетная запись имеет множество внешних общих ресурсов в подкаталоге NetHood), но выполнение тех же тестов под отдельной учетной записью без ничего в NetHood не имело значения.

Я понимаю, что это не проблема продукта, но у меня закончились идеи. Учитывая, что я пытаюсь убедить заинтересованную компанию перейти на git - подобные проблемы на корпоративном сервере точно не помогают моему аргументу!

Спасибо, Дэйв.


person flashydave    schedule 13.04.2012    source источник
comment
можете ли вы объяснить, что это значит, пожалуйста? Я значительно улучшил это, изменив $PS1, чтобы удалить __git_ps1.   -  person Alan Macdonald    schedule 16.12.2014
comment
Кажется, это говорит о файле /etc/profile в вашем каталоге git. Windows не позволяет мне редактировать этот файл, чтобы посмотреть, помогает это или нет.   -  person Alan Macdonald    schedule 16.12.2014


Ответы (3)


Похоже, это вызвано тем, что msysgit использует древнюю версию OpenSSH. Я думаю, что этот парень решил вашу проблему: http://darrell.mozingo.net/2011/09/29/painfully-slow-clone-speeds-with-msysgit-gitextensions/ Я еще не следовал его инструкциям, поэтому должен отчитаться о том, сработало ли это для меня.

person Frank    schedule 27.05.2012
comment
так грустно, когда оперативники не докладывают! :-( - person cregox; 31.08.2012

Помощь уже в пути: commit d637d1b (для git 1.9.x/2.0, Q2 2014):

Усовершенствования нашей хеш-таблицы, чтобы она соответствовала потребностям проекта msysgit fscache с некоторыми приятными улучшениями производительности.

git status и git clone должны получить поддержку от этого нового hasmap API< /а>.

person VonC    schedule 02.03.2014

У меня была такая же проблема, обновление msysgit до последней версии (1.9.5 Preview 20141217) решило проблему.

person Sagi Iltus    schedule 09.02.2015