Долго отрабатывает шаг GitSync в сборочной линии VSTS для УПП (более 1 часа)


#1

Доброго дня!

В VSTS настроили сборочную линию для разбора конфигурации УПП на файлы и их последующей выгрузке в Git-репозиторий VSTS. Весь процесс выгрузки для каждой версии хранилища занимает более 1 часа по времени, что кажется перебором. Как можно сократить это время? С чего начать, куда смотреть?

Вот лог отработки шага GitSync:

2017-12-15T12:37:42.5486844Z ##[section]Starting: GitSync
2017-12-15T12:37:42.5486844Z ==============================================================================
2017-12-15T12:37:42.5486844Z Task : GitSync
2017-12-15T12:37:42.5486844Z Description : 1C Storage to git synchronization
2017-12-15T12:37:42.5486844Z Version : 0.2.18
2017-12-15T12:37:42.5486844Z Author : SilverBulleters LLC
2017-12-15T12:37:42.5486844Z Help :
2017-12-15T12:37:42.5486844Z ==============================================================================
2017-12-15T12:37:42.9393702Z Starting directory: C:\Agent_work\1\s
2017-12-15T12:37:42.9393702Z New directory: C:\Agent_work\1\s
2017-12-15T12:37:42.9549963Z [command]C:\Windows\system32\cmd.exe /c "chcp 65001"
2017-12-15T12:37:42.9862503Z Active code page: 65001
2017-12-15T12:37:43.0174982Z [command]C:\Windows\system32\cmd.exe /D /S /C "“C:\Program Files (x86)\OneScript\bin\gitsync.bat” export D:\1S_Storage\Enterprise_test C:\Agent_work\1\s\upp -format plain -limit 1 -email -verbose on -debug on"
2017-12-15T12:37:44.4237573Z GitSync v2.4.0
2017-12-15T12:37:44.4237573Z ИНФОРМАЦИЯ - Начинаю выгрузку исходников
2017-12-15T12:37:44.4237573Z ИНФОРМАЦИЯ - Начало синхронизации с git
2017-12-15T12:37:46.3613296Z ИНФОРМАЦИЯ - Номер синхронизированной версии: 1
2017-12-15T12:37:46.3613296Z ИНФОРМАЦИЯ - Номер последней версии в хранилище: 2
2017-12-15T12:37:46.3613296Z ИНФОРМАЦИЯ - Получаем исходники для версии 2, 15.12.2017 15:37:46
2017-12-15T12:57:04.3733181Z ИНФОРМАЦИЯ - Раскладываем модули по папкам согласно иерархии метаданных
2017-12-15T13:25:41.3049664Z ИНФОРМАЦИЯ - Выгрузка завершена
2017-12-15T13:25:41.3362438Z ##[section]Finishing: GitSync


#2

Как то многовато. У меня ERP на ноуте с обычным винтом и 4 GB оперативки скрипит 45 минут, на домашней машине с SSD и 16 ГБ оперативки 15 минут. Проц дома - древнючий i7-2600 3.4 GHz
Хранилище - удалённое, не на SSD


#3

Приветствую.

Выглядит достаточно странно, учитывая что

судя по логам - 20 минут на выгрузку и целых 30 минут на иерархию… Отсюда вопрос что там за диски и ядра.

Первое: нужно включить Debug режим
Второе: Открыть ресурс монитор и посмотреть ожидания - нет ли там очереди к диску
И
Третье: НЕ светится ли в процессах какого-нибудь антивируса


#4

А почему сразу иерархическе не выгружаете?
Зачем сначала в старый формат, а потом разбор по папкам? Платформа очень старая?


#5

И такой результат у нас на серверном железе :grinning:: 2 Intel Xeon 2.4 GHz по 8 ядер с 24 Гб оперативной памяти, правда HDD обычные (не SSD) в RAID 5. Хранилище расположено на нем же.


#6

Сейчас в шаге GitSync использую такую настройку

Пробовал переключаться и на “Native hierarchical export” - результат был такой же.

Платформа 8.3.9.1818


#7

Приветствую!

По процессору:
image

По дискам: HP SCSI 10000

По остальным пунктам будем смотреть.


#8
  1. У вас УПП, значит, большое количество обычных форм, которые дополнительно распаковываются на исходники через v8unpack. Проверьте работу антивируса/защитника windows - они любят в разы замедлять работу с файловой системой. При выгрузке такой работы очень много.
  2. Проверьте настройку гита autocrlf - платформа по умолчанию выгружает в crlf, если гит ставился на виндовую машину с дефолтными настройками, то при коммите происходит конверт в lf, что при медленных дисках/антивирусе тоже значительно замедляет время работы.

#9

ну и да, нативный иерархический экспорт будет/должен работать быстрее и стабильнее, чем плоский+раскладка по папкам


