当我将PermGen设置为128M以上时,为什么我的Sun JVM无法初始化?

时间:2009-06-18 05:51:47

标签: tomcat permgen

我需要增加我的PermGen。目前,我将以下命令作为命令行参数传递:

-XX:PermSize=128m -XX:MaxPermSize=128m

这很有效。但是,如果我尝试增加值,我的JVM无法初始化,给我这个错误:

[2009-06-18 01:39:44] [info] Error occurred during initialization of VM [2009-06-18 01:39:44] [info] Could not reserve enough space for object heap [2009-06-18 01:39:44] [info] [2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed

具体来说,我正在尝试在包含的 JRE6 中启动 Tomcat ,但我认为这不重要。

编辑:我正在使用2GB的RAM运行Win2k3 VM映像。我使用 Monitor Tomcat 应用程序使用以下参数启动JVM:

初始内存池: 1024 ,最大内存池: 1536

-XX:PermSize=128m -XX:MaxPermSize=128m -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0 -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0 -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed -Djava.io.tmpdir=E:\tomcat\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties

3 个答案:

答案 0 :(得分:4)

尝试用-Xmx512m给它一个更大的堆(这将给出512 MB)

您使用了哪些其他内存参数?你的机器有多少内存?你是在32位还是64位机器上?

答案 1 :(得分:2)

Perm Gen是Heap的补充,因此请检查流程 - 您需要拥有1.5 GB以上的2G。

答案 2 :(得分:1)

我有2GB内存,我使用设置-Xmx1024m -XX运行tomcat:PermSize = 512m -XX:MaxPermSize = 512m。这通常运行良好。