我正在使用 tomcat 6.0,并且在我编制索引时(不是在我启动 tomcat 时),我有一个 permgen 空间错误。
我怎样才能增加那个空间?
谢谢
您可以使用 :
-XX:MaxPermSize=128m
来增加空间。但这通常只会推迟不可避免的事情。
您还可以启用 PermGen 进行垃圾收集
-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
通常在进行大量重新部署时会发生这种情况。我很惊讶你使用索引之类的东西。使用 virtualvm 或 jconsole 监控 Perm gen 空间并在预热索引后检查它是否稳定。
也许您应该考虑更改为另一个 JVM,例如 IBM JVM。它没有永久代并且不受此问题的影响。
对于 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
您还可以通过 IDE 中的 VM 参数来增加它。就我而言,我使用的是在 Eclipse 上运行的 Tomcat v7.0。为此,请双击您的服务器 (Tomcat v7.0)。单击“打开启动配置”链接。转到“参数”选项卡。将 -XX:MaxPermSize=512m 添加到 VM 参数列表中。单击“应用”,然后单击“确定”。重新启动您的服务器。
如果你发现没有使用内存设置,为了更改内存设置,我使用了 \bin 文件夹中的 tomcat7w 或 tomcat8w。然后应该会弹出以下内容:
单击 Java 选项卡并添加 arguments.restart tomcat
在类似 Debian 的发行版中,您将其设置为/etc/default/tomcat[67]