#10

Приветствую!

Подскажите, где можно настроить параметр “autocrlf” для Git, если при использовании сборочной линии в VSTS Git не устанавливается локально даже на машине с агентом. Эта настройка есть где-то в VSTS?


#11

После исключения антивируса разборка и выгрузка конфигурации в Git репозиторий VSTS стала выполняться за 30-35 минут. Чтобы еще снизить время на выгрузку теперь надо анализировать
загрузку процессора и дисков?

Полный лог выгрузки:
2017-12-19T13:01:33.2156366Z ##[section]Starting: Выгрузка в GIT УПП
2017-12-19T13:01:33.2156366Z Current agent version: '2.124.0’
2017-12-19T13:01:35.9813284Z ##[section]Starting: Initialize Job
2017-12-19T13:01:35.9969537Z Prepare build directory.
2017-12-19T13:01:36.0907066Z Set build variables.
2017-12-19T13:01:36.0907066Z Download all required tasks.
2017-12-19T13:01:36.2157091Z ##[section]Finishing: Initialize Job
2017-12-19T13:01:36.2626122Z ##[section]Starting: Get Sources
2017-12-19T13:01:36.3407373Z Syncing repository: TestGit (TfsGit)
2017-12-19T13:01:36.3407373Z Prepending Path environment variable with directory containing ‘git.exe’.
2017-12-19T13:01:36.3563642Z ##[command]git version
2017-12-19T13:01:36.4500864Z git version 2.12.2.windows.3
2017-12-19T13:01:36.4657275Z ##[command]git config --get remote.origin.url
2017-12-19T13:01:36.5282341Z ##[command]git config gc.auto 0
2017-12-19T13:01:36.5750902Z ##[command]git config --get-all http.https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit.extraheader
2017-12-19T13:01:36.6219972Z ##[command]git config --get-all http.proxy
2017-12-19T13:01:36.6688602Z ##[command]git -c http.extraheader=“AUTHORIZATION: bearer ********” fetch --tags --prune --progress --no-recurse-submodules origin
2017-12-19T13:01:37.7001521Z From https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:01:37.7001521Z 7b6e011…5a7a558 master -> origin/master
2017-12-19T13:01:37.7313698Z ##[command]git checkout --progress --force 5a7a558c9e7b362de69118f02d77d8f37c32d564
2017-12-19T13:01:50.4660773Z Note: checking out ‘5a7a558c9e7b362de69118f02d77d8f37c32d564’.
2017-12-19T13:01:50.4660773Z
2017-12-19T13:01:50.4660773Z You are in ‘detached HEAD’ state. You can look around, make experimental
2017-12-19T13:01:50.4660773Z changes and commit them, and you can discard any commits you make in this
2017-12-19T13:01:50.4660773Z state without impacting any branches by performing another checkout.
2017-12-19T13:01:50.4660773Z
2017-12-19T13:01:50.4660773Z If you want to create a new branch to retain commits you create, you may
2017-12-19T13:01:50.4660773Z do so (now or later) by using -b with the checkout command again. Example:
2017-12-19T13:01:50.4660773Z
2017-12-19T13:01:50.4660773Z git checkout -b
2017-12-19T13:01:50.4660773Z
2017-12-19T13:01:50.4660773Z HEAD is now at 5a7a558… Работы по Эпику AI1C-20 в Jira.
2017-12-19T13:01:50.4817269Z ##[command]git config http.https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit.extraheader "AUTHORIZATION: bearer ********"
2017-12-19T13:01:50.5285489Z ##[section]Finishing: Get Sources
2017-12-19T13:01:50.5441729Z ##[section]Starting: Allow Git remote access
2017-12-19T13:01:50.5754235Z ==============================================================================
2017-12-19T13:01:50.5754235Z Task : Enable Git Remote Access
2017-12-19T13:01:50.5754235Z Description : Updates a remote of the Git repository on the agent to allow access to the upstream repository on Visual Studio Team Services.
2017-12-19T13:01:50.5754235Z Version : 1.0.0
2017-12-19T13:01:50.5754235Z Author : IOZ AG
2017-12-19T13:01:50.5754235Z Help : More Information
2017-12-19T13:01:50.5754235Z ==============================================================================
2017-12-19T13:01:50.6066740Z Preparing task execution handler.
2017-12-19T13:01:52.8567282Z Executing the powershell script: C:\Agent_work_tasks\EnableGitRemoteAccess_ad5ee7de-41ec-42c8-84d0-8359bc39a4f5\1.0.0\EnableGitRemoteAccess.ps1
2017-12-19T13:01:53.4036168Z
2017-12-19T13:01:53.4036168Z
2017-12-19T13:01:53.5130303Z ##[section]Finishing: Allow Git remote access
2017-12-19T13:01:53.5130303Z ##[section]Starting: Run git
2017-12-19T13:01:53.5130303Z ==============================================================================
2017-12-19T13:01:53.5130303Z Task : Command Line
2017-12-19T13:01:53.5130303Z Description : Run a command line with arguments
2017-12-19T13:01:53.5130303Z Version : 1.1.3
2017-12-19T13:01:53.5130303Z Author : Microsoft Corporation
2017-12-19T13:01:53.5130303Z Help : More Information
2017-12-19T13:01:53.5130303Z ==============================================================================
2017-12-19T13:01:53.5286215Z ##[command]git checkout master
2017-12-19T13:02:11.7009794Z Switched to branch 'master’
2017-12-19T13:02:11.7009794Z Your branch is up-to-date with ‘origin/master’.
2017-12-19T13:02:11.7009794Z ##[section]Finishing: Run git
2017-12-19T13:02:11.7009794Z ##[section]Starting: Run git
2017-12-19T13:02:11.7009794Z ==============================================================================
2017-12-19T13:02:11.7009794Z Task : Command Line
2017-12-19T13:02:11.7009794Z Description : Run a command line with arguments
2017-12-19T13:02:11.7009794Z Version : 1.1.3
2017-12-19T13:02:11.7009794Z Author : Microsoft Corporation
2017-12-19T13:02:11.7009794Z Help : More Information
2017-12-19T13:02:11.7009794Z ==============================================================================
2017-12-19T13:02:11.7009794Z ##[command]git reset --hard 5a7a558c9e7b362de69118f02d77d8f37c32d564
2017-12-19T13:02:29.2638482Z HEAD is now at 5a7a558 ╨а╨░╨▒╨╛╤В╤Л ╨┐╨╛ ╨н╨┐╨╕╨║╤Г AI1C-20 ╨▓ Jira.
2017-12-19T13:02:29.2794731Z ##[section]Finishing: Run git
2017-12-19T13:02:29.2794731Z ##[section]Starting: GitSync
2017-12-19T13:02:29.2794731Z ==============================================================================
2017-12-19T13:02:29.2794731Z Task : GitSync
2017-12-19T13:02:29.2794731Z Description : 1C Storage to git synchronization
2017-12-19T13:02:29.2794731Z Version : 0.2.18
2017-12-19T13:02:29.2794731Z Author : SilverBulleters LLC
2017-12-19T13:02:29.2794731Z Help :
2017-12-19T13:02:29.2794731Z ==============================================================================
2017-12-19T13:02:30.1545179Z Starting directory: C:\Agent_work\1\s
2017-12-19T13:02:30.1545179Z New directory: C:\Agent_work\1\s
2017-12-19T13:02:30.1701192Z [command]C:\Windows\system32\cmd.exe /c "chcp 65001"
2017-12-19T13:02:30.2951500Z Active code page: 65001
2017-12-19T13:02:30.3420155Z [command]C:\Windows\system32\cmd.exe /D /S /C "“C:\Program Files (x86)\OneScript\bin\gitsync.bat” export D:\1S_Storage\Enterprise_test C:\Agent_work\1\s\upp -format plain -limit 1 -email agroinvest.com -verbose on -debug on"
2017-12-19T13:02:33.1233693Z GitSync v2.4.0
2017-12-19T13:02:33.1233693Z ИНФОРМАЦИЯ - Начинаю выгрузку исходников
2017-12-19T13:02:33.1233693Z ИНФОРМАЦИЯ - Начало синхронизации с git
2017-12-19T13:02:36.6702929Z ИНФОРМАЦИЯ - Номер синхронизированной версии: 3
2017-12-19T13:02:36.6702929Z ИНФОРМАЦИЯ - Номер последней версии в хранилище: 4
2017-12-19T13:02:36.6859314Z ИНФОРМАЦИЯ - Получаем исходники для версии 4, 19.12.2017 16:02:36
2017-12-19T13:20:40.2586990Z ИНФОРМАЦИЯ - Раскладываем модули по папкам согласно иерархии метаданных
2017-12-19T13:35:27.8892766Z ИНФОРМАЦИЯ - Выгрузка завершена
2017-12-19T13:35:28.0299070Z ##[section]Finishing: GitSync
2017-12-19T13:35:28.0611255Z ##[section]Starting: Git Publish to https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:35:28.0611255Z ==============================================================================
2017-12-19T13:35:28.0611255Z Task : Git Publish Task
2017-12-19T13:35:28.0611255Z Description : Lets you Sync your Git repository with another
2017-12-19T13:35:28.0611255Z Version : 1.1.0
2017-12-19T13:35:28.0611255Z Author : Martin Hinshelwood
2017-12-19T13:35:28.0611255Z Help : v1.1.0 More Information
2017-12-19T13:35:28.0611255Z ==============================================================================
2017-12-19T13:35:39.3114267Z fatal: remote target already exists.
2017-12-19T13:36:35.3752372Z Already on 'master’
2017-12-19T13:36:35.3752372Z Your branch is ahead of ‘origin/master’ by 1 commit.
2017-12-19T13:36:35.3752372Z (use “git push” to publish your local commits)
2017-12-19T13:36:37.8440750Z From https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:36:37.8440750Z * branch master -> FETCH_HEAD
2017-12-19T13:36:37.9690472Z Already up-to-date.
2017-12-19T13:36:48.0162174Z To https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:36:48.0162174Z 5a7a558…d6188de master -> master
2017-12-19T13:36:49.7662021Z Everything up-to-date
2017-12-19T13:36:49.8912353Z ##[section]Finishing: Git Publish to https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:36:49.8912353Z ##[section]Starting: Post Job Cleanup
2017-12-19T13:36:49.9068589Z Cleaning any cached credential from repository: TestGit (Git)
2017-12-19T13:36:49.9068589Z ##[command]git config --unset-all http.https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit.extraheader
2017-12-19T13:36:49.9537065Z ##[command]git remote set-url origin https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:36:50.0162225Z ##[command]git remote set-url --push origin https://agroinvest-team.visualstudio.com/TestProject2/_git/TestGit
2017-12-19T13:36:50.0631158Z ##[section]Finishing: Post Job Cleanup
2017-12-19T13:36:50.0787415Z ##[section]Finishing: Выгрузка в GIT УПП



