VSTS 构建代理 - 一台计算机可以运行多个构建代理吗?

Posted

技术标签:

【中文标题】VSTS 构建代理 - 一台计算机可以运行多个构建代理吗?【英文标题】:VSTS build agents - Can one computer run multiple build agents? 【发布时间】:2017-04-09 09:33:18 【问题描述】:

我有一个托管 VSTS 构建代理的 Windows VM。由于正在运行的构建的数量和长度,我想知道是否可以在一台计算机上托管多个构建代理?这将允许一个用于慢速构建的专用代理,以及一个用于快速构建的专用代理。

https://www.visualstudio.com/en-us/docs/build/admin/agents/v2-windows

【问题讨论】:

【参考方案1】:

是的,您可以在单个 VM 中运行多个代理。

创建两个目录,分别为 Agent1 和 Agent2,在每个目录中提取代理,并针对您的 VSTS/TFS 帐户配置不同的名称。

它应该开箱即用。

【讨论】:

值得注意的是,构建通常受 IO 限制(磁盘/网络读/写速度),而不是内存/CPU 限制。在一台机器上运行过多的并行构建实际上会降低性能。 @DanielMann 我在同一台机器上运行两个构建代理,它们从不并行运行。应该可以吗? @Boland 我相信这与您设置的管道有关。您可以为您购买的每个私有管道同时运行 1 个构建或发布管道。转到 root vsts 设置 |构建和发布 |资源限制。使那些超过 1。【参考方案2】:

我们每台机器同时运行 4 个代理作业,没有任何问题。如上所述,应该开箱即用。只要确保你清理目录。我们每天晚上都有一个脚本来做这件事

【讨论】:

您能详细说明一下吗?您只是删除 _work 文件夹中的内容还是更具体的内容?【参考方案3】:

是的,这行得通,我做了以下操作:

    为代理安装需求创建了 PAT 从代理创建页面下载代理二进制文件 将存档内容解压缩到 2 个不同的目录(“c:\ado-build-agents\agent1”和“c:\ado-build-agents\agent2”) 运行“config.cmd”并按照它提供的配置说明进行操作。 更新了构建代理池的管道,这些代理驻留在其中(在我的例子中为“默认”) 为了测试设置 - 触发了我拥有的所有 15 个管道。结果,我能够看到两条管道同时运行,而其他管道处于“排队”状态(符合我的预期)。

我还将测试代理如何消耗资源,以尝试了解我是否应该在构建机器上部署更多代理。

【讨论】:

以上是关于VSTS 构建代理 - 一台计算机可以运行多个构建代理吗?的主要内容,如果未能解决你的问题,请参考以下文章

在睡眠/休眠模式下启动 VSTS Hosted Build 代理

在同一台计算机上运行多个 TeamCity 代理?

VSTS:如何重新排队损坏的构建和切换代理队列

如何在VSTS托管构建代理上返回grunt错误

服务结构升级在 VSTS 构建服务器上创建了一个错误

我们可以在 VSTS 中为 Maven 构建任务使用多个目标吗