Jenkins -让繁重的工作等待一定数量的执行者可用



在上一个问题中,我问了如何仅在两个执行器中的两个可用时才让一个繁重的作业运行。这保证了快速构建总是有一个执行器不被重执行器阻塞。

快的作业不到10分钟,重的作业可能需要几个小时。

它的下一个级别我看詹金斯构建集群。想象一下,在一个巨大的构建环境中,一个主构建和n个构建从构建,每个构建从构建有m个执行者。短:一个随机的大数目的执行者。

我如何确保至少有x%执行器可用于快速作业?如果x%少于1名遗嘱执行人(例如4名遗嘱执行人的10%),则应提供1名遗嘱执行人。

在类似的情况下,我发现最好的选择是使用Jenkins奴隶。
设置一个强大的奴隶,用一个执行者来运行所有繁重的工作。
让你所有的短消息都在master上运行。

您还可以切换并将小作业放在从属服务器上。

IMHO,使用一个小型的Jenkins主服务器,把你所有的构建放在专用的,强大的从服务器上的想法是更容易扩展和管理的。

假设您有4个从节点,每个节点有2个执行器,总共有8个执行器。有多种方法可以限制jenkins作业在从属节点上运行。

  1. 你可以在每个Jenkins作业配置节中使用默认的"限制这个项目可以运行的地方"选项。通过这种方式,您可以始终拥有一个从节点和两个执行器,这些执行器始终专用于快速作业。
  2. 参考这个插件https://wiki.jenkins-ci.org/display/JENKINS/Job+Restrictions+Plugin。这个插件给你不同的选择。

我个人更喜欢为快速作业指定从节点,这样可以根据可用的硬件灵活地增加或减少执行器。您还可以灵活地将从属节点更改为在Jenkins中进行最小更改的不同硬件。假设您在Jenkins中有1000多个作业,每个作业被分类为快速作业和繁重作业,并已分配给特定节点,如果快速作业的数量增加,您可以轻松地增加slave的执行器,因此任何单个作业配置都不会发生变化。希望这对你有所帮助。

Heavy Job Plugin似乎就是这样做的。我几分钟前才发现它,所以还没有任何关于它是否工作的反馈。

相关内容

最新更新