为什么 Azure DevOps 构建管道的初始化作业占用这么多时间?
Why initialize job of Azure DevOps build pipeline takes up so much time?
我有一个 Azure DevOps 项目,其构建管道需要花费太多时间才能完成。看来问题可以精确定位到 'Initialize job' 和 NuGet 任务。 'initialize job' 中的以下步骤需要几分钟才能完成:
##[debug]Task 'NuGetToolInstaller' already downloaded at 'E:\Agent3\_work\_taskzips\NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d_1.179.0.zip'.
##[debug]Task 'NuGetCommand' already downloaded at 'E:\Agent3\_work\_taskzips\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b_2.179.0.zip'.
##[debug]Task 'PowerShell' already downloaded at 'E:\Agent3\_work\_taskzips\PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1_1.2.3.zip'.
##[debug]Task 'VSBuild' already downloaded at 'E:\Agent3\_work\_taskzips\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda_1.192.3.zip'.
##[debug]Task 'CopyFiles' already downloaded at 'E:\Agent3\_work\_taskzips\CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c_2.190.1.zip'.
##[debug]Task 'PublishBuildArtifacts' already downloaded at 'E:\Agent3\_work\_taskzips\PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe_1.192.0.zip'.
任务 NuGet 中的以下步骤也需要很多时间:
##[debug]Extracting task NuGetCommand from E:\Agent3\_work\_taskzips\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b_2.179.0.zip to E:\Agent3\_work\_tasks\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b.179.0.
奇怪的是,不同项目和组织中具有看似相同的构建定义和代理版本的管道并不慢(秒)并给出不同的调试输出:
##[debug]Task 'NuGetToolInstaller' already downloaded at 'E:\agent\_work\_tasks\NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d.179.0'.
##[debug]Task 'NuGetCommand' already downloaded at 'E:\agent\_work\_tasks\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b.179.0'.
##[debug]Task 'PowerShell' already downloaded at 'E:\agent\_work\_tasks\PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1.2.3'.
##[debug]Task 'VSBuild' already downloaded at 'E:\agent\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda.192.3'.
##[debug]Task 'CopyFiles' already downloaded at 'E:\agent\_work\_tasks\CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c.190.1'.
##[debug]Task 'PublishBuildArtifacts' already downloaded at 'E:\agent\_work\_tasks\PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe.192.0'.
看起来慢速代理正在使用 taskzips 文件夹,而快速代理正在使用任务文件夹。自托管代理都 运行 在同一台本地服务器上。我查看了文件夹,takszips 文件夹包含 zip 文件:
Directory: \atsmodapp01\e$\Agent3\_work\_taskzips
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 07/10/2021 12:52 573233 CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c_2.190.1.zip
-a--- 07/10/2021 12:52 25890948 NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b_2.179.0.zip
-a--- 07/10/2021 12:51 4613826 NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d_1.179.0.zip
-a--- 07/10/2021 12:52 13477 PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1_1.2.3.zip
-a--- 07/10/2021 12:52 974971 PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe_1.192.0.zip
-a--- 07/10/2021 12:52 588839 VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda_1.192.3.zip
任务文件夹包含文件夹:
Directory: \atsmodapp01\e$\agent\_work\_tasks
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 22/10/2020 13:50 Bash_6c731c3c-3c68-459a-a5c9-bde6e6595b5b
d---- 17/02/2021 11:44 CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9
d---- 02/08/2021 12:41 CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c
d---- 03/03/2021 06:40 DeleteFiles_b7e8b412-0437-4065-9371-edc5881de25b
d---- 03/09/2021 12:36 DownloadBuildArtifacts_a433f589-fce1-4460-9ee6-44a624aeb1fb
d---- 22/07/2019 15:35 DownloadFileshareArtifacts_e3cf3806-ad30-4ec4-8f1e-8ecd98771aa0
d---- 22/07/2019 15:34 DownloadPackage_8d6e8f7e-267d-442d-8c92-1f586864c62f
d---- 30/10/2019 15:28 GenerateReleaseNotes_661bc005-61be-430f-b994-065bf08c0f39
d---- 30/03/2021 09:36 gitsync_36cbb8f8-6f18-4b55-bdd7-3ecf87044b08
d---- 22/11/2020 17:45 GitTag_be6aa0ca-e62f-414d-aaa6-e9524b556482
d---- 15/12/2020 12:18 NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b
d---- 22/07/2019 15:31 NuGetRestore_333b11bd-d341-40d9-afcf-b32d5ce6f23b
d---- 15/12/2020 12:18 NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d
d---- 30/06/2020 21:16 PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1
d---- 15/09/2021 14:52 PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe
d---- 04/11/2020 12:05 RedgateSqlChangeAutomationBuild_7345fe1b-d099-46f0-a0d1-7292cd17feee
d---- 04/11/2020 16:54 RedgateSqlChangeAutomationRelease_c1177c17-3934-4005-ba89-a4549fe4f0a1
d---- 26/10/2020 09:40 replacetokens_a8515ec8-7254-4ffd-912c-86772e2b5962
d---- 27/09/2020 21:45 rvo-vsts-promotepackage-task_7ca5869f-a901-4012-a50d-d0f9d436ffec
d---- 21/07/2021 18:43 UniversalPackages_e0b79640-8625-11e8-91be-db2878ff888a
d---- 21/09/2021 16:02 VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda
d---- 26/10/2020 09:40 xdttransform_98012758-c053-475d-9d6a-fd0773c39e09
我的问题是:为什么处理管道的代理的行为不同,我怎样才能使慢速代理更快或改变它以使其表现得像快速代理?
此致,
帕特里克
区别必须在位于代理安装文件夹根目录中的 .agent 配置文件中。
你的情况:E:\Agent3\
在这个 JSON 风格的配置文件中,存在一个名为“alwaysExtractTask”的条目。
请删除 alwaysExtractTask 行或将其更改为 False。
现在重新启动服务,看看您的代理速度如何!
背景资料:
请检查these release note for more explanation on alwaysExtractTask。
这个配置是安装问题的一小段时间,但是 Microsoft removed 从今年 6 月开始。
我有一个 Azure DevOps 项目,其构建管道需要花费太多时间才能完成。看来问题可以精确定位到 'Initialize job' 和 NuGet 任务。 'initialize job' 中的以下步骤需要几分钟才能完成:
##[debug]Task 'NuGetToolInstaller' already downloaded at 'E:\Agent3\_work\_taskzips\NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d_1.179.0.zip'.
##[debug]Task 'NuGetCommand' already downloaded at 'E:\Agent3\_work\_taskzips\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b_2.179.0.zip'.
##[debug]Task 'PowerShell' already downloaded at 'E:\Agent3\_work\_taskzips\PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1_1.2.3.zip'.
##[debug]Task 'VSBuild' already downloaded at 'E:\Agent3\_work\_taskzips\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda_1.192.3.zip'.
##[debug]Task 'CopyFiles' already downloaded at 'E:\Agent3\_work\_taskzips\CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c_2.190.1.zip'.
##[debug]Task 'PublishBuildArtifacts' already downloaded at 'E:\Agent3\_work\_taskzips\PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe_1.192.0.zip'.
任务 NuGet 中的以下步骤也需要很多时间:
##[debug]Extracting task NuGetCommand from E:\Agent3\_work\_taskzips\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b_2.179.0.zip to E:\Agent3\_work\_tasks\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b.179.0.
奇怪的是,不同项目和组织中具有看似相同的构建定义和代理版本的管道并不慢(秒)并给出不同的调试输出:
##[debug]Task 'NuGetToolInstaller' already downloaded at 'E:\agent\_work\_tasks\NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d.179.0'.
##[debug]Task 'NuGetCommand' already downloaded at 'E:\agent\_work\_tasks\NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b.179.0'.
##[debug]Task 'PowerShell' already downloaded at 'E:\agent\_work\_tasks\PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1.2.3'.
##[debug]Task 'VSBuild' already downloaded at 'E:\agent\_work\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda.192.3'.
##[debug]Task 'CopyFiles' already downloaded at 'E:\agent\_work\_tasks\CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c.190.1'.
##[debug]Task 'PublishBuildArtifacts' already downloaded at 'E:\agent\_work\_tasks\PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe.192.0'.
看起来慢速代理正在使用 taskzips 文件夹,而快速代理正在使用任务文件夹。自托管代理都 运行 在同一台本地服务器上。我查看了文件夹,takszips 文件夹包含 zip 文件:
Directory: \atsmodapp01\e$\Agent3\_work\_taskzips
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 07/10/2021 12:52 573233 CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c_2.190.1.zip
-a--- 07/10/2021 12:52 25890948 NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b_2.179.0.zip
-a--- 07/10/2021 12:51 4613826 NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d_1.179.0.zip
-a--- 07/10/2021 12:52 13477 PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1_1.2.3.zip
-a--- 07/10/2021 12:52 974971 PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe_1.192.0.zip
-a--- 07/10/2021 12:52 588839 VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda_1.192.3.zip
任务文件夹包含文件夹:
Directory: \atsmodapp01\e$\agent\_work\_tasks
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 22/10/2020 13:50 Bash_6c731c3c-3c68-459a-a5c9-bde6e6595b5b
d---- 17/02/2021 11:44 CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9
d---- 02/08/2021 12:41 CopyFiles_5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c
d---- 03/03/2021 06:40 DeleteFiles_b7e8b412-0437-4065-9371-edc5881de25b
d---- 03/09/2021 12:36 DownloadBuildArtifacts_a433f589-fce1-4460-9ee6-44a624aeb1fb
d---- 22/07/2019 15:35 DownloadFileshareArtifacts_e3cf3806-ad30-4ec4-8f1e-8ecd98771aa0
d---- 22/07/2019 15:34 DownloadPackage_8d6e8f7e-267d-442d-8c92-1f586864c62f
d---- 30/10/2019 15:28 GenerateReleaseNotes_661bc005-61be-430f-b994-065bf08c0f39
d---- 30/03/2021 09:36 gitsync_36cbb8f8-6f18-4b55-bdd7-3ecf87044b08
d---- 22/11/2020 17:45 GitTag_be6aa0ca-e62f-414d-aaa6-e9524b556482
d---- 15/12/2020 12:18 NuGetCommand_333b11bd-d341-40d9-afcf-b32d5ce6f23b
d---- 22/07/2019 15:31 NuGetRestore_333b11bd-d341-40d9-afcf-b32d5ce6f23b
d---- 15/12/2020 12:18 NuGetToolInstaller_2c65196a-54fd-4a02-9be8-d9d1837b7c5d
d---- 30/06/2020 21:16 PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1
d---- 15/09/2021 14:52 PublishBuildArtifacts_2ff763a7-ce83-4e1f-bc89-0ae63477cebe
d---- 04/11/2020 12:05 RedgateSqlChangeAutomationBuild_7345fe1b-d099-46f0-a0d1-7292cd17feee
d---- 04/11/2020 16:54 RedgateSqlChangeAutomationRelease_c1177c17-3934-4005-ba89-a4549fe4f0a1
d---- 26/10/2020 09:40 replacetokens_a8515ec8-7254-4ffd-912c-86772e2b5962
d---- 27/09/2020 21:45 rvo-vsts-promotepackage-task_7ca5869f-a901-4012-a50d-d0f9d436ffec
d---- 21/07/2021 18:43 UniversalPackages_e0b79640-8625-11e8-91be-db2878ff888a
d---- 21/09/2021 16:02 VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda
d---- 26/10/2020 09:40 xdttransform_98012758-c053-475d-9d6a-fd0773c39e09
我的问题是:为什么处理管道的代理的行为不同,我怎样才能使慢速代理更快或改变它以使其表现得像快速代理?
此致,
帕特里克
区别必须在位于代理安装文件夹根目录中的 .agent 配置文件中。
你的情况:E:\Agent3\
在这个 JSON 风格的配置文件中,存在一个名为“alwaysExtractTask”的条目。 请删除 alwaysExtractTask 行或将其更改为 False。
现在重新启动服务,看看您的代理速度如何!
背景资料:
请检查these release note for more explanation on alwaysExtractTask。
这个配置是安装问题的一小段时间,但是 Microsoft removed 从今年 6 月开始。