我们将 Jenkins 用于我们的 CI 构建系统。我们还使用“并发构建”,以便 Jenkins 独立构建每个更改。这意味着我们经常同时运行 5 或 6 个相同作业的构建。为了适应这一点,我们有 4 个从站,每个从站有 12 个执行器。
问题是 Jenkins 并没有真正在它的奴隶之间“负载平衡”。它尝试在之前构建的同一个从站上构建作业(大概是为了减少从源代码控制同步的时间)。这是一个问题,因为 Jenkins 将在同一个从站上构建我们构建的所有 6 个实例(或者更有可能在 2 个从站之间)。一台构建机器陷入困境并且运行非常缓慢,而其他机器则处于闲置状态。
如何配置 Jenkins 的负载平衡行为,以及它如何控制其从属服务器?