我想增加 Jenkins 的可用堆空间。但是由于它是作为服务安装的,所以我不知道该怎么做。
6 回答
如果您使用 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
在您的 Jenkins 安装目录中有一个 jenkins.xml,您可以在其中设置各种选项。将具有所需大小的参数 -Xmx 添加到 arguments-tag (或增加大小,如果它已经存在)。
您需要修改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 /管理插件安装Jenkins 监控插件,然后导航到管理 Jenkins /监控 Hudson / Jenkins master来验证 Jenkins 正在使用的 Java 选项,以使用监控来确定 Jenkins 有多少内存可用。
如果您在 Jenkins 调用 Maven 时遇到内存不足错误,可能需要通过Manage Jenkins / Configure System设置 MAVEN_OPTS,例如,如果您在 JDK 1.8 之前的 Java 版本上运行(这些值是建议):
-Xmx2048m -XX:MaxPermSize=512m
如果您使用的是 JDK 1.8:
-Xmx2048m
我已添加到/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
从詹金斯维基:
这些 Windows 服务的 JVM 启动参数分别由 XML 文件 jenkins.xml 和 jenkins-slave.xml 控制。这些文件可以分别在 $JENKINS_HOME 和从属根目录中找到,在您将它们安装为 Windows 服务之后。
文件格式应该是不言自明的。例如,调整参数以给 JVM 更大的内存。
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service
如果您使用Jenkins 模板,您可能会在其中定义其他 VM 设置,这可能与您的系统 VM 设置冲突
例如,您的模板可能有这些参考
<mavenOpts>-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=1024m -Dmaven.test.failure.ignore=false</mavenOpts>
确保将这些模板条目与系统的 VM 设置对齐