如何修改Jenkins用于控制从站的负载平衡行为?

build continuous-integration jenkins load-balancing jenkins-plugins

11450 观看

5回复

943 作者的声誉

我们将Jenkins用于CI构建系统。我们还使用'并发构建',以便Jenkins将独立构建每个更改。这意味着我们经常同时运行相同作业的5或6个版本。为了适应这种情况,我们有4个奴隶,每个奴隶有12个执行者。

问题是詹金斯并没有真正在其奴隶之间“负载平衡”。它试图在之前构建的同一个slave上构建一个作业(可能是为了减少从源代码控制同步的时间)。这是一个问题,因为Jenkins将在同一个slave上构建我们构建的所有6个实例(或者更可能在2个slave之间)。一台构建机器陷入困境并且运行非常缓慢,而其余机器处于空闲状态。

是否有插件或其他东西改变Jenkins用来控制其奴隶的负载平衡行为?

作者: Jay Spang 的来源 发布者: 2012 年 6 月 13 日

回应 (5)


2

14670 作者的声誉

决定

如果您没有找到自动执行此操作的插件,则可以了解您可以执行的操作:

  • 安装节点标签参数插件
  • SLAVE参数添加到作业中
  • 限制要运行的作业 ${SLAVE}
  • 添加将执行以下操作的触发器作业:

    • 通过System Groovy Script分析负载分配,并决定下一个构建开始的节点。
    • 通过为SLAVE参数指定适当的值,使用Parametertized Trigger插件在该节点上发布构建。

为了分析负载分布,您需要安装Groovy插件并熟悉Jenkins Main Module API。这是一些有用的初始指针

作者: malenkiy_scot 发布者: 14.06.2012 08:37

3

10362 作者的声誉

如果您的构建机器无法轻松处理超过1个构建,为什么要配置12个执行程序?如果确实如此,你应该将执行者的数量减少到1.我的Jenkins有30个奴隶,每个奴隶有1个执行者。

作者: sti 发布者: 18.06.2012 10:06

18

1519 作者的声誉

我们面临着类似的问题。所以我整理了一个插件,它改变了Jenkins中的Load Balancer以选择当前负载最小的节点 - https://wiki.jenkins-ci.org/display/JENKINS/Least+Load+Plugin

任何反馈都表示赞赏。

作者: bstick12 发布者: 04.06.2013 07:35

1

11 作者的声誉

您还可以使用Throttle Concurrent Builds插件来限制作业的多少个实例可以在同一节点上并行运行

作者: user1506978 发布者: 16.11.2015 10:40

0

21 作者的声誉

我有两个标签 - 一个用于小任务,一个用于大任务。我有一个执行任务的大任务和4个小任务。这确实可以平衡一些事情。

作者: jeremy mordkoff 发布者: 27.06.2019 10:46
32x32