A good article : http://java.sun.com/docs/hotspot/gc1.4.2/ (Java's Sun site)
Memory reserved by Tomcat via JVM is cut in three groups (more in reality...) : - Immortal - New object - Old Object Imaging you're reserved 512Mo for Tomcat. If you don't specify dispatch of the memory (at the Tomcat startup) you will be have the following (it's a funny example ^^ and certainly impossible in reality): - Immortal 64Mo - New object 224 Mo - Old Object 224 Mo If your application need to create a lot of immortals Tomcat will crash fastly than if you're are specifying more memory for immortal. Another funny dispatching : - Immortal 224Mo - New object 64 Mo - Old Object 224 Mo If your application need to create a lot of new objects, Tomcat will crash if garbace collector take his time to do his job. Regards, leakim -----Original Message----- From: Dhruva B. Reddy [mailto:[EMAIL PROTECTED] Sent: dimanche 1 février 2004 17:12 To: Tomcat Users List Subject: RE: verbose gc Check out Jeff Tulley's responses to my post "OutOfMemoryError with Seemingly Plenty of Memory". You may also want to check out Sun's forums on the Java Virtual Machine. You will find a host of information on JVM tuning. As I said in my post, we would get the OutOfMemoryError about every 24 hours. I tried setting MaxPermSize to 256MB (haven't been able to determine the default value for Sun's JVM, but it's 64MB for HP's JVM). This sets the size of the permanent generation, into which longer-lived objects and class definitions are loaded (we have over 3500 classes over multiple web apps). I wasn't going to say anything to this list without being more certain, but Tomcat has been running with no problems since Friday afternoon (47 hours as of this writing)--the longest it's lasted all month. HTH, Dhruva --- "Mohammed Javid - CTD, Chennai." <[EMAIL PROTECTED]> wrote: > Hi, > > Thanks for all the help. > > We did loadtesting of our application running on tomcat 4.1.27 with > jdk1.4 > on solaris, we enabled the GC stack to get details of how GC works, we > ran for 10000 users with 5 users logging every 30 secs. We set min and > max heap size as 512mb The test ran perfectly for first 2 hours and > total heap ocupied was only 10448K out of total of 519168K , later as > test case progessed for around 10 hours the tomcat stopped responding > and it has thrown OutOfMemoryError , but as can be seen from GC output > before outofmemory error the total heap occupied was only 30846K, > though we have lot of more space on heap still tomcat crashed and give > connectiontimeout for remaining pages. > When we see the size occupied from top command , when tomcat is > started it was 622Mb and at time of crash it was 723MB. > > We are looking for following clarifications > 1 What could be the reason for tomcat to crash though we have lot of > heap remaining. > 2 Why the memory occupied as seend from top command increased though > there was lot of space on heap > 3 We noticed that though heap has space when size seen from top > command reached 720 to 270 mb tomcat crashes. > 4 How to make tomcat running without crash , certianly heap is not > problem in this case > 5 Is this a known issue, Any optimization to be done to avoid this > problem. > > > The below is the output of the GC after which we get outofmemory > error > > [GC 55404.101: [DefNew Desired survivor size 2621440 bytes, new > threshold 31 > (max 31) > - age 1: 359488 bytes, 359488 total > - age 2: 314104 bytes, 673592 total > : 167034K->657K(169600K), 0.2717012 secs] 197223K->30846K(519168K), > 0.2745516 secs] > java.lang.OutOfMemoryError: unable to create new native thread > at java.lang.Thread.start(Native Method) > at > org.apache.catalina.connector.http.HttpProcessor.threadStart(HttpProcessor.j > ava:1178) > at > org.apache.catalina.connector.http.HttpProcessor.start(HttpProcessor.java:12 > 62) > at > org.apache.catalina.connector.http.HttpConnector.newProcessor(HttpConnector. > java:937) > at > org.apache.catalina.connector.http.HttpConnector.createProcessor(HttpConnect > or.java:868) > at > org.apache.catalina.connector.http.HttpConnector.run(HttpConnector.java:1075 > ) > at java.lang.Thread.run(Thread.java:534) > > > thanks and regards, > Javid > > > -----Original Message----- > > From: Mohammed Javid - CTD, Chennai. > > Sent: Wednesday, January 14, 2004 10:00 PM > > To: '[EMAIL PROTECTED]' > > Subject: RE: verbose gc > > > > we are using tomcat 4.1 withjdk1.3, we have folowing clarifications > > > > 1) [Full GC 34521K->15504K(38328K), 0.5953540 secs] > > [GC 27533K->16335K(38328K), 0.0396336 secs] > > > > is the statements got in catalina.out by adding -server -verbose:gc > in > > catalina.sh > > > > 2) what does the above statements got in catalina.out means, is > garbage > > collection active. > > When i execute top command on solaris and see the memory it shows > size > > and resisdent memory , what is the diference between the two. > > > > 3) I see that gc statements are logged to catalina.out but the > memory > > usage keeps increasing, does it mean there is problem with > > garbage collection, > > > > 4) can we get more information like how many obejcts created / > objects > > destroyed during a gc run, what options to pass to get that > information > > > > thanks > > -----Original Message----- > > From: Mohammed Javid - CTD, Chennai. > > Sent: Wednesday, January 14, 2004 2:18 PM > > To: '[EMAIL PROTECTED]' > > Subject: verbose gc > > > > Hi, > > > > When we give verbose:gc in cataline.sh during startup of tomcat > > where does > > the gc information get logged. > > I am not seeing any information in catalina.out. > > > > thanks. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/ --------------------------------------------------------------------- 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]