我有一个使用mesos plugin的Jenkins实例。几乎所有的工作都是通过Mesos任务触发的。我想让工人一代更具侵略性。
当前的问题是,对于mesos插件,我将所有作业标记为mesos任务作为一次性使用从属,并且当其中一个从属服务器上的构建正在进行时,Jenkins强制任何排队的作业等待这些奴隶的潜在执行者,而不是新的实例。
根据日志,Jenkins似乎还有一个计时器,它定期检查是否应该根据排队的作业数量/超额工作量来调整任何从属设备。是否可以减少该过程的轮询间隔?
答案 0 :(得分:2)
来自Mesos Jenkins Plugin Readme: over provisioning flags
默认情况下,詹金斯保守地产生奴隶。比方说,如果队列中有2个构建,它不会立即产生2个执行器。它会产生一个执行器并等待一段时间让第一个执行器被释放,然后再决定产生第二个执行器。詹金斯确保它产生的每个执行者都被最大限度地利用。如果要覆盖此行为并立即为队列中的每个构建生成执行程序而不等待,可以在Jenkins启动期间使用这些标志:
-Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85