The ratio (have to look at a graph), but might have done the trick because you 
were not moving objects out of survivor generations to old/tenur generations 
fast enough....ala creating a lot of new objects (tons of them) and not having 
enough memory in the new space and the objects couldn't be moved into old space 
fast because of the kickout algorithm or something..memory leak maybe or just a 
ton of "new" objects and not enough of them being released to old space because 
of so many being created at the same times.  I've had weird stuff happen before 
with different generation sizings.  I've even had it happen that the VM would 
have long lock or "pause" times trying to figure out what it could move into 
old as new objects were being created so much and not dying quick enough to 
just be dumped straight from eden, so they would dump into survivor space and 
then seemed (according to memory graphs) not to move into the tenur and kept 
the survivor space pretty full constantly.  Basic
 ally if the VM runs a garbage collection on the new space and can't free 
enough memory then runs a full and can not free enough memory it throws an out 
of memory error depending on the percentage free....I'm not exactly what it 
does if enough is free yet the survivor space isn't staying free enough...might 
keep trying to run full collections or maybe if something happens that a 
certain amount of time passes it simply throws an out of memory error...?
 
 However it's probably mute If you get an error talking about PermGen space as 
the cause then you have a limit on PermGen which is too small or the default 
isn't large enough.  PermGen is where your loaded classes and static 
information go.  So, if you have a lot of classes and have a lot of static 
variables and much data in these static variables (strings etc) then you're 
going to get out of memory errors if the space you or the VM have allocated 
isn't large enough to hold the information.  Basically you may have a threshold 
where some users are logged in and working....they haven't accessed all of the 
classes yet.  Some other users log in later on in the day....bam all the 
classes in your app load and then all of your static information gets put into 
Perm space.  OOME and you can't do anything because 1) You can't load any more 
classes and 2) You can't create the static data for the classes trying to 
load....thus the VM can't continue to operate with your classes and instru
 ctions because it can't load the request classes and information.
 
 Wade

----- Original Message ----
From: Stephen Caine <[EMAIL PROTECTED]>
To: Tomcat Users List <users@tomcat.apache.org>
Sent: Thursday, December 22, 2005 20:00:59
Subject: Re: java.lang.OutOfMemoryError: PermGen space 

Chuck,
>
> Sorry, but that's wrong.  It's the ratio between the size reserved  
> for newly allocated objects (New Generation) and that used for long- 
> lived objects (Tenured or Old Generation)...

I stand corrected.  In either case though, changing the ratio had a  
dramatic effect on our 'out of memory' problems.  Any insights as to  
why?

Stephen Caine
CommonGround Softworks, Inc.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to