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

问题描述 投票:0回答:5

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

jenkins heap-memory jvm-arguments
5个回答
122
投票

如果您在 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

104
投票

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


79
投票

您需要修改 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

39
投票

我已添加到/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


16
投票

来自 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

© www.soinside.com 2019 - 2024. All rights reserved.