JDK7 perm gen leak
scott.oaks at oracle.com
Mon Sep 12 08:03:40 PDT 2011
I am trying to track down a permgen leak in an app we have running JDK
7. When I run jmap -permstat, I'm a little confused by the output.
The first line of the jmap output is:
304286 intern Strings occupying 48081424 bytes.
But I thought that the interned strings were moved out of permgen in JDK
7? Maybe that output is just left over from JDK 6.
The bigger issue is the output from the class loaders -- every line in
the output says that the classloader in question is dead, e.g:
0x000000019a1c2770 0 0 0x000000019a1c27d0 dead
weblogic/utils/classloaders/GenericClassLoader at 0x0000000140ae6950
Well, there is one exception; the bootstrap classloader is still showing
that it is live. Still, at least some of those weblogic class loaders
must still be alive, as the app is still running and using classes
loaded by them. I hope that many more are actually dead (else they are
the source of the leak) -- but I am not sure how to tell how many are
actually dead vs. alive. I have to go look at the dump and trace the
classloaders back anyway, so it isn't really a big issue -- but it is a
little curious to me.
More information about the hotspot-dev