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)的主要内容,如果未能解决你的问题,请参考以下文章

LVM分区

正则表达式匹配空间不以 char 开头/结尾

无法将 slave.jar 复制到 slave 上的“/home/jenkins”

2048

如何在CentOS上安装一个2048小游戏

golang程序通过docker打包到harbor的方式进行jenkins自动化发布