如何在Windows下作为服务启动时为Jenkins提供更多堆空间?

Del*_*ted 109 heap jvm-arguments jenkins

我想增加Jenkins的可用堆空间.但由于它作为服务安装,我不知道该怎么做.

Ste*_*HHH 104

如果您使用Aptitude(apt-get)在Ubuntu 12.04上安装Jenkins,请取消注释JAVA_ARGS以下几行中的行/etc/default/jenkins:

# arguments to pass to java
#JAVA_ARGS="-Xmx256m"   # <--default value
JAVA_ARGS="-Xmx2048m"
#JAVA_ARGS="-Djava.net.preferIPv4Stack=true" # make jenkins listen on IPv4 address
Run Code Online (Sandbox Code Playgroud)

  • "也许像我一样,很多人通过搜索引擎找到了解决这个问题的方法,而且这些人中有更大比例的人使用Linux或Unix?我不明白." 这正是我发现它的方式. (7认同)
  • 问题具体说明Windows. (5认同)
  • 是的,在我知道我在做什么之前,我写了这个答案,我很惊讶它得到了这么多的赞成.或许,像我一样,很多人通过搜索引擎找到了解决这个问题的方法,而这些人中有更大比例的人正在使用Linux或Unix?我不明白. (5认同)
  • 怎么样的窗户呢? (3认同)

dun*_*nni 88

在Jenkins安装目录中有一个jenkins.xml,您可以在其中设置各种选项.将参数-Xmx与您想要的大小一起添加到arguments-tag(如果已经存在,则增加大小).

  • 我的问题是:如果构建内存不足,为什么我们应该在 master 中设置 java 选项? (2认同)
  • 你不应该。但是这个问题不是关于内存不足的构建,而是关于主内存不足的问题。 (2认同)

Mar*_*ler 73

您需要修改jenkins.xml文件.具体来说,你需要改变

   <arguments>-Xrs -Xmx256m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
Run Code Online (Sandbox Code Playgroud)

    <arguments>-Xrs -Xmx2048m -XX:MaxPermSize=512m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
Run Code Online (Sandbox Code Playgroud)

您还可以通过Manage Jenkins/Manage Plugins安装Jenkins监视器插件,然后导航到Managing Jenkins/Monitoring of Hudson/Jenkins master来验证Jenkins正在使用的Java选项,以使用监视来确定Jenkins可用的内存量.

如果在Jenkins调用Maven时出现内存不足错误,可能需要通过Manage Jenkins/Configure System设置MAVEN_OPTS,例如,如果您运行的是JDK 1.8之前的Java版本(值是建议):

-Xmx2048m  -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)

如果您使用的是JDK 1.8:

-Xmx2048m
Run Code Online (Sandbox Code Playgroud)

  • 应该只有一个连字符:`-XX:MaxPermSize = 512m` - 上面的响应已被编辑以解决此错误. (2认同)
  • `-XX:MaxPermSize` 不再与 Java 8 或更高版本一起使用 /sf/ask/847992211/ (2认同)

ipe*_*cks 19

我已添加到/ etc/sysconfig/jenkins(CentOS):

# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)

对于ubuntu,相同的配置应该位于/ etc/default中


Isa*_*ett 16

来自Jenkins维基:

这些Windows服务的JVM启动参数分别由XML文件jenkins.xml和jenkins-slave.xml控制.在将它们安装为Windows服务后,可以分别在$ JENKINS_HOME和从属根目录中找到这些文件.

文件格式应该是不言自明的.例如,调整参数以给JVM一个更大的内存.

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service