Re: memory question - heap size and windows process
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Leo, On 1/24/2011 5:15 PM, Leo Donahue - PLANDEVX wrote: > Memory Usage, not Memory Usage Delta. I have the following choices in Microsoft Windows Task Manager: Memory - Working Set Memory - Peak Working Set Memory - Working Set Delta Memory - Private Working Set Memory - Commit Size Memory - Paged Pool Memory - Non-paged Pool Process Explorer shows several other fields as well. > Yes, but asking the right question is the hardest part. Er, okay. Well, with a 512MiB Java heap, I would expect more than 512MiB of memory usage. That's the best I can do right now :) - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk0+PHAACgkQ9CaO5/Lv0PDL8ACfZPGxv0zqvlwgx90N0YvxwOKq VN0AoLLOYK9LYrbwMBs+7xzW/AHIBhaT =pyde -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: memory question - heap size and windows process
Chris, Sorry about the long delay, Exchange took a break this morning. >-Original Message- >From: Christopher Schultz [mailto:ch...@christopherschultz.net] >Subject: Re: memory question - heap size and windows process > >Leo, > >On 1/24/2011 10:30 AM, Leo Donahue - PLANDEVX wrote: >> Is there a correlation between the heap size Tomcat is using and the >memory allocated to the Tomcat process running as a windows service - >depicted in task manager, or are these not related to one another? > >Well, one would expect that as heap size increases, so does the total >amount of memory allocated to the process, but I'm guessing you were >hoping for something more helpful :) > >> Tomcat 6.0.29 - windows service - 512MB initial and max memory > >So you are trying to get a fixed heap size: okay. > >> Tomcat as listed in windows task manager: 312,664k > >That seems strange: I would expect the JVM to pre-allocate the entire >heap (512MiB) plus allocate everything else it might need (PermGen, >stack space, native heap, etc.) so you should exceed 512MiB as soon as >the process launches. > >Which number are you observing in the Windows Task Manager? It can show >you a lot of different memory numbers. > Memory Usage, not Memory Usage Delta. >> >> Tomcat as listed in jvisualvm: >> >> Heap >> Size: 518,979,584 B Used: 175,853,040 B >> Max: 518,979,584 B > >That looks right. > >> PermGen >> Size: 33,816,576 B Used: 33,771,424 B >> Max: 67,108,864 B > >Okay, so you have 512MiB of Java heap and 30MiB of PermGen so your >process should take at minimum 542MiB of space. I'd be shocked if you >had less than a 300MiB virtual size, though the memory might not >actually be used at this point, so Microsoft Windows might not report >it. > >I don't know much about Microsoft Windows, but I know that Linux doesn't >even allocate memory to you until you actually write to it, so the >actual amount of memory allocated to a JVM can be quite modest compared >to the amount you expected to use upon JVM launch. Perhaps Microsoft >Windows does something similar... though that would have to be a >relatively new improvement (Vista/7?). > Using Windows Server 2003 Standard R2 > >Were you hoping to get an answer to a specific question? > Yes, but asking the right question is the hardest part.
Re: memory question - heap size and windows process
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Leo, On 1/24/2011 10:30 AM, Leo Donahue - PLANDEVX wrote: > Is there a correlation between the heap size Tomcat is using and the memory > allocated to the Tomcat process running as a windows service - depicted in > task manager, or are these not related to one another? Well, one would expect that as heap size increases, so does the total amount of memory allocated to the process, but I'm guessing you were hoping for something more helpful :) > Tomcat 6.0.29 - windows service - 512MB initial and max memory So you are trying to get a fixed heap size: okay. > Tomcat as listed in windows task manager: 312,664k That seems strange: I would expect the JVM to pre-allocate the entire heap (512MiB) plus allocate everything else it might need (PermGen, stack space, native heap, etc.) so you should exceed 512MiB as soon as the process launches. Which number are you observing in the Windows Task Manager? It can show you a lot of different memory numbers. > Tomcat as listed in jvisualvm: > > Heap > Size: 518,979,584 B Used: 175,853,040 B > Max: 518,979,584 B That looks right. > PermGen > Size: 33,816,576 B Used: 33,771,424 B > Max: 67,108,864 B Okay, so you have 512MiB of Java heap and 30MiB of PermGen so your process should take at minimum 542MiB of space. I'd be shocked if you had less than a 300MiB virtual size, though the memory might not actually be used at this point, so Microsoft Windows might not report it. I don't know much about Microsoft Windows, but I know that Linux doesn't even allocate memory to you until you actually write to it, so the actual amount of memory allocated to a JVM can be quite modest compared to the amount you expected to use upon JVM launch. Perhaps Microsoft Windows does something similar... though that would have to be a relatively new improvement (Vista/7?). Were you hoping to get an answer to a specific question? - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk09rysACgkQ9CaO5/Lv0PDq9gCfaT2xFUrnwtJvOb89SnWyxCOp nQUAn0vbcWidy7td31QjB+EL9qSXyomP =wngS -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
memory question - heap size and windows process
Is there a correlation between the heap size Tomcat is using and the memory allocated to the Tomcat process running as a windows service - depicted in task manager, or are these not related to one another? Tomcat 6.0.29 - windows service - 512MB initial and max memory Tomcat as listed in windows task manager: 312,664k Tomcat as listed in jvisualvm: Heap Size: 518,979,584 B Used: 175,853,040 B Max: 518,979,584 B PermGen Size: 33,816,576 B Used: 33,771,424 B Max: 67,108,864 B Leo
Re: tomcat memory question
On 28.05.2010 16:26, Caldarale, Charles R wrote: From: Christopher Schultz [mailto:ch...@christopherschultz.net] Subject: Re: tomcat memory question Check may (will?) correct me on this -1 for spelling I believe a full GC might be necessary to clear-out certain resources such as completed Threads or other things that have concrete OS-level counterparts. Not exactly; a full GC is necessary to clear out dead classes and any objects that have migrated into the tenured generation. The OS-level thread structures are gone as soon as the java.lang.Thread instance stops running (returns from the run() method), while the Java instance will hang around as long as there are references to it. Some OS resources will stay allocated until a GC happens *if* the program fails to explicitly close them before the corresponding Java object becomes unreachable (aka sloppy programming), but any kind of GC that discovers such a dead object will release the associated native resources. If you are using a lot of (non-pooled) threads or socket connections, the JVM may be performing full GCs to clean up those resources. GC itself knows nothing about the relationship between Java objects and external resources; only the finalizer for such a class does. Frequent full GCs might just mean that you are using a lot of your memory. As long as you don't get any OutOfMemoryErrors, it appears that your heap is adequate for the load you're experiencing. Assuming there are no memory leaks, it's an indication that the heap is undersized for the application, or that the application is behaving in an unexpected fashion with regard to expected object creation patterns. (An application that creates only long-lived objects, for example - but that's really hard to believe that could happen in a servlet container.) There's a couple of options. We can't decide, because we only see partial data (and none of GC logging, which is much more helpful when enabled correctly): - distributed GC because of RMI. That would fit the once per minute Full GC. But the data presented looks like it's not once per minute, but about once to twice per minute. - full gc triggered by class unloading: but perm doesn't seem to be close to some magic size. - lots of allocation flooding the semi spaces and flowing over into tenured. Did you give us only the jstat lines, which happened after the increase of the FGC counter? The used capacity of tenured (OU/OC) seems to be very small in all lines given, which would be normal and hide the GC reason, if you had thrown away all data lines immediately before a FGC. The same for Perm and class unloading. Regards, Rainer - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: tomcat memory question
> From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Subject: Re: tomcat memory question > > Check may (will?) correct me on this -1 for spelling > I believe a full GC might be necessary to clear-out certain > resources such as completed Threads or other things that have > concrete OS-level counterparts. Not exactly; a full GC is necessary to clear out dead classes and any objects that have migrated into the tenured generation. The OS-level thread structures are gone as soon as the java.lang.Thread instance stops running (returns from the run() method), while the Java instance will hang around as long as there are references to it. Some OS resources will stay allocated until a GC happens *if* the program fails to explicitly close them before the corresponding Java object becomes unreachable (aka sloppy programming), but any kind of GC that discovers such a dead object will release the associated native resources. > If you are using a lot of (non-pooled) threads or socket > connections, the JVM may be performing full GCs to clean > up those resources. GC itself knows nothing about the relationship between Java objects and external resources; only the finalizer for such a class does. > Frequent full GCs might just mean that you are using a lot of your > memory. As long as you don't get any OutOfMemoryErrors, it appears > that your heap is adequate for the load you're experiencing. Assuming there are no memory leaks, it's an indication that the heap is undersized for the application, or that the application is behaving in an unexpected fashion with regard to expected object creation patterns. (An application that creates only long-lived objects, for example - but that's really hard to believe that could happen in a servlet container.) - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.
Re: tomcat memory question
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 塗, On 5/28/2010 3:11 AM, sesfei wrote: >> Are you using a 64-bit or 32-bit JVM? > yes, that is 64-bit JVM. With such a modest heap (1GiB), you might consider running a 32-bit JVM: you might even get better heap performance with smaller pointers. > [root]# jstat -gc {tomcat pid} 3000 [snip] > PC Current permanent space capacity (KB). Ok. >> Can you clarify this last statement? When did the first full GC take >> place? When did the second? When did the third? > > According to the following csv data, we can see full-gc occurred at a > time like this. > > The 1st full-gc tomcat takes place at tomcat is starting. > The 2th full-gc tomcat takes place at 11:48AM > The 3th full-gc tomcat takes place at 1:23 PM > The 4th full-gc tomcat takes place at 2:49 PM > The 5th full-gc tomcat takes place at 4:24 PM > The 6th full-gc tomcat takes place at 4:33 PM > After 7th full-gc , basically 1 full-gc at 1 minutes will be occurred. > is it normal? > Is it because the programm of webapp not well, leading to memory leak? Full GCs happen either when memory is tight or just whenever the GC feels like running. Typically, you'll have a lot of small GCs over a long (relatively speaking) period of time, and then a full GC once and a while. Check may (will?) correct me on this, but I believe a full GC might be necessary to clear-out certain resources such as completed Threads or other things that have concrete OS-level counterparts. If you are using a lot of (non-pooled) threads or socket connections, the JVM may be performing full GCs to clean up those resources. Frequent full GCs might just mean that you are using a lot of your memory. As long as you don't get any OutOfMemoryErrors, it appears that your heap is adequate for the load you're experiencing. Frequent full GCs could be seen as a symptom of having a heap that is just a little too small for your needs: everything you're doing fits in the heap, but in order to stay running, full GC are needed frequently. Try increasing your heap size by 20% and see if the full GCs happen less frequently. Again, as long as you're not running out of memory, you webapp is probably doing just fine. More breathing room in the heap certainly couldn't hurt. Good luck, - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkv/y/cACgkQ9CaO5/Lv0PCQuwCgkcA4H1maoUrHucWRKO3PG6aC PYsAn0Az7dMicym9vDEg6uTJC1gMLILz =mWk9 -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: tomcat memory question
1 5:26 PM,57344,57536,6824.4,0,234432,43051.1,699072,56547.9,86016,84826.9,4554,41.42,140,41.189,82.609 5:27 PM,40384,39552,0,0,241472,9214.1,698048,56042.8,86016,85068.4,4569,41.654,142,41.733,83.387 5:28 PM,33856,34880,0,0,246144,142425.9,699072,72538.1,86016,85050.2,4584,41.858,144,42.29,84.148 5:29 PM,34624,35840,0,0,246912,0,699072,75336.9,86016,86015.9,4600,42.124,146,42.579,84.703 5:30 PM,30528,29696,0,0,251712,8659.2,695168,55628,86016,84960.3,4619,42.419,148,43.386,85.804 5:31 PM,54976,56896,0,0,235712,46460.7,699072,55692.1,86016,84808.4,4638,43.443,150,43.882,87.324 5:32 PM,34240,34432,0,21864.2,244608,0,699072,58492.1,86016,86015.9,4659,43.833,151,43.882,87.715 5:32 PM,34240,35776,0,0,245632,218408.9,699072,70700.8,86016,85191,4660,43.837,152,44.406,88.242 5:33 PM,38528,40320,0,0,248256,2285.5,695808,55692,86016,85211,4676,44.181,154,44.935,89.116 5:34 PM,32896,34176,0,0,252800,39141,696256,56017.4,86016,85089.1,4694,44.492,156,45.527,90.018 5:35 PM,30528,31744,0,0,257792,7705.7,696320,55393.1,86016,84869,4718,44.881,158,46.092,90.973 5:36 PM,31616,32640,0,0,259200,769.5,695552,55291,86016,84766.7,4736,45.171,160,46.649,91.82 5:38 PM,31296,32576,0,0,264320,8005.1,696512,55448.5,86016,85074.6,4766,45.689,162,47.198,92.887 5:46 PM,34048,6848,0,6848,282176,0,696512,99912.5,86016,86015.9,4873,47.811,163,47.198,95.009 5:46 PM,34048,35456,0,0,278592,3379.3,696576,55326.5,86016,84954.3,4874,47.814,164,47.796,95.61 5:54 PM,31488,30336,0,0,286144,237399.7,696768,55451.5,86016,85142.3,4987,49.961,166,48.324,98.285 6:02 PM,32192,30848,0,0,274368,5980.1,696640,55332.1,86016,85108.1,5103,52.314,168,48.916,101.23 6:09 PM,38144,64,0,0,276416,15814.6,697536,56164.9,86016,85325.8,5159,53.572,170,49.522,103.094 6:11 PM,34752,33536,0,0,275456,5206.4,697280,56571.9,86016,85075.4,5167,53.733,172,50.078,103.812 CSV data end - Original Message - From: "Jeffrey Janner" To: "Tomcat Users List" Sent: Friday, May 28, 2010 1:26 AM Subject: RE: tomcat memory question -Original Message- From: Christopher Schultz [mailto:ch...@christopherschultz.net] Sent: Thursday, May 27, 2010 9:40 AM To: Tomcat Users List Subject: Re: tomcat memory question -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 塗, On 5/27/2010 4:51 AM, 塗 wrote: > there is a problem with my webapp. > > web operating environment: > tomcat5.5.27 + Apache/2.2.3 + jdk1.5.0_13 + Linux_x86_64 > > [below] is my manual configurations for tomcat JVM: > CATALINA_OPTS="-Xms1024M -Xmx1024M > -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false" Are you using a 64-bit or 32-bit JVM? > When my webapp is started, I use the jvm's own tools(jstat) to trace the > garbage collections. Ok. > the Utilization rate of the PC capacity is always 100%. is it normal? What is "PC" (sorry, the jstat man page sucks)? What is the command you used to produce your jstat output? Well, PC is apparently Permanent Capacity in KB, and PU is the current Permanent Utilization (not to be confused with PermGen apparently). Taking his data a sticking it in a spreadsheet (to make it readable) shows that PC is increasing and keeping slightly ahead of PU. I'd say nothing to worry about unless PC is starting to reach PGCMX (which is? Try including the -gccapacity option). Looks like normal GC at work to me. > Firstly the 1 Full GC is occurrenced within 1 hour, > 5 hours later that took place within 1 hour 100 Full GC. > is it normal? Can you clarify this last statement? When did the first full GC take place? When did the second? When did the third? Are you saying that you get one full GC in one hour, then 5 hours for the second, then 100 full GCs all close together? The OPs original statement makes no sense in light of the data give. There is no Full GC count line in his data (though doc says there should be: http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html). The doc seems to imply that the GC times should be cumulative from start, so it looks like he's done some Full GC between each sample taken (about 7 secs/hr.) It would be really helpful if he had listed his jstat options. All the actual capacity/utilization numbers appear to be rising and falling over time in apparent relation to normal usage. The permanent util number doesn't seem to drop often, so he may have a memory leak. (I'd seek the opinion of someone more versed than me in reading jstat output though.) It would have been useful if he had a specific issue he was having and trying to resolve. That suggests to me that your webapp is allocating memory and never releasing it. This could be due to many reasons such as a memory leak (which ought to be fixed) or caching (which may be working as designed). Is your webapp performing well? GC activity doesn't necessarily mean that anything is wrong. - -chris -BEGIN PGP SIGNAT
RE: tomcat memory question
> -Original Message- > From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Sent: Thursday, May 27, 2010 9:40 AM > To: Tomcat Users List > Subject: Re: tomcat memory question > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > 塗, > > On 5/27/2010 4:51 AM, 塗 wrote: > > there is a problem with my webapp. > > > > web operating environment: > > tomcat5.5.27 + Apache/2.2.3 + jdk1.5.0_13 + Linux_x86_64 > > > > [below] is my manual configurations for tomcat JVM: > > CATALINA_OPTS="-Xms1024M -Xmx1024M > > -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false" > > Are you using a 64-bit or 32-bit JVM? > > > When my webapp is started, I use the jvm's own tools(jstat) to trace > the > > garbage collections. > > Ok. > > > the Utilization rate of the PC capacity is always 100%. is it > normal? > > What is "PC" (sorry, the jstat man page sucks)? What is the command you > used to produce your jstat output? > Well, PC is apparently Permanent Capacity in KB, and PU is the current Permanent Utilization (not to be confused with PermGen apparently). Taking his data a sticking it in a spreadsheet (to make it readable) shows that PC is increasing and keeping slightly ahead of PU. I'd say nothing to worry about unless PC is starting to reach PGCMX (which is? Try including the -gccapacity option). Looks like normal GC at work to me. > > Firstly the 1 Full GC is occurrenced within 1 hour, > > 5 hours later that took place within 1 hour 100 Full GC. > > is it normal? > > Can you clarify this last statement? When did the first full GC take > place? When did the second? When did the third? Are you saying that you > get one full GC in one hour, then 5 hours for the second, then 100 full > GCs all close together? > The OPs original statement makes no sense in light of the data give. There is no Full GC count line in his data (though doc says there should be: http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html). The doc seems to imply that the GC times should be cumulative from start, so it looks like he's done some Full GC between each sample taken (about 7 secs/hr.) It would be really helpful if he had listed his jstat options. All the actual capacity/utilization numbers appear to be rising and falling over time in apparent relation to normal usage. The permanent util number doesn't seem to drop often, so he may have a memory leak. (I'd seek the opinion of someone more versed than me in reading jstat output though.) It would have been useful if he had a specific issue he was having and trying to resolve. > That suggests to me that your webapp is allocating memory and never > releasing it. This could be due to many reasons such as a memory leak > (which ought to be fixed) or caching (which may be working as > designed). > > Is your webapp performing well? GC activity doesn't necessarily mean > that anything is wrong. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.10 (MingW32) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iEYEARECAAYFAkv+hFoACgkQ9CaO5/Lv0PBFkgCgvqoksV7PgaqGFOI5wCgXwaIa > yKcAniKySqd3g8wd7paAoRBn0mWklSZY > =RfE/ > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > *** NOTICE * This message is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential, and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by reply or by telephone (call us collect at 512-343-9100) and immediately delete this message and all its attachments.
Re: tomcat memory question
On 27/05/2010 15:40, Christopher Schultz wrote: > W, > > On 5/27/2010 4:51 AM, W wrote: >> there is a problem with my webapp. > >> web operating environment: >> tomcat5.5.27 + Apache/2.2.3 + jdk1.5.0_13 + Linux_x86_64 > >> [below] is my manual configurations for tomcat JVM: >> CATALINA_OPTS="-Xms1024M -Xmx1024M >> -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false" > > Are you using a 64-bit or 32-bit JVM? > >> When my webapp is started, I use the jvm's own tools(jstat) to trace the >> garbage collections. > > Ok. > >> the Utilization rate of the PC capacity is always 100%. is it normal? > > What is "PC" (sorry, the jstat man page sucks)? What is the command you > used to produce your jstat output? I had to look it up too. http://java.sun.com/javase/6/docs/technotes/tools/share/jstat.html p >> Firstly the 1 Full GC is occurrenced within 1 hour, >> 5 hours later that took place within 1 hour 100 Full GC. >> is it normal? > > Can you clarify this last statement? When did the first full GC take > place? When did the second? When did the third? Are you saying that you > get one full GC in one hour, then 5 hours for the second, then 100 full > GCs all close together? > > That suggests to me that your webapp is allocating memory and never > releasing it. This could be due to many reasons such as a memory leak > (which ought to be fixed) or caching (which may be working as designed). > > Is your webapp performing well? GC activity doesn't necessarily mean > that anything is wrong. > > -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org signature.asc Description: OpenPGP digital signature
Re: tomcat memory question
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 塗, On 5/27/2010 4:51 AM, 塗 wrote: > there is a problem with my webapp. > > web operating environment: > tomcat5.5.27 + Apache/2.2.3 + jdk1.5.0_13 + Linux_x86_64 > > [below] is my manual configurations for tomcat JVM: > CATALINA_OPTS="-Xms1024M -Xmx1024M > -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false" Are you using a 64-bit or 32-bit JVM? > When my webapp is started, I use the jvm's own tools(jstat) to trace the > garbage collections. Ok. > the Utilization rate of the PC capacity is always 100%. is it normal? What is "PC" (sorry, the jstat man page sucks)? What is the command you used to produce your jstat output? > Firstly the 1 Full GC is occurrenced within 1 hour, > 5 hours later that took place within 1 hour 100 Full GC. > is it normal? Can you clarify this last statement? When did the first full GC take place? When did the second? When did the third? Are you saying that you get one full GC in one hour, then 5 hours for the second, then 100 full GCs all close together? That suggests to me that your webapp is allocating memory and never releasing it. This could be due to many reasons such as a memory leak (which ought to be fixed) or caching (which may be working as designed). Is your webapp performing well? GC activity doesn't necessarily mean that anything is wrong. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkv+hFoACgkQ9CaO5/Lv0PBFkgCgvqoksV7PgaqGFOI5wCgXwaIa yKcAniKySqd3g8wd7paAoRBn0mWklSZY =RfE/ -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
tomcat memory question
hi, all there is a problem with my webapp. by manual configuration, i allocated 1G(1024M) memory for webapp. where the gc new capacity automatically is 262M, the gc old capacity automatically is 699M, S0/S1 automatically is 43.6M/43.6M., PC automatically is 42M When my webapp is started, I use the jvm's own tools(jstat) to trace the garbage collections. the Utilization rate of the PC capacity is always 100%. is it normal? Firstly the 1 Full GC is occurrenced within 1 hour, 5 hours later that took place within 1 hour 100 Full GC. is it normal? [web operating environment:] tomcat5.5.27 + Apache/2.2.3 + jdk1.5.0_13 + Linux_x86_64 [blow is my manual configurations for tomcat JVM:] CATALINA_OPTS="-Xms1024M -Xmx1024M -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false" [Jstat Tracking data (csv data)] systime, S0C, S1C, S0U, S1U, EC, EU, OC, OU, PC, PU, YGC, YGCT, FGCT, GCT 11:13:41, 9600, 3392, 0, 3369.3, 53568, 36562.3, 699072, 481787.7, 61184, 61167, 249, 3.148, 0.005, 3.153 11:48:02, 4032, 3520, 0, 3520, 39616, 0, 699072, 697526, 67712, 67573.5, 385, 4.849, 0.005, 4.854 13:23:53, 2496, 2496, 0, 0, 29568, 5620.2, 699072, 100281.5, 71360, 71236.5, 1003, 10.057, 3.48, 13.537 14:49:13, 2624, 2624, 0, 0, 27712, 12302, 679936, 74349.4, 78080, 71771.3, 1898, 15.979, 3.962, 19.941 16:07:54, 3392, 3712, 1664, 0, 50496, 28601.3, 688000, 109525.6, 78080, 74945.2, 2804, 21.46, 4.567, 26.027 16:24:03, 4480, 2304, 0, 0, 77632, 27240.9, 656960, 103414.1, 78080, 75622.1, 3107, 23.191, 4.943, 28.134 16:33:39, 4160, 2304, 0, 0, 78144, 25196.7, 658752, 98731.2, 78080, 76421.6, 3365, 24.604, 5.329, 29.933 16:41:50, 5568, 3008, 0, 2952.4, 103424, 96055.6, 606976, 69788.7, 78080, 74229.1, 3591, 25.889, 5.742, 31.631 16:42:40, 7360, 10176, 0, 0, 174464, 0, 652544, 91210.1, 86016, 86010.7, 3620, 26.067, 6.081, 32.148 16:43:25, 19520, 19200, 0, 0, 179328, 12770.2, 681728, 55882.2, 86016, 84680.4, 3637, 26.329, 7.634, 33.963 16:44:22, 21376, 20608, 0, 0, 181504, 13683.9, 681600, 55718.4, 86016, 84905.3, 3653, 26.507, 8.276, 34.784 16:47:34, 22656, 23744, 17914.8, 0, 182656, 135109.5, 687232, 56195.2, 86016, 85854.9, 3710, 27.079, 9.954, 37.032 16:51:16, 23360, 24064, 0, 0, 183872, 6675.4, 695232, 56231, 86016, 84901.6, 3784, 27.828, 13.631, 41.459 16:53:46, 24768, 23808, 0, 18298.8, 191872, 161459.7, 695616, 56960.4, 86016, 85728.5, 3833, 28.605, 15.221, 43.826 16:57:43, 28800, 26944, 0, 21923, 200768, 5245.9, 699072, 66807, 86016, 85505, 3909, 29.494, 17.746, 47.24 17:02:02, 28608, 10752, 0, 10720, 205824, 118015.1, 696128, 56332.7, 86016, 85880.8, 3999, 30.492, 22.473, 52.965 17:03:57, 32384, 32448, 17668.8, 0, 209152, 64383, 699072, 65796.8, 86016, 85142.6, 4038, 31.049, 24.71, 55.759 17:09:19, 32256, 32576, 18938.8, 0, 224512, 43783.8, 699072, 73448.4, 86016, 84862.6, 4146, 32.986, 30.05, 63.035 17:12:59, 54208, 52608, 0, 36976.4, 224640, 76931.5, 699072, 63084.4, 86016, 85367, 4221, 34.258, 33.295, 67.553 17:16:21, 45632, 45760, 26864.6, 0, 224512, 158991.5, 699072, 60327, 86016, 85273.6, 4356, 37.225, 35.458, 72.683 17:24:47, 29120, 30016, 0, 14856.2, 274944, 103582.1, 697344, 57937.4, 86016, 85176.8, 4525, 40.282, 40.071, 80.352 17:33:57, 32832, 34688, 25448.2, 0, 250560, 19438.8, 695808, 55692, 86016, 85489.8, 4686, 44.335, 44.935, 89.27 17:44:33, 29952, 28672, 0, 22952.2, 280896, 175914.9, 696512, 85648.5, 86016, 85940.8, 4845, 47.238, 47.198, 94.436 thanks.. -- 2010 FIFA World Cup News [Yahoo!Sports/sportsnavi] http://pr.mail.yahoo.co.jp/southafrica2010/ - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Memory Question
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Matt, On 5/4/2009 11:29 PM, Matt Corban wrote: > Where does Tomcat store the memory usage that it displays in the Server > Status under the Manager console? I was thinking about writing a shell > script to keep track of the memory usage over time (such as the free memory, > total memory and max memory) and store it in a file. I just posted full code to do this the other day: http://www.nabble.com/GC-Problem-td23296336.html#a23336209 - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkoAdZEACgkQ9CaO5/Lv0PAGowCfdM41Q0A4wNxbrtdmotQS4VO2 c+EAoLCEN47WB445QiEe6yWiduWlo4Fg =fK3u -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Memory Question
Matt Corban wrote: Where does Tomcat store the memory usage that it displays in the Server Status under the Manager console? I was thinking about writing a shell script to keep track of the memory usage over time (such as the free memory, total memory and max memory) and store it in a file. Thanks, Matt Hi , there is munin plugin which does exactly that . munin also saves data in rrd database and draws nice graphics . here is the script , it just parses status page . http://munin.projects.linpro.no/browser/branches/debian/lenny/trunk/debian/patches/110-node.d-tomcat_jvm.patch Alex - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Memory Question
> From: Matt Corban [mailto:mcor...@tcservices.biz] > Subject: Memory Question > > Where does Tomcat store the memory usage that it displays in the Server > Status under the Manager console? Tomcat doesn't store that info - it's kept by the JVM; look at the java.lang.Runtime API spec. More detailed heap information is also available via JVMTI and JMX. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Memory Question
Where does Tomcat store the memory usage that it displays in the Server Status under the Manager console? I was thinking about writing a shell script to keep track of the memory usage over time (such as the free memory, total memory and max memory) and store it in a file. Thanks, Matt
RE: Memory question
Thank you all! I set JAVA_OPTS in the tomcat startup and it works! Now to figure out the next problem, but that's an issue with the application I'm running and not Tomcat. On Wed, 2008-07-23 at 20:00 -0500, Caldarale, Charles R wrote: > > From: David Smith [mailto:[EMAIL PROTECTED] > > Subject: Re: Memory question > > > > I believe the startup script accepts extra parameters and just > > passes them on to the JVM for startup. You should be able to do: > > > > startup.sh -Xmx512m > > Unfortunately not, although it certainly would be convenient. The extra > parameters are passed to Tomcat's Bootstrap class, not the JVM. You really > do have to use CATALINA_OPTS or JAVA_OPTS. > > - Chuck > > > THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY > MATERIAL and is thus for use only by the intended recipient. If you received > this in error, please contact the sender and delete the e-mail and its > attachments from all computers. > > - > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > Matt Burkhardt, MSTM President Impari Systems, Inc. 401 Rosemont Avenue Frederick, MD 21701 [EMAIL PROTECTED] www.imparisystems.com (301) 644-3911
Re: Memory question
Ooops. It's been a long time since I've taken a look at catalina.sh. Just saw the startup.sh pass parameters along. --David Caldarale, Charles R wrote: From: David Smith [mailto:[EMAIL PROTECTED] Subject: Re: Memory question I believe the startup script accepts extra parameters and just passes them on to the JVM for startup. You should be able to do: startup.sh -Xmx512m Unfortunately not, although it certainly would be convenient. The extra parameters are passed to Tomcat's Bootstrap class, not the JVM. You really do have to use CATALINA_OPTS or JAVA_OPTS. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- David Smith Programmer/Analyst College of Agriculture and Life Sciences Cornell University B32 Morrison Hall Ithaca, NY 14853 Phone: (607) 255-4521 - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Memory question
> From: David Smith [mailto:[EMAIL PROTECTED] > Subject: Re: Memory question > > I believe the startup script accepts extra parameters and just > passes them on to the JVM for startup. You should be able to do: > > startup.sh -Xmx512m Unfortunately not, although it certainly would be convenient. The extra parameters are passed to Tomcat's Bootstrap class, not the JVM. You really do have to use CATALINA_OPTS or JAVA_OPTS. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Memory question
If you login to tomcat's manager webapp, you can see the memory settings and usage on the running system. Regarding setting the memory, etc., ... I believe the startup script accepts extra parameters and just passes them on to the JVM for startup. You should be able to do: startup.sh -Xmx512m Then you don't end up giving every java program running on the system half your system memory, killing hard drives on page swaps. --David Matt Burkhardt wrote: Okay - I've gone ahead, uninstalled the distro from Ubuntu, installed Tomcat 6.0.16 and I'm having problems running out of memory. My catalina.out file contains the lines at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.OutOfMemoryError: Java heap space and the application says it needs 512MB, I have 1GB on the server and it says that you can use up to 70% of the memory before it gets starved. So I edited the /etc/environment contents and ended up with this more /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" ANT_HOME="/usr/share/ant" JAVA_HOME="/usr/lib/jvm/java-6-sun" JAVA_OPTS="${JAVA_OPTS} -Djava.awt.headless=true -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=256M and I rebooted the machine, but I'm still getting the error. I don't know how to check and see if it took the arguments correctly, but when I look at http://myserver:8080/manager/status I see JVM Free memory: 23.34 MB Total memory: 63.56 MB Max memory: 63.56 MB What am I doing wrong? Matt Burkhardt, MSTM President Impari Systems, Inc. 401 Rosemont Avenue Frederick, MD 21701 [EMAIL PROTECTED] www.imparisystems.com (301) 644-3911 - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Memory question
> From: Matt Burkhardt [mailto:[EMAIL PROTECTED] > Subject: Memory question > > JAVA_OPTS="${JAVA_OPTS} -Djava.awt.headless=true -Xms512M -Xmx512M > -XX:PermSize=256M -XX:MaxPermSize=256M It's a bad idea to set JAVA_OPTS globally, since you have no idea who's going to be looking at it. Also, you're missing the closing quote. > Free memory: 23.34 MB Total memory: 63.56 MB Max memory: 63.56 MB Obviously, the JAVA_OPTS didn't make it into the Tomcat process. Do you see the JAVA_OPTS variable from a regular terminal session? Why not set JAVA_OPTS in just the process that kicks off the Tomcat startup script? - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Memory question
Okay - I've gone ahead, uninstalled the distro from Ubuntu, installed Tomcat 6.0.16 and I'm having problems running out of memory. My catalina.out file contains the lines at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.OutOfMemoryError: Java heap space and the application says it needs 512MB, I have 1GB on the server and it says that you can use up to 70% of the memory before it gets starved. So I edited the /etc/environment contents and ended up with this more /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" ANT_HOME="/usr/share/ant" JAVA_HOME="/usr/lib/jvm/java-6-sun" JAVA_OPTS="${JAVA_OPTS} -Djava.awt.headless=true -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=256M and I rebooted the machine, but I'm still getting the error. I don't know how to check and see if it took the arguments correctly, but when I look at http://myserver:8080/manager/status I see JVM Free memory: 23.34 MB Total memory: 63.56 MB Max memory: 63.56 MB What am I doing wrong? Matt Burkhardt, MSTM President Impari Systems, Inc. 401 Rosemont Avenue Frederick, MD 21701 [EMAIL PROTECTED] www.imparisystems.com (301) 644-3911
Re: OT: java memory question -Xmx2048m
For some reason Linux always calls 64 bit OSes 'AMD' - in fact, the sun 64 bit AMD version works fine on modern 64 bit Intel CPUs. The confusion comes because there was an older 64 bit design from Intel called the 'Itanium' which was intended for servers and had a completely different instruction set. The Xeon family and the E64 family are all compatible with the 'AMD' 64 bit JVM You say DELL 2590 - do you mean DELL 2950? The 2950 is takes Intel Xeon processors which will work with the so-called 'AMD' JVM. Hope that helps Regards Alan Chaney Dave wrote: I installed Linux FC6 64-bit on the machine DELL 2590(I think it is INTEL type CPU). But JVM 64-bit is only available for AMD and SPARC. Is the SUN not support INTEL? Thanks, Dave David Delbecq <[EMAIL PROTECTED]> wrote: En l'instant précis du 25/02/08 13:51, Dave s'exprimait en ces termes: Our Linux(FC) machine has 8G physical memory and 12G swap size. I am using JDK 1.5. I tried to set the Java option -Xmx to set max heap size for best performance, the allowed max heap size is 2048M . Does that mean that the JVM can not use all the physical memory (8G) ? Thanks. Dave - Never miss a thing. Make Yahoo your homepage. The maximum memory the JVM can use depends on the maximum size of continuous memory segment the OS you run on allows you to reserve. On 32 bits linux, it's about 2G (that is 4G minus memory area reserved for kernel, minus memory area used by libraries minus other thingies jvm might use). To get more you will need a 64bits JVM + a 64 bits OS. Note it's a limitation of hardware architecture and OS more than a limitation of JVM. PS: if you plan to swap-out 12G of datas, i hope your disks are fast :) - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OT: java memory question -Xmx2048m
I installed Linux FC6 64-bit on the machine DELL 2590(I think it is INTEL type CPU). But JVM 64-bit is only available for AMD and SPARC. Is the SUN not support INTEL? Thanks, Dave David Delbecq <[EMAIL PROTECTED]> wrote: En l'instant précis du 25/02/08 13:51, Dave s'exprimait en ces termes: > Our Linux(FC) machine has 8G physical memory and 12G swap size. I am using > JDK 1.5. I tried to set the Java option -Xmx to set max heap size for best > performance, the allowed max heap size is 2048M . Does that mean that the JVM > can not use all the physical memory (8G) ? Thanks. > Dave > > > - > Never miss a thing. Make Yahoo your homepage. > The maximum memory the JVM can use depends on the maximum size of continuous memory segment the OS you run on allows you to reserve. On 32 bits linux, it's about 2G (that is 4G minus memory area reserved for kernel, minus memory area used by libraries minus other thingies jvm might use). To get more you will need a 64bits JVM + a 64 bits OS. Note it's a limitation of hardware architecture and OS more than a limitation of JVM. PS: if you plan to swap-out 12G of datas, i hope your disks are fast :) -- http://www.devlog.be (a belgian developer's logs) - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Never miss a thing. Make Yahoo your homepage.
Re: OT: java memory question -Xmx2048m
Dave wrote: Our Linux(FC) machine has 8G physical memory and 12G swap size. Happy swapping ;-) -- Mikolaj Rydzewski <[EMAIL PROTECTED]> smime.p7s Description: S/MIME Cryptographic Signature
Re: OT: java memory question -Xmx2048m
Hi everyOne From adobe Faq On 32-bit processor machines, the largest contiguous memory address space the operating system can allocate to a process is 1.8GB. Because of this, the maximum heap size can only be set up to 1.8GB. On 64-bit processor machines, the 1.8 GB limit does not apply, as 64-bit processor machines have a larger memory address space. regards Roland Dave a écrit : Our Linux(FC) machine has 8G physical memory and 12G swap size. I am using JDK 1.5. I tried to set the Java option -Xmx to set max heap size for best performance, the allowed max heap size is 2048M . Does that mean that the JVM can not use all the physical memory (8G) ? Thanks. Dave - Never miss a thing. Make Yahoo your homepage. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OT: java memory question -Xmx2048m
En l'instant précis du 25/02/08 13:51, Dave s'exprimait en ces termes: Our Linux(FC) machine has 8G physical memory and 12G swap size. I am using JDK 1.5. I tried to set the Java option -Xmx to set max heap size for best performance, the allowed max heap size is 2048M . Does that mean that the JVM can not use all the physical memory (8G) ? Thanks. Dave - Never miss a thing. Make Yahoo your homepage. The maximum memory the JVM can use depends on the maximum size of continuous memory segment the OS you run on allows you to reserve. On 32 bits linux, it's about 2G (that is 4G minus memory area reserved for kernel, minus memory area used by libraries minus other thingies jvm might use). To get more you will need a 64bits JVM + a 64 bits OS. Note it's a limitation of hardware architecture and OS more than a limitation of JVM. PS: if you plan to swap-out 12G of datas, i hope your disks are fast :) -- http://www.devlog.be (a belgian developer's logs) - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
OT: java memory question -Xmx2048m
Our Linux(FC) machine has 8G physical memory and 12G swap size. I am using JDK 1.5. I tried to set the Java option -Xmx to set max heap size for best performance, the allowed max heap size is 2048M . Does that mean that the JVM can not use all the physical memory (8G) ? Thanks. Dave - Never miss a thing. Make Yahoo your homepage.