首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins中的PermGen错误

Jenkins中的PermGen错误
EN

Stack Overflow用户
提问于 2012-06-21 11:54:13
回答 6查看 29.1K关注 0票数 15

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

Update:好吧,对于那些可能会面临类似情况的人来说,下面是我想出来的。那些认为最好将Jenkins部署为Tomcat模块的人可能不会遇到任何类型的项目部署的问题(使用Jenkins部署插件或使用Maven的pom.xml中的pom.xml)。在单独安装Jenkins时,我没有描述过的任何问题。呼!

EN

回答 6

Stack Overflow用户

发布于 2012-06-21 13:57:41

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

代码语言:javascript
复制
-XX:MaxPermSize=512m

One dash,2大Xs,Big- m,Big-P,Big-S,no-空格,size-in-megs,小写m。如果你搞砸了,就会忽略它。在我所看到的所有PermGen修复中,99%的“不工作”是因为有人没有精确地遵循指令,使用大M来代替小M,或者在前面放两个破折号而不是一个。

另外,512米只是一个起点.调整以适应您的系统。

票数 34
EN

Stack Overflow用户

发布于 2012-06-21 12:49:10

我曾经经历过类似的错误: jenkins正在执行maven构建,其中包括了强制测试的执行。我发现我使用的maven版本(V2之类的东西)并没有将我的JVM内存选项传递给万无一失的进程分叉,因此有些测试失败了。MAVEN_OPTS,JAVA_OPTS,都没有工作。

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

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

-Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m

票数 6
EN

Stack Overflow用户

发布于 2012-06-21 13:44:18

完全未经测试的建议,但this answer建议在启动Tomcat时使用-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled (尽管在完全不同的上下文中存在问题)。然而,This answer表明CMSPermGenSweepingEnabled在Java6上是不必要的,为了使CMSClassUnloadingEnabled有效,必须使用-XX:+UseConcMarkSweepGC

至少,假设底层问题是由Tomcat实例在-XX:+CMSClassUnloadingEnabled空间中不必要地维护的类造成的,那么-XX:+CMSClassUnloadingEnabled就可以做到这一点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11137578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档