Jenkins:两个代理人与一个代理人与两个执行人

hjzp0vay  于 2023-11-17  发布在  Jenkins
关注(0)|答案(3)|浏览(136)

在同一台Windows服务器上创建两个代理或一个代理与两个执行器之间有什么区别吗?

ruyhziif

ruyhziif1#

是的,有区别:这是关于内存消耗和维护/管理的工作。

  • 在系统上启动一个从进程会启动一个(主)进程。这个进程的运行会占用(私有)主存,并连接到主进程。
  • 每个执行器都是主进程的一个子进程。

因此,很明显,在一个slave上运行两个executor比运行两个slave(每个slave有一个executor)消耗更少的内存,因为主进程的内存消耗是两次:

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

字符串
此外,管理一个slave比管理一个executor更费力:虽然executor几乎没有什么可担心的,但是slave有很多东西需要配置。另外,两个slave的功能无论如何都是相同的(正如你所说的,它们运行在同一个操作系统上),所以给它们分配不同的标签几乎没有什么价值。
简而言之,如果没有其他的边界条件,这使我做得不同,我总是更喜欢在一个从机上运行两个执行器,因为这更容易管理,并且节省了一些内存。

uubf1zoe

uubf1zoe2#

从机是一台“机器”,执行器是从机中的一个“操作系统进程”。
因此,理想情况下,我们总是添加执行器-他们做的工作,可以并行运行,和简单的理论回答你的问题是“2执行器上一个奴隶”
在实践中,我们需要在几个用例中添加slave:
1.我们需要更多的资源(更多的CPU,更多的内存,更多的“机器”)
1.我们需要不同的设置(不同的操作系统,不同的硬件)
1.我们有全局资源,这将为同一台机器上的执行程序创建冲突(用于UI测试过程的共享浏览器)
根据您的用例做出决定。

yptwkmov

yptwkmov3#

在给定节点上运行1个执行器的一个好处是防止同时运行的进程之间的冲突。
另一方面,您可以使用现有的Jenkins插件来防止作业冲突,例如Heavy Job,Build Blocker。

相关问题