詹金斯 - 让繁重的工作等待一定数量的执行者可用
Posted
技术标签:
【中文标题】詹金斯 - 让繁重的工作等待一定数量的执行者可用【英文标题】:Jenkins - Make heavy job wait for a certain number of executors to be available 【发布时间】:2015-08-11 07:22:59 【问题描述】:在previous question 中,我问如果两个执行器中有两个可用,如何只让繁重的工作运行。这保证了快速构建总是有一个执行器不会被重型执行器阻塞。
快速的工作不到 10 分钟,繁重的工作可能需要几个小时。
这是我看 Jenkins 构建集群的下一个级别。想象一下,在一个巨大的构建环境中,一个 master 和 n 个 build slave,每个 m executor。 Short:随机的大量执行者。
我如何确保至少 x% 的执行者有时间从事快速工作?如果 x% 少于 1 个执行者(例如 4 个执行者的 10%),则应有 1 个执行者可用。
【问题讨论】:
你不能只为快速和繁重的工作提供单独的奴隶吗?缺点是快速工作的奴隶长期不活动,而繁重的工作对奴隶的负荷很大...... 【参考方案1】:在我有类似需求时,我发现最好的选择是使用 Jenkins slave。 放置一个强大的从属服务器,让您使用一个执行器来运行所有繁重的工作。 让你所有的短的都在 master 上运行。
你也可以切换小作业,放到slave上。
恕我直言,为 Jenkins 主服务器使用小型服务器并将所有构建放在专用、强大的从服务器上的想法更具可扩展性和可管理性。
我希望这会有所帮助。
【讨论】:
【参考方案2】:假设您有 4 个从节点,每个节点有 2 个执行器,总共有 8 个执行器。有多种方法可以限制 jenkins 作业在从节点上运行。
-
您可以在每个 Jenkins 作业配置部分使用默认的“限制可以运行此项目的位置”选项。通过这种方式,您始终可以拥有一个从节点和 2 个执行器,始终专用于快速作业。
参考这个插件https://wiki.jenkins-ci.org/display/JENKINS/Job+Restrictions+Plugin。这个插件给你不同的选择。
我个人更喜欢将一个从节点专用于快速作业,这样可以根据可用的硬件灵活地增加或减少执行器。您还可以灵活地将从节点更改为不同的硬件,只需对 Jenkins 进行最小的更改。假设您在 Jenkins 中有 1000 多个作业,每个作业都被归类为快速作业和繁重作业,并且如果快速作业的数量增加,您总是可以轻松地增加从属的执行者,因此任何单个作业都没有变化配置。希望这可以帮助。
【讨论】:
【参考方案3】:Heavy Job Plugin 似乎正是这样做的。我几分钟前才发现它,所以还没有任何关于它是否工作的反馈。
【讨论】:
以上是关于詹金斯 - 让繁重的工作等待一定数量的执行者可用的主要内容,如果未能解决你的问题,请参考以下文章