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

发布于 2024-07-24 04:23:13 字数 1242 浏览 9 评论 0原文

我需要增加我的永久代。 目前我将以下内容作为命令行参数传递:

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

这有效。 但是,如果我尝试增加这些值,我的 JVM 无法初始化,并给出以下错误:

[2009-06-18 01:39:44] [info] Error generated while iteration of VM [2009-06-18 01:39:44] [info] 无法为对象堆保留足够的空间 [2009-06-18 01:39:44] [信息] [2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed

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

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

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

- XX:PermSize=128m -XX:MaxPermSize=128m -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloading启用 -XX:+使用ConcMarkSweepGC -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

I need to increase my PermGen. Currently I pass the following as command line parameters:

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

This works. If I try to increase the values, however, my JVM fails to initialize, giving me this error:

[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

Specifically, I'm trying to boot up Tomcat in the included JRE6, but I don't think this should matter.

Edit: I'm running Win2k3 VM image with 2GB of RAM. I boot the JVM using the Monitor Tomcat application with the following parameters:

Initial memory pool: 1024, maximum memory pool: 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

段念尘 2024-07-31 04:23:13

尝试使用 -Xmx512m 为其提供更大的堆(这将提供 512 MB)

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

Try to give it a bigger heap with -Xmx512m (this will give 512 MB)

What other memory parameters do you use? How much memory is there in your machine? Are you on a 32-bit or 64-bit machine?

情徒 2024-07-31 04:23:13

Perm Gen 是堆的附加部分,因此请检查进程 - 您需要 2G 中有 1.5+ GB 的可用空间。

Perm Gen is additive to Heap, so check the processes -- you'll need to have 1.5+ GB of your 2G available.

酒与心事 2024-07-31 04:23:13

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

I have 2GB of memory and I run tomcat with settings -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m. This usually runs fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文