• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

PermGen Memory issue in WebLogic 10

 
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have issue on the permanent generation space which will increase until it hit Java.lang.OutOfMemoryError: PermGen space.


1. The Java.lang.OutOfMemoryError: PermGen space can be solved by increase the MaxPermSize. Is it same if just increase the PermSize without MaxPermSize?

2. Where can get the gc log file if -verbosegc -XX:+PrintGCDetails parameters was added?

3. How to trace unloading of classes by adding parameter -XX:+TraceClassUnloading?

4. What action can be taken if the issue still happen after increasing of MaxPermSize?


Below are some info for the server.

OS Version = Solaris 10
WebLogic Version = WLS 10 MP1
JDK Version = jdk150_11
 
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here is an article on what causes PermGen problems. It links to an article on how to fix them. In my experience, third-party libraries can be the cause (I'm looking at you, Struts 2), so you may be left with no alternative than an occasional shutdown-startup cycle.
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

Anyone can help on question below?
Is it mean that the maximum permanent generation size can up to 512MB if we set -XX:PermSize=512m even we did not set the *MaxPermSize*?
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Joe Ess,

Can give some example of what kind of third-party libraries can cause this issue?
 
Bartender
Posts: 1638
IntelliJ IDE MySQL Database Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

hooihooi lim wrote:Hi,

Anyone can help on question below?
Is it mean that the maximum permanent generation size can up to 512MB if we set -XX:PermSize=512m even we did not set the *MaxPermSize*?



PermSize is the initial permanent generation size. Maximum size is by default 32m for client machines and 64 for servers. In this case, I *think* since you are not defining it, it would be taken equal to PermSize.
In my opinion, it is better to give MaxPermSize instead of PermSize so that you do not take the memory if not required.
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Nitesh Kant wrote:
PermSize is the initial permanent generation size. Maximum size is by default 32m for client machines and 64 for servers. In this case, I *think* since you are not defining it, it would be taken equal to PermSize.
In my opinion, it is better to give MaxPermSize instead of PermSize so that you do not take the memory if not required.



Hi,
Thanks for the info.
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Anyone have experience that the issue will be solved after upgrade WLS from MP1 to MP2?

Ref : http://edocs.bea.com/wls/docs100/issues/known_resolved.html
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

Anyone know how to trace unloading of classes with JVM argument -XX:+TraceClassUnloading?
 
Nitesh Kant
Bartender
Posts: 1638
IntelliJ IDE MySQL Database Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Deon lim wrote:Hi,

Anyone know how to trace unloading of classes with JVM argument -XX:-TraceClassUnloading?



I am not sure but i dont think there is a way to put all the GC debug messages like these to a file.
The traces like these gets printed on the Standard out stream.
 
Joe Ess
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Deon lim wrote:Anyone have experience that the issue will be solved after upgrade WLS from MP1 to MP2?
Ref : http://edocs.bea.com/wls/docs100/issues/known_resolved.html



I don't think so. The article I linked explains why. It has to do with the way application servers load classes. They can't automatically release them when an application is redeployed and PermGen space is eventually exhausted. I have seen the same problem in WLS 10.3.
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

Can WebLogic 10 MP1 work with JDK6?
 
Joe Ess
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here is the list of Supported Operating Systems. Select your OS from that list and you will get a page of supported JDK versions.
 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Since you're running WebLogic I would consider switching to JRockit. It doesn't have permgen issues and the JVM has been optimized for WLS.
 
Deon lim
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

Anyone can help on log below?
Is it mean that the class sun.reflect.GeneratedSerializationConstructorAccessor & class sun.reflect.GeneratedMethodAccessor not able to unload?

[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor1]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor15]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor91]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor27]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor56]
[Unloading class sun.reflect.GeneratedMethodAccessor33]
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Deon,

Did you ever manage to find a solution or an explanation for your problem? I'm also seeing this with WLS10.

Thanks,
Leo.
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I wrote an article around my experience around this. It may be helpful and is at http://anshuiitk.blogspot.com/2010/11/excessive-full-garbage-collection.html
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic