开发者

Where is Java PERM generation?

开发者 https://www.devze.com 2023-03-05 00:24 出处:网络
When you start up a JVM WHERE it the PERM GEN allocated?Is it part of the main HEAP or is it in addition to the HEAP size.

When you start up a JVM WHERE it the PERM GEN allocated? Is it part of the main HEAP or is it in addition to the HEAP size.

for example if I use the following parameters:

-server -Xms10G -Xmx10G -XX:MaxPermSize=1536M 

Is the total size of Java going to be 6G + 512M or 6.5G for Java or is the perm generation setup inside of the HEAP meaning that all running application will have 6G - 512M = 5.5MB for young / tenured(aka OLD) and Perm?

This graphic in 4. Sizing the Generations seems to imply it may be outside of the HEAP but I can't seem to find some that states the for sure. http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

Looking at the output from jstat it would seem it would be on the outside of main HEAP but this may be just the way it is reported.

[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)

If possible please provide a link to documentation showing you case to be true.


-server -Xms10G -Xmx10G -XX:MaxPermSize=1536M

The total of the heap and perm gen is going to be 11.5 GB. However there are other areas of memory, e.g. direct memory which can be just as big. Another area is shared libraries which is basically a fixed size.

e.g. you can set

-mx128m -XX:MaxPermSize=1g

If the perm gen was insize the heap this would fail.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号