Larry Thanks for the note. A few questions A) my understanding of GC makes me think that no garbage can be generated when young generation is being collected. As mentioned that for young generation we use the default stop the world collector. When that happens all other application threads stop. Hence no garbage can be generated. Can you explain why do you think that more garbage can be created (to fill the survivor space). Is my understanding of stop the world garbage collector incorrect
Thanks for letting me know Akash Jauhar Sapient YIM: akashjauhar AIM: akashjauhar e-mail: [EMAIL PROTECTED] -----Original Message----- From: Larry Isaacs [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 23, 2004 12:39 PM To: Tomcat Users List Subject: RE: tomcat 3.3.1 takes a high time for Minor GC I'm not a GC expert, so please note that the following speculation is based upon memories of some GC document I read a while back. I vaguely recall that GC performance drops if the survivor space fills up while collecting the young generation. I think the result is that what might have been short-lived objects instead get pushed into the tenured generation because they weren't short-lived enough. >From your log output I note that about the "231968" mark, the time between GCs drops dramatically. Evidentially the rate of garbage generation has substantially increased. I believe if the rate is too high, temporary objects get "tenured" for the reason stated above. Handling these "tenured temporary" objects adds to the GC time. Even more so if they are small and lots of them. It may help to try to determine what has caused the generation of garbage to increase so much. If a culprit is found, reducing the amount of garbage is the best way to improve performance. If that isn't possible, then GC tuning may be your only alternative. I'm not aware of anything in Tomcat 3.3.1 that would account for such garbage generation. One of Tomcat 3.3.x's strengths over Tomcat 3.2.x is the reduced garbage generation from the overhead of handling requests. I have experienced the pleasure of watching Optimizeit show me how a JSP page, via some support classes, was creating ~3.7Gb of StringBuffer/String/char[] data. This made finding what to fix much easier. I don't know in your case if you will need a profiler to get a good picture of where the garbage is coming from. HTH. Cheers, Larry > -----Original Message----- > From: Akash Jauhar [mailto:[EMAIL PROTECTED] > Sent: Tuesday, March 23, 2004 12:53 PM > To: Tomcat Users List > Subject: tomcat 3.3.1 takes a high time for Minor GC > > > Hi All > > Cisco CNAMS application runs on the following platform > OS: Solaris 9 > Webserver: Apache 1.3.27 > JDK: JDK 1.4.2 build 28 > Servlet Engine: tomcat 3.3.1a > > We are noticing some weird GC behaviour when the tomcat does > Minor GC. I > am pasting some garbage collection logs below > > 231867.984: [GC 231867.985: [DefNew: 127232K->3840K(127232K), > 0.1125831 > secs] 288818K->170206K(350384K), 0.1128485 secs] > 231946.970: [GC 231946.970: [DefNew: 127232K->3840K(127232K), > 0.1348222 > secs] 293598K->177196K(350384K), 0.1350464 secs] > 231968.052: [GC 231968.052: [DefNew: 127232K->3840K(127232K), > 0.1818662 > secs] 300588K->182066K(350384K), 0.1821628 secs] > 231969.314: [GC 231969.315: [DefNew: 127232K->3543K(127232K), > 16.4172505 > secs] 305458K->185389K(350384K), 16.4175191 secs] > 231987.248: [GC 231987.248: [DefNew: 126935K->3840K(127232K), > 10.7419554 > secs] 308781K->189356K(350384K), 10.7422411 secs] > 231999.225: [GC 231999.225: [DefNew: 127232K->3840K(127232K), > 16.1320322 > secs] 312748K->196413K(350384K), 16.1323798 secs] > 232015.949: [GC 232015.950: [DefNew: 127232K->3840K(127232K), > 42.2998381 > secs] 319805K->201339K(350384K), 42.3001041 secs] > 232058.781: [GC 232058.781: [DefNew: 127232K->3840K(127232K), > 146.5896470 secs] 324731K->206361K(350384K), 146.5898922 secs] > 232206.831: [GC 232206.832: [DefNew: 127232K->3840K(127232K), > 110.7859999 secs] 329753K->211019K(350384K), 110.7862726 secs] > 232318.209: [GC 232318.209: [DefNew: 127232K->3840K(127232K), > 68.5541489 > secs] 334411K->215994K(350384K), 68.5544029 secs] > 232387.893: [GC 232387.893: [DefNew: 127232K->3840K(127232K), > 126.8755081 secs] 339386K->221793K(350384K), 126.8757738 secs] > 232515.276: [GC 232515.276: [DefNew: 127232K->3840K(127232K), > 139.7813258 secs]232655.058: [Tenured: 223686K->154822K(223792K), > 278.7132327 secs] 345201K->154822K(351024K), 418.4964431 secs] > 232934.349: [GC 232934.349: [DefNew: 123392K->3840K(127232K), > 164.3069723 secs] 278214K->163782K(385272K), 164.3072616 secs] > 233099.848: [GC 233099.848: [DefNew: 127232K->3840K(127232K), > 91.4000872 > secs] 287174K->169894K(385272K), 91.4005897 secs] > 233191.652: [GC 233191.652: [DefNew: 127232K->3840K(127232K), > 204.1755072 secs] 293286K->176929K(385272K), 204.1757747 secs] > 233396.272: [GC 233396.272: [DefNew: 127232K->3840K(127232K), > 101.8621946 secs] 300321K->183426K(385272K), 101.8624498 secs] > > > Note how the minor collection takes high GC times > (highlighted in bold). > It takes as high as 204 seconds. We are using the default GC algo both > for the old generation and the young generation(which happens > to be stop > the world collector for young generation and mark - compact collector > for the old generation). Our heap size when the tomcat starts > is bounded > by 256 MB on the lower side to 778 MB on the higher side. > > I am unable to understand what would cause tomcat to do GC for such a > long time esp in the young generation. what is even more wierd is that > the time between consecutive GC for young generation is > almost equal to > time for which the GC happened . what would cause the young generation > to fill so quickly. > > Anyone has any ideas what is going on ? > > -Akash > > --------------------------------------------------------------------- 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]