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

如何阻止Jenkins多个流水线并发运行?解决本地服务器资源瓶颈

Jenkins多流水线并发触发导致资源不足的解决方法

我在内存有限的本地服务器上运行Jenkins,目前为了测试,把5条流水线都指向了同一个代码仓库。每次发起PR时,这5条流水线会同时触发,直接导致服务器资源被占满,出现节流问题。

已尝试的无效方案

  • 在Jenkinsfile中添加配置options { disableConcurrentBuilds() },但这个配置只能阻止同一流水线任务的并发运行,没法管控不同流水线之间的并发。
  • 编辑单个任务的配置来禁用并发,同样只能作用于单个任务,对其他流水线无效。
  • 了解到throttle-concurrents插件,但不清楚怎么用,也不确定它能不能管控多条流水线的并发。

有效解决方案:使用throttle-concurrents插件管控跨流水线并发

这个插件专门用来限制同一组任务的并发数,完全能满足管控5条流水线同时触发的需求,具体配置步骤如下:

1. 安装插件

在Jenkins的「插件管理」中搜索并安装Throttle Concurrent Builds插件。

2. 配置全局节流规则

进入Jenkins的「系统管理」→「全局节流配置」,添加一个节流组:

  • 给节流组起个名字(比如PR_Build_Group)
  • 设置该组的最大并发构建数(比如设为2,根据服务器内存情况调整)

3. 在每条流水线中关联节流组

在每个流水线的Jenkinsfile中添加以下配置:

options {
  throttleJobProperty(
    categories: ['PR_Build_Group'], // 关联刚才创建的节流组
    throttleEnabled: true,
    throttleOption: 'category'
  )
}

如果是通过任务页面配置,在流水线任务的「配置」页面找到「Throttle Concurrent Builds」选项,勾选启用后选择创建好的节流组即可。

配置完成后,当PR触发5条流水线时,Jenkins会自动控制同一节流组内的任务最多只运行你设置的并发数,避免服务器资源被瞬间占满。

可选优化:调整PR触发规则

如果5条流水线都是针对同一仓库的PR触发,可以考虑修改触发条件:比如让PR只触发特定流水线,或者通过Jenkins对应代码托管平台的插件(如GitHub Organization插件)统一管理触发规则,减少不必要的流水线同时启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:52:55