89

我正在使用 tomcat 6.0,并且在我编制索引时(不是在我启动 tomcat 时),我有一个 permgen 空间错误。
我怎样才能增加那个空间?

谢谢

4

5 回答 5

143

您可以使用 :

-XX:MaxPermSize=128m

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

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

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

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

也许您应该考虑更改为另一个 JVM,例如 IBM JVM。它没有永久代并且不受此问题的影响。

于 2010-06-09T07:59:19.523 回答
13

对于 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

于 2013-05-28T08:29:47.690 回答
3

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

于 2014-09-25T19:31:23.897 回答
3

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

Tomcat监视器

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

于 2016-02-23T15:02:37.553 回答
0

在类似 Debian 的发行版中,您将其设置为/etc/default/tomcat[67]

于 2017-02-08T09:00:45.167 回答