我和Jenkins一起运行并行测试。
我设置它的方式是我有一个构建流程作业,并行执行其他三个作业。其他三个作业连接到单独的Test XML文件。
当我最初开始这个时,我遇到的问题是只有两个工作会执行,而第三个工作只会在其他工作完成后执行。
我发现这是因为我的Jenkins将执行程序的数量设置为2
,现在设置为5
。
然而,作为一个有趣的问题,仅仅为了将来的计划,詹金斯是否会限制你可以拥有的执行者数量?或者是否有一个你不应该超过的推荐号码?或者它完全取决于您运行它的环境?
如果上限/建议数量不超过?我认为解决这个问题的最佳方法是使用主/从方案,并将工作负载分散到多个虚拟机上。
例如,如果我将它设置为6个执行程序,这是否意味着我将在每个VM上有6个执行程序?或者在VM之间共享的6个执行程序?
答案 0 :(得分:6)
这实际上取决于您的环境以及分配给该Jenkins实例的资源量。我认为Jenkins允许的执行者数量没有任何限制。我们目前使用20个执行程序运行Jenkins的单个实例,没有任何问题。当然,根据您的构建管道和提交模式,您可能会发现您设置的执行程序数量太高。您只需要关注在任何给定时间是否实际使用了所有执行程序。
如果您发现自己接近Jenkins实例的资源上限,并且无法增加资源限制,那么您可能希望开始使用从属服务器。
我们关注资源使用的一种方法是通过Reading a resource file from within jar。
答案 1 :(得分:0)
我一直在研究同样的问题,并在詹金斯本身的领域旁边找到了这个问题:
编辑:更具体地说,Jenkins版本2.73.3,在用户界面中,在作业的配置中,每个字段的右侧应该很少?
。如果您单击它们,它们将为您提供有关该字段期望值的更多详细信息。对于执行者字段,您应该找到它。
Jenkins可以在此代理上执行的并发构建的最大数量。 首先,一个不错的值是机器上的CPU内核数。设置较高的值将导致每个构建花费更长的时间,但可能会增加整体吞吐量。例如,一个构建可能受CPU限制,而同时运行的第二个构建可能受I / O限制-因此,第二个构建此时可以利用备用I / O容量。
代理商必须至少有一位执行人。要临时阻止任何构建在代理上执行,请使用代理页面上的“将此节点标记为临时脱机”按钮。
这不适用于Jenkins主服务器-将执行程序的数量设置为零将阻止在主服务器上执行任何构建。
据我所知,这取决于您的工作到底在做什么;我们的部署脚本仅执行gcloud
命令,因此我们在具有更多执行程序的实例上运行这些命令。但是,我们的硒测试在具有1个执行者/核心的实例上运行。从表面上看,我们在安全方面发挥了作用。