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

时间:2017-07-06 17:59:44

标签: tfs azure-pipelines-release-pipeline

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

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

我尝试在其他计算机上添加其他代理。下载工件时所有这些都表现得同样差,但手动复制时速度很快。

其他任何人都会遇到这种情况或提供一些可能有用的方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

是的,这肯定是造成问题的v2。

我们的下载工件步骤已经从2分钟到36分钟。这是完全不可接受的。我将尝试代理v2.120.2,看看它是否更好......

Agent v2.120.2

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

另一个选项我将研究它为每个公共工件压缩或创建一个nuget包,然后在删除后解压缩!不是理想的解决方案,而是我之前在需要使用RoboCopy时所做的事情,这显然是这个版本的Agent使用的。

RoboCopy在处理大量小文件方面不是很出色,而且必须为网络中的每个文件创建句柄会增加很多开销!

编辑: 对最新版本的更改没有任何区别。我们决定采用不同的路线并使用"服务器" 的工件类型而不是"文件共享" 从26分钟加速到4.5分钟。

答案 1 :(得分:1)

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

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

感谢您的帮助。