我如何修改负载平衡行为詹金斯用来控制奴隶?(How can I modify the Load Ba

2019-06-25 11:15发布

我们使用詹金斯我们的CI构建系统。 我们也使用“并发建立”让詹金斯将独立建造每一个变化。 这意味着我们经常有5个或6建立同时运行相同的工作。 为了适应这一点,我们有各12个执行人4个奴隶。

问题是,詹金斯做它的奴隶之间没有真正“负载均衡”。 它试图建立在它先前建立在同一个从工作(大概是为了减少从源代码控制同步的时间)。 这是一个问题,因为詹金斯将建立在同一个从我们构建的所有6个实例(或更可能2个从站之间)。 一个构建机器被越陷越深,运行速度很慢,而剩下的人处于闲置状态。

是否有改变负载平衡行为詹金斯用来控制它的奴隶插件什么的?

Answer 1:

如果你没有找到一个插件,可以自动进行,这里是你能做什么的想法:

  • 安装节点标签参数插件
  • SLAVE参数添加到您的工作
  • 限制作业运行${SLAVE}
  • 添加一个触发器的工作,将做到以下几点:

    • 通过系统的Groovy脚本分析载荷分布,并决定在哪个节点开始下一个版本。
    • 分派与该节点上构建Parametertized触发插件通过向从属参数分配适当的值。

为了分析负载分配,你需要安装Groovy插件与和熟悉詹金斯主模块API 。 下面是一些有用的初始指针 。



Answer 2:

我们正面临着类似的问题。 所以,我已经把改变在詹金斯负载均衡器选择当前具有最小负载的节点插件- https://wiki.jenkins-ci.org/display/JENKINS/Least+Load+Plugin

任何反馈赞赏。



Answer 3:

如果您的生成计算机无法轻松处理超过1所打造,为什么有12个执行人配置呢? 如果确实是这样,你应该执行者的数量减少到1。我的詹金斯有30个奴隶,每1个执行人。



Answer 4:

您也可以使用油门并发构建插件来限制如何工作的许多实例可以在同一节点上并行运行



文章来源: How can I modify the Load Balancing behavior Jenkins uses to control slaves?