我们将Jenkins用于我们的CI构建系统。我们还使用“并行构建”,以便詹金斯将独立构建每个变更。这意味着我们经常有5到6个相同作业的构建同时运行。为了适应这一点,我们有4个奴隶,每个奴隶都有12个执行者。
问题在于,詹金斯并没有真正在其奴隶之间实现“负载平衡”。它尝试在先前建立在相同的从属服务器上构建作业(大概是为了减少从源代码控制同步的时间)。这是一个问题,因为詹金斯将在同一个从属服务器上(或更可能在两个从属服务器之间)构建我们构建的所有6个实例。一台构建机器陷入瘫痪,运行非常缓慢,而其他机器则处于闲置状态。
是否有插件或其他东西会改变Jenkins用于控制其奴隶的负载平衡行为?
如果找不到自动执行此功能的插件,请按照以下说明进行操作:
${SLAVE}
添加将执行以下操作的触发器作业:
为了分析负载分配,您需要安装Groovy插件并熟悉Jenkins Main ModuleAPI。这是一些有用的初始指针。