【发布时间】:2011-03-01 12:54:28
【问题描述】:
我正在使用 tomcat 6.0,当我在索引时(不是在我启动 tomcat 时),我有一个 permgen 空间错误。
我怎样才能增加那个空间??
谢谢
【问题讨论】:
-
我以前检查过类似的问题,但不要帮助我。 -XX:NewSize=2.125m 去哪儿了?
标签: java tomcat tomcat6 permgen
我正在使用 tomcat 6.0,当我在索引时(不是在我启动 tomcat 时),我有一个 permgen 空间错误。
我怎样才能增加那个空间??
谢谢
【问题讨论】:
标签: java tomcat tomcat6 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
【讨论】:
export JAVA_OPTS="-XX:MaxPermSize=128m" 为我使用 Clojure + lein repl
您也可以通过 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]
【讨论】: