增加permgen空间

时间:2010-06-09 07:34:48

标签: java tomcat tomcat6 permgen

我正在使用tomcat 6.0,当我正在索引时(而不是在我启动tomcat时),我有一个permgen空间错误。
我怎么能增加那个空间?

由于

5 个答案:

答案 0 :(得分:142)

您可以使用:

-XX:MaxPermSize=128m

增加空间。但这通常只会推迟不可避免的事情。

您还可以启用PermGen进行垃圾回收

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

通常在进行大量重新部署时会发生这种情况。我很惊讶你使用像索引这样的东西。使用virtualvm或jconsole来监控Perm gen空间,并在预热索引后检查它的水平。

也许你应该考虑改用另一个JVM,比如IBM JVM。它没有永久生成,并且不受此问题的影响。

答案 1 :(得分:11)

对于tomcat,您可以使用

增加permGem空间
 -XX:MaxPermSize=128m

为此,您需要在tomcat / bin文件夹中创建一个名为setenv.sh的文件(如果尚未存在),并在其中包含以下行

   export JAVA_OPTS="-XX:MaxPermSize=128m"

参考:http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat

答案 2 :(得分:3)

您还可以通过IDE中的VM参数增加它。就我而言,我使用的是运行在Eclipse上的Tomcat v7.0。为此,请双击您的服务器(Tomcat v7.0)。点击“打开启动配置”'链接。转到'参数'标签。将-XX:MaxPermSize = 512m添加到VM参数列表中。点击“应用”#39;然后' OK'。重启你的服务器。

答案 3 :(得分:2)

如果您发现内存设置没有被使用,并且为了更改内存设置,我在\ bin文件夹中使用了tomcat7w或tomcat8w。然后会弹出以下内容:

tomcat monitor

单击Java选项卡并添加arguments.restart tomcat

答案 4 :(得分:0)

在类似Debian的发行版中,您可以在/etc/default/tomcat[67]

中进行设置