Jenkins中的java PermGen错误
我遇到过詹金斯失败的案例,但詹金斯的重新部署(詹金斯是Tomcat中的一个网络应用程序)帮了我的忙。即使是新作业也因PermGen空间错误而失败,但所有设置都很好(所有这些-XX:PermSize
参数都是可能的)。关键是在重新部署之后,一切都像一个魔咒一样工作。但这是一个严酷的解决方案。我想知道,是否有一些选项可以推翻詹金斯州。提前谢谢
更新:好吧,对于那些可能面临类似情况的人,以下是我的想法。那些写道最好将Jenkins部署为Tomcat模块的人可能没有遇到任何类型的项目部署问题(使用Jenkins部署插件或Maven的pom.xml
)。单独安装Jenkins时,我没有遇到我描述的任何问题。唷
# 1 楼答案
完全未经测试的建议,但this answer建议在启动Tomcat时使用
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
(尽管是针对完全不同上下文中的问题)^然而,{a2}表明CMSPermGenSweepingEnabled
在Java6上是不必要的,必须使用-XX:+UseConcMarkSweepGC
才能使CMSClassUnloadingEnabled
有效假设底层问题是由Tomcat实例的PermGen空间中不必要地维护类引起的,那么至少
-XX:+CMSClassUnloadingEnabled
可以做到这一点# 2 楼答案
对于PermGen空间错误来说,一个真正重要的设置是(必须是这个确切地):
One破折号、two大Xs、大M、大p、大S、无空格、大小写为MEG、小写M。如果你搞砸了,它将被忽略。我看到的所有PermGen修复中99%的“不起作用”是因为有人没有严格按照说明操作,用大M代替小M来表示兆字节,或者在前面放两个破折号,而不是一个破折号
此外,512兆只是一个起点。。。调整以适应你的系统
# 3 楼答案
我通过向
jenkins.conf
添加以下内容,解决了Linux中的PermGen
错误: