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

Jay*_*ang 10 continuous-integration load-balancing build jenkins jenkins-plugins

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

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

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

bst*_*k12 19

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

任何反馈都表示赞赏.


mal*_*cot 3

如果您找不到自动执行此操作的插件,您可以执行以下操作:

  • 安装节点标签参数插件

  • SLAVE参数添加到您的作业中

  • 限制作业运行${SLAVE}

  • 添加一个触发器作业,该作业将执行以下操作:

    • 通过 System Groovy 脚本分析负载分布,并决定在哪个节点上启动下一个构建。
    • 通过为SLAVE参数 分配适当的值,使用参数化触发器插件在该节点上调度构建。

为了分析负载分布,您需要安装Groovy 插件并熟悉Jenkins 主模块 API。这里有一些有用的初始提示