詹金斯:两个奴隶对一个奴隶两个执行者
Jenkins: two slaves vs. one slave two executors
我在同一个 Windows 服务器上创建两个从属,或者一个从属与两个执行程序之间有什么区别吗?
是的,有区别:这是关于 maintenance/administration 的内存消耗和工作量。
- 在系统上启动从站会启动一个(主)进程。此进程花费(私有)主内存 运行 并连接到主机。
- 每个执行器都是主进程的子进程。
因此很明显,与运行宁两个奴隶(每个一个执行者)相比,运行在一个奴隶上宁两个执行者总共花费更少的内存,因为会有内存消耗主进程两次:
2 * Main Processes + 2 * Executors > 1 * Main Process + 2 * Executors
此外,管理一个slave比仅仅管理一个executor要多一些努力:虽然executor几乎没有什么可担心的,但是有很多东西需要为slave配置。此外,两个奴隶的能力无论如何都是相同的(他们 运行ning 在同一个 OS 上,就像你说的那样),所以几乎没有附加值来分配不同的标签。
简而言之,如果没有其他边界条件让我采取不同的做法,我总是更喜欢 运行在一个奴隶上设置两个执行程序,因为这样更容易管理并且可以节省一些内存.
对于给定节点上的 运行ning 1 个执行程序,我立即想到的一个好处是可以同时防止进程之间的冲突 运行。
另一方面,您可以使用现有的 Jenkins 插件来防止作业冲突,即。繁重的工作,构建拦截器。
奴隶是"machine"。一个executor是slave中的一个"OS Process".
所以理想情况下,我们总是添加执行程序 - 他们完成工作并且可以 运行 并行,对你的问题的简单理论答案是“一个奴隶上的 2 个执行程序”
实际上我们需要在几个用例中添加从站:
- 我们需要更多资源(更多cpu、更多内存、更多"machines")
- 我们需要不同的设置(不同的操作系统,不同的硬件)
- 我们拥有全局资源,这会在同一台机器上为执行者造成冲突(UI 测试过程共享浏览器)
根据您的用例做出决定。
我在同一个 Windows 服务器上创建两个从属,或者一个从属与两个执行程序之间有什么区别吗?
是的,有区别:这是关于 maintenance/administration 的内存消耗和工作量。
- 在系统上启动从站会启动一个(主)进程。此进程花费(私有)主内存 运行 并连接到主机。
- 每个执行器都是主进程的子进程。
因此很明显,与运行宁两个奴隶(每个一个执行者)相比,运行在一个奴隶上宁两个执行者总共花费更少的内存,因为会有内存消耗主进程两次:
2 * Main Processes + 2 * Executors > 1 * Main Process + 2 * Executors
此外,管理一个slave比仅仅管理一个executor要多一些努力:虽然executor几乎没有什么可担心的,但是有很多东西需要为slave配置。此外,两个奴隶的能力无论如何都是相同的(他们 运行ning 在同一个 OS 上,就像你说的那样),所以几乎没有附加值来分配不同的标签。
简而言之,如果没有其他边界条件让我采取不同的做法,我总是更喜欢 运行在一个奴隶上设置两个执行程序,因为这样更容易管理并且可以节省一些内存.
对于给定节点上的 运行ning 1 个执行程序,我立即想到的一个好处是可以同时防止进程之间的冲突 运行。
另一方面,您可以使用现有的 Jenkins 插件来防止作业冲突,即。繁重的工作,构建拦截器。
奴隶是"machine"。一个executor是slave中的一个"OS Process".
所以理想情况下,我们总是添加执行程序 - 他们完成工作并且可以 运行 并行,对你的问题的简单理论答案是“一个奴隶上的 2 个执行程序”
实际上我们需要在几个用例中添加从站:
- 我们需要更多资源(更多cpu、更多内存、更多"machines")
- 我们需要不同的设置(不同的操作系统,不同的硬件)
- 我们拥有全局资源,这会在同一台机器上为执行者造成冲突(UI 测试过程共享浏览器)
根据您的用例做出决定。