3

我使用 java -jar jenkins.war 和 java -jar slave.jar 来运行 Jenkins master 和 slave。我想知道Jenkins调用了多少JVM,我可以配置它们的参数。

在大师:

  • 我认为只有一个 JVM(我不在 master 中运行作业)

在奴隶:

  • java -jar slave.jar => 一个 JVM
  • 每个作业都有一个新的 JVM,这个 JVM 运行预构建步骤,获取源代码(SVN,GIT,...),构建后步骤
  • 每个 Maven 都有自己的 JVM 每个 Junit 都有自己的 JVM

另一个问题是,我可以在管理节点的高级部分设置slave的JVM,但是谁使用它的配置?

4

1 回答 1

3

每个 Maven 构建都不会在其自己的 JVM 中运行。Java是多线程的。当您启动从属服务器时,您可以配置它可以处理的线程数,主服务器也是如此。

通常,您在从节点上运行构建。在 unix 系统上,这些可以设置为从远程节点上的主节点自动运行。

Manage Jenkins -> Manage Nodes -> New Node

在 Launch Advanced 选项下,您可以为运行 Jenkins 节点软件的远程 JVM 指定 JVM 参数。

每个选项都有帮助,例如“# executors”选项:

这控制了 Jenkins 可以执行的并发构建的数量。因此该值会影响 Jenkins 可能产生的整体系统负载。一个好的开始值是系统上的处理器数量。

将此值增加到超过该值会导致每次构建花费更长的时间,但它可能会增加整体吞吐量,因为它允许 CPU 构建一个项目,而另一个构建正在等待 I/O。

在主/从模式下使用 Jenkins 时,将此值设置为 0 将阻止主节点自行进行任何构建。从站可能没有零执行器,但可以使用从站状态页面上的按钮暂时禁用。

于 2013-11-02T15:19:17.763 回答