VSTS 代理从本地网络共享下载工件的速度非常慢

VSTS agent very slow to download artifacts from local network share

我是 运行 具有两个代理的本地 TFS 实例。代理 1 有一个本地路径,我们在其中存储我们的工件。代理 2 必须通过网络路径 (\agent1\artifacts...) 访问该路径。

从代理 1 下载工件需要 20-30 秒。从代理 2 下载工件需要 4-5 分钟。如果我从代理 2 使用资源管理器复制文件,大约需要 20-30 秒。

我试过在其他机器上添加其他代理。它们在下载工件时表现同样糟糕,但在手动复制时表现很快。

还有其他人遇到过这个问题或提供一些解决此问题的想法吗?

我找到了问题的根源,似乎是 v2 代理。

根据 Marina 的评论,我尝试在 01 上安装第二个代理,它的行为与 02 完全相同。我试图弄清楚有什么不同,然后我注意到 01 的代理版本是 1.105.7 并且新的测试实例是 2.105.7。我在黑暗中尝试并在我的第二台服务器上安装了 1.105.7,它们现在具有可比的工件下载时间。

感谢您的帮助。

是的,肯定是 v2 导致了问题。

我们的下载工件步骤已从 2 分钟缩短到 36 分钟。这是完全不能接受的。我打算试用代理 v2.120.2 看看是否更好...

Agent v2.120.2

我认为这是因为我们的工件中的文件数量,我们在 2,604 个文件夹中的 12,042 个文件中有 3.71GB!

我会研究另一个选项,为每个 public 工件压缩或创建一个 nuget 包,然后在放下后解压缩!这不是理想的解决方案,但我以前在需要使用 RoboCopy 时做过一些事情,这显然是这个版本的代理所使用的。

RoboCopy 不擅长处理大量小文件,并且必须通过网络为每个文件创建句柄会增加大量开销!

编辑: 对最新版本的更改没有任何区别。我们决定走另一条路,使用 "Server" 的工件类型,而不是 "File Share"从 26 分钟增加到 4.5 分钟。