詹金斯:两个奴隶与一个奴隶两个执行者

时间:2016-05-20 20:57:37

标签: jenkins jenkins-slave

我在同一个Windows服务器上创建两个从属服务器或一个带有两个执行程序的服务器之间有什么区别吗?

3 个答案:

答案 0 :(得分:7)

是的,存在差异:它是关于内存消耗和维护/管理的努力。

  • 在系统上启动从站启动(主)进程。此过程花费(私有)主内存来运行并连接到主服务器。
  • 每个执行者都是主要过程的子过程。

因此很明显,与运行两个从站(每个都有一个执行器)相比,在一个从站上运行两个执行器总共花费的内存更少,因为主进程的内存消耗将会两次:

2 * Main Processes + 2 * Executors > 1 * Main Process + 2 * Executors

此外,管理一个奴隶比一个执行者更多的努力:虽然执行者几乎没有什么可担心的,但是有很多事情要为奴隶配置。此外,两个从属设备的功能无论如何都是相同的(它们运行在你所说的相同操作系统上),因此几乎没有增值也可以为它分配不同的标签。

简而言之,如果没有其他边界条件,这使得我采用不同的方式,我总是希望在一个奴隶上运行两个执行器,因为这更容易管理,并且保存了一些内存。

答案 1 :(得分:1)

从设备是“机器”。执行程序是从属服务器中的“ OS进程”。

因此,理想情况下,我们总是添加执行程序-它们可以完成工作并且可以并行运行,并且对您的问题的简单理论答案是“在一个奴隶上有2个执行程序”

在实践中,我们需要在几个用例中添加从属:

  1. 我们需要更多资源(更多cpu,更多内存,更多“机器”)
  2. 我们需要一个不同的设置(不同的操作系统,不同的硬件)
  3. 我们拥有全球资源,这些资源会为同一台计算机(用于UI测试过程的共享浏览器)上的执行者造成冲突

根据您的用例做出决定。

答案 2 :(得分:0)

在给定节点上运行1个执行程序时,我立即想到的一个好处是防止进程同时运行。

另一方面,您可以使用现有的Jenkins插件来防止工作冲突,即。沉重的工作,建立阻碍。