我想增加 Jenkins 的可用堆空间。但由于它是作为服务安装的,我不知道该怎么做。
如果您在 Ubuntu 12.04 上使用 Aptitude (apt-get) 安装 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 以及您想要的大小添加到参数标记中(或者如果已经存在则增加大小)。
您需要修改 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
来自 Jenkins 维基:
这些的JVM启动参数 Windows 服务由一个控制 XML 文件 jenkins.xml 和 分别是 jenkins-slave.xml。这些 文件可以在 $JENKINS_HOME 中找到 并在从属根目录中 分别在安装后 它们作为 Windows 服务。
文件格式应为 不言自明的。调整论点 例如给 JVM 更大的 记忆力。
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service