詹金斯中的 PermGen 错误

2022-09-03 08:55:33

我有 Jenkins 失败的案例,除了 Jenkins 重新部署(Jenkins 是 Tomcat 中的一个 web 应用程序)之外,什么都没有帮助。即使是新作业也会因PermGen空间错误而失败,但所有设置都很好(所有这些参数都可以)。关键是重新部署后,一切都像魅力一样工作。但这是一个苛刻的解决方案。我想知道,是否有一些选项可以回滚Jenkins状态。提前致谢。-XX:PermSize

更新:好吧,对于那些可能面临类似情况的人来说,这是我所想到的。那些写道最好将Jenkins部署为Tomcat模块的人可能没有遇到任何类型的项目部署的问题(使用Jenkins Deploy插件或Maven's )。我没有遇到单独安装 Jenkins 时描述的任何问题。呼!tomcat-maven-pluginpom.xml


答案 1

对于PermGen空间错误真正重要的一个设置是(它必须是这样的):

-XX:MaxPermSize=512m

一个破折号,个大X,大M,大P,大S,无空格,大小在兆,小写m。如果你搞砸了它,它将被忽略。我看到的所有PermGen修复程序中有99%“不起作用”是因为有人没有严格遵循说明,并且使用Big-M表示兆字节而不是小m,或者在前面放置两个破折号而不是一个。

此外,512兆格只是一个起点...进行调整以适合您的系统。


答案 2

我曾经遇到过类似的错误:jenkins正在执行maven构建,其中包括surefire测试执行。我发现我正在使用的 maven 版本(V2 某些版本)没有将我的 JVM 内存选项传递到 surefire 进程分叉,因此一些测试失败了。MAVEN_OPTS,JAVA_OPTS,没有一个奏效。

我最终直接在设置中传递了我的内存选项.xml,PermGen错误消失了。

以下是我使用的选项(该应用程序相当大):

-Xms512m -Xmx1024m -XX:烫发大小=512m -XX:最大Perm大小=1024m