【发布时间】:2011-05-11 18:32:48
【问题描述】:
当你启动一个 JVM 时,PERM GEN 是在哪里分配的?它是主 HEAP 的一部分还是 HEAP 大小的补充。
例如,如果我使用以下参数:
-server -Xms10G -Xmx10G -XX:MaxPermSize=1536M
Java 的总大小是 6G + 512M 还是 Java 的 6.5G 或者是 HEAP 内部的 perm 生成设置,这意味着所有正在运行的应用程序对于年轻 / 终身(又名 OLD)将有 6G - 512M = 5.5MB ) 和烫发?
4. Sizing the Generations 中的这张图似乎暗示它可能在 HEAP 之外,但我似乎无法找到一些可以肯定的说明。 http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
查看 jstat 的输出,它似乎位于主 HEAP 的外部,但这可能只是它报告的方式。
[jboss@pts03-taps-03 ~]$ jstat -gccapacity PID
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
85184.0 85184.0 85184.0 8512.0 8512.0 68160.0 10400576.0 10400576.0 10400576.0 10400576.0 21248.0 1572864.0 1387840.0 1387840.0 431 43
OGCMX = 10400576.0 (almost 10G OLD GEN)
NGCMX = 85184.0 (OGCMX + NGCMX = very close to 10G NEW GEN)
PGCMX = 1572864.0 (1.5G PERM GEN)
如果可能,请提供指向您的案例是否属实的文档链接。
【问题讨论】: