You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins中实现各类任务对代理执行器的独占访问配置?

解决Jenkins代理资源最大化配置方案

嘿,我帮你梳理了一个完全适配现有工具的配置方案,结合Jenkins原生功能和你提到的两个插件,就能满足所有任务的资源占用要求,再也不用纠结之前的那些问题了!

第一步:先给Agent打标签(关键前提)

首先给两类Agent分别打上专属标签,方便任务精准选择节点:

  • 只有1个executor的虚拟机Agent:添加标签 vm-agent
  • 拥有5个executor的物理机Agent:添加标签 physical-agent

第二步:分任务针对性配置

1. 产品性能(计时)测试

这类任务必须独占物理机全部executor,配置如下:

  • 节点标签限制:在任务配置里指定只能跑在 physical-agent,确保不会跑到虚拟机上
  • Job Weight插件:设置任务权重为 5,这样每次构建会直接占用物理机的全部5个executor,彻底实现独占
  • Throttle Concurrent Builds插件:创建一个专属限流类别(比如叫 performance-test),设置单节点最大并发数为1——配合权重5,完全避免同一物理机同时跑多个性能测试

2. 桌面交互型自动化UI测试

这类任务对时间敏感,需要独占所在Agent的所有executor,这里不用依赖Job Weight的“Max”设置,Jenkins原生功能就能搞定:

  • 节点标签限制:指定为 vm-agent || physical-agent,允许跑在任意Agent上
  • Jenkins原生独占节点:在任务配置的「高级」选项里,勾选**「Run exclusive」**(中文界面叫“独占节点运行”)。这个选项会让任务运行时占用整个节点的所有executor——不管是虚拟机的1个还是物理机的5个,完美满足“独占所在Agent全部资源”的要求,同时还能正常在虚拟机上运行
  • 不需要额外设置Job Weight,原生独占已经足够

3. 功能回归测试

这类任务要最大化利用任意Agent的资源,配置如下:

  • 节点标签限制:指定为 vm-agent || physical-agent,可跑在任意Agent上
  • Throttle Concurrent Builds插件:创建专属限流类别(比如叫 regression-test),然后用「标签特定限流」功能:
    • 给 vm-agent 设置单节点最大并发数为 1(匹配虚拟机的executor数)
    • 给 physical-agent 设置单节点最大并发数为 5(匹配物理机的executor数)
  • Job Weight插件:保持默认(每个构建占用1个executor),这样物理机可以同时跑5个回归任务,虚拟机跑1个,完全最大化资源利用率

为什么这个方案能解决你之前的问题?

  • 解决「问题1」:UI测试勾选了“独占节点”,只要有UI测试在Agent上运行,该节点会被完全锁定,功能回归测试根本无法在同一节点启动
  • 解决「问题2」:功能回归测试有独立的限流类别,针对不同Agent设置了对应最大并发数,物理机不会被限制为1个executor,能跑满5个
  • 解决「问题3」:UI测试用的是Jenkins原生的独占节点,不是Job Weight强制占用5个executor,所以完全可以在只有1个executor的虚拟机上正常运行

小提示

配置完成后,可以先单独跑每个任务验证节点占用情况,再混合运行不同任务,确认资源分配符合预期。

内容的提问来源于stack exchange,提问作者Duff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:24:37