И еще вопрос: если за раз проходит выгрузка нескольких версий хранилища, то каждая версия GitSync’ом разбирается одинаковое время:
2017-12-21T07:01:45.8442851Z ##[section]Starting: GitSync
2017-12-21T07:01:45.8471448Z ==============================================================================
2017-12-21T07:01:45.8471834Z Task : GitSync
2017-12-21T07:01:45.8472136Z Description : 1C Storage to git synchronization
2017-12-21T07:01:45.8472449Z Version : 0.2.18
2017-12-21T07:01:45.8472745Z Author : SilverBulleters LLC
2017-12-21T07:01:45.8473155Z Help :
2017-12-21T07:01:45.8473481Z ==============================================================================
2017-12-21T07:01:46.2796505Z Starting directory: C:\Agent_work\1\s
2017-12-21T07:01:46.2797578Z New directory: C:\Agent_work\1\s
2017-12-21T07:01:46.3057090Z [command]C:\WINDOWS\system32\cmd.exe /c "chcp 65001"
2017-12-21T07:01:46.3375509Z Active code page: 65001
2017-12-21T07:01:46.3614893Z [command]C:\WINDOWS\system32\cmd.exe /D /S /C "“C:\Program Files (x86)\OneScript\bin\gitsync.bat” export c:\1C_Storage\Enterprise_test\ C:\Agent_work\1\s\upp_20.12 -format hierarchical -limit 2 -email agroinvest.com -verbose on -debug on"
2017-12-21T07:01:47.6829707Z GitSync v2.4.0
2017-12-21T07:01:47.6840764Z ИНФОРМАЦИЯ - Начинаю выгрузку исходников
2017-12-21T07:01:47.6849926Z ИНФОРМАЦИЯ - Начало синхронизации с git
2017-12-21T07:01:48.9725012Z ИНФОРМАЦИЯ - Номер синхронизированной версии: 2
2017-12-21T07:01:48.9761854Z ИНФОРМАЦИЯ - Номер последней версии в хранилище: 4
2017-12-21T07:01:48.9786584Z ИНФОРМАЦИЯ - Получаем исходники для версии 3, 21.12.2017 10:01:48
2017-12-21T07:11:59.7256684Z ИНФОРМАЦИЯ - Раскладываем модули по папкам согласно иерархии метаданных
2017-12-21T07:22:18.9296673Z ИНФОРМАЦИЯ - Получаем исходники для версии 4, 21.12.2017 10:22:18
2017-12-21T07:33:18.5714648Z ИНФОРМАЦИЯ - Раскладываем модули по папкам согласно иерархии метаданных
2017-12-21T07:45:15.8176331Z ИНФОРМАЦИЯ - Выгрузка завершена
2017-12-21T07:45:15.8798672Z ##[section]Finishing: GitSync

Так и должно быть или последующие версии должны отрабатывать быстрее?


#12

И еще вопрос: если за раз проходит выгрузка нескольких версий хранилища, то каждая версия GitSync’ом разбирается одинаковое время:

В том варианте, в котором выгрузка запускается у вас - да, это нормально. В последней версии гитсинка добавилась возможность использования инкрементальной выгрузки, появившейся в 8.3.10, но я не уверен, что необходимые параметры можно будет передать в шаг для vsts


#13

Понятно, спасибо!