在Windows下作为服务启动时,如何给Jenkins更多的堆空间?


Answers:


90

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



我的问题是:如果构建用完了内存,为什么我们应该在master中设置java选项?
雅林

1
你不应该 但是这个问题不是关于构建用尽了内存,而是关于主构建用尽了内存。
dunni

从Ubuntu 16.04.6 LTS开始,没有这样的文件。/etc/default/jenkins史蒂夫(Steve)下面提供的解决方案是对我有用的解决方案。
insideClaw

110

如果您使用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

3
如果是窗户怎么办?
Dejell 2014年

6
问题特别指出Windows。
尼克·乌德尔2014年

6
是的,我在知道自己在做什么之前就写下了这个答案,我很惊讶它得到了如此多的支持。也许像我一样,很多人通过搜索引擎找到解决这个问题的方法,并且其中很大一部分人正在使用Linux或Unix?我不明白
史蒂夫HHH 2014年

8
“也许像我一样,很多人通过搜索引擎找到解决这个问题的方法,而其中更大比例的人正在使用Linux或Unix?我不理解。” 那正是我发现它的方式。
斯科特,

1
不要忘记重启詹金斯服务sudo service jenkins stop sudo service jenkins start
卡米洛席尔瓦

74

您需要修改jenkins.xml文件。具体来说,您需要进行更改

   <arguments>-Xrs -Xmx256m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

    <arguments>-Xrs -Xmx2048m -XX:MaxPermSize=512m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

您还可以通过以下方法来验证Jenkins正在使用的Java选项:通过“ 管理Jenkins” /“ 管理插件”安装Jenkins监视插件,然后导航到“ 管理Jenkins / Hudson监视” /“ Jenkins主服务器”以使用监视来确定Jenkins可用的内存量。

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

-Xmx2048m  -XX:MaxPermSize=512m

如果您使用的是JDK 1.8:

-Xmx2048m

当我如上所述尝试设置JENKINS_JAVA_OPTIONS时,我得到:“启动Jenkins无法识别的选项:--XX:MaxPermSize = 512m”
nemoo 2012年

2
只能有一个连字符:-XX:MaxPermSize=512m-已修改上述答复以解决此错字。
亚当·罗弗

1
知道如何在Windows中设置JENKINS_JAVA_OPTIONS吗?
ATOzTOA

在Windows上,根据jenkins.361315.n4.nabble.com/…,您使用控制面板->系统->高级->环境变量
Mark Butler

1
-XX:MaxPermSize不再与Java 8或更高版本一起使用stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann,

24

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

# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m"

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



-1

如果您使用的是Jenkins模板,则可能在其中定义了其他VM设置,这可能与系统VM设置冲突

例如,您的温带蛋白可能有诸如此类的引用

 <mavenOpts>-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=1024m -Dmaven.test.failure.ignore=false</mavenOpts> 

确保将这些模板条目与系统的VM设置对齐

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.