Jenkins 不以 -Xrs -Xmx2048m -XX:MaxPermSize=512m 开头(windows)
Posted
技术标签:
【中文标题】Jenkins 不以 -Xrs -Xmx2048m -XX:MaxPermSize=512m 开头(windows)【英文标题】:Jenkins does not start with -Xrs -Xmx2048m -XX:MaxPermSize=512m (windows) 【发布时间】:2015-04-28 22:27:48 【问题描述】:我的 Jenkins 不想从 jenkins.xml 文件中的参数 -Xrs -Xmx2048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080
开始。我还将 JENKINS_HOME 变量添加到 Windows 变量中,并将路径设置为我的 jenkins 文件夹c:\Program Files (x86)\Jenkins
。但这无济于事。我在日志文件中看到错误
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
有人可以帮帮我吗?
【问题讨论】:
为什么希望它能够启动? 我还在 Jenkins MAVEN_OPTS -Xmx1024m -XX:MaxPermSize=512m 的全局属性中添加了选项 我看了这个解决方案***.com/questions/5936519/… 当我运行我的肥皂 ui 测试时,由于 Jenkins [code]java.lang.OutOfMemoryError: PermGen space[code] 中的错误,我想调整 JVM 的大小 你找错地方了。当您在 jenkins 中运行测试时,会产生一个新进程,并且您在 jenkins 中设置MAVEN_OPTS
的想法是一个不错的想法。前进的方法可能是在 jenkins 外部成功运行测试,然后将设置 复制 到 jenkins 构建中。
【参考方案1】:
您很可能在 Windows 上使用 32 位 JVM。这有大约 1.2 - 1.5 GB 的堆限制,具体取决于您之前运行的内容。
我建议要么限制自己使用 -Xmx1200m
,要么使用 64 位 JVM。
如果增加 PermGen,则需要减小堆大小,因为在 32 位窗口中可以拥有的虚拟内存量是有限的。
【讨论】:
我查看了java -version
,它显示我使用的是 64 位版本:java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b18) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
如何增加 JVM 的大小?
@takeshi85 你确定这是 Jenkins 使用的版本,而不是安装在 Jenkins 目录下的版本?
我用的是jenkins的最后一个版本jenkins-1.599
我只有一个版本
我应该为 Jenkins 安装 slave mod 吗?【参考方案2】:
我找到了解决方案。需要在其文件夹中更新 JRE 版本的 Jenkins。我刚刚将新文件复制到其文件夹并替换了相同的文件)现在我可以使用选项启动 Jenkins
<arguments>-Xrs -Xmx2048m - Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
我还使用soap ui api 在Jenkins 中运行测试。我改变了选项
set JAVA_OPTS=-Xms512m -Xmx2048m -Dsoapui.properties=soapui.properties "-Dsoapui.home=%SOAPUI_HOME%\"
在 testrunner.bat 中,现在我的测试运行正常,Perm Gen 没有错误!
【讨论】:
以上是关于Jenkins 不以 -Xrs -Xmx2048m -XX:MaxPermSize=512m 开头(windows)的主要内容,如果未能解决你的问题,请参考以下文章