RE: Showing Tomcat Memory Utilization with 'top'
> From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Subject: Re: Showing Tomcat Memory Utilization with 'top' > > I didn't realize that the server JVM didn't share class > templates. Do you have any ideas why not? AFAIK, Sun just hadn't gotten around to it yet; don't know if it's in JRE 7 or not. Class sharing is primarily of interest in environments where startup time is critical, and Sun didn't think that the server JVM would be subject to that issue. However, with more and more 64-bit environments being available (eg, everybody's laptops) that have only a server JVM on them, that decision looks like it's no longer valid. Note that the client and server JVMs are really two entirely different beasts, so the data structures from one are not easily translated to the other. - 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: Showing Tomcat Memory Utilization with 'top'
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Chuck, On 6/22/2010 5:00 PM, Caldarale, Charles R wrote: >> From: Christopher Schultz [mailto:ch...@christopherschultz.net] >> Subject: Re: Showing Tomcat Memory Utilization with 'top' >> >> Also, I believe VIRT includes memory shared with other processes > > Doesn't RES also include shared pages - anything that's in the memory > map of the process? (I can't remember exactly how that works, but > the shared pages have to be accounted for somewhere.) This is reaching the limits of my knowledge as well. I could imagine shared memory not being counted "against" every process but it also quite makes sense that it would. >> so if you have 50MiB of Java system classes loaded and a modern >> JVM which shares them among running JVMs > > Note that only the client HotSpot JVM shares classes; the server > version does not. (The sharing is really class templates, not the > class objects themselves.) I didn't realize that the server JVM didn't share class templates. Do you have any ideas why not? It seems to be a relatively cheap optimization when multiple JVMs are in use, and shouldn't include too much overhead for either the process or the OS if there's no actual sharing going on in a single-JVM scenario. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkwiPcQACgkQ9CaO5/Lv0PA9oACcCAVoKQZ3F9DG5iPmEusC0nSt k/wAnjfHzZpGU2lceqY7cltkJ/EUiNk9 =sw+t -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Showing Tomcat Memory Utilization with 'top'
> From: Robinson, Eric [mailto:eric.robin...@psmnv.com] > Subject: RE: Showing Tomcat Memory Utilization with 'top' > > 'top' shows 30-40MB in the 'SHR' column for each java > process. Is that what you're referring to? That could be any memory (eg, file pages) that's being used in more than one process. - 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
RE: Showing Tomcat Memory Utilization with 'top'
> From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Subject: Re: Showing Tomcat Memory Utilization with 'top' > > Also, I believe VIRT includes memory shared with other processes Doesn't RES also include shared pages - anything that's in the memory map of the process? (I can't remember exactly how that works, but the shared pages have to be accounted for somewhere.) > so if you have 50MiB of Java system classes loaded and a modern > JVM which shares them among running JVMs Note that only the client HotSpot JVM shares classes; the server version does not. (The sharing is really class templates, not the class objects themselves.) - 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: Showing Tomcat Memory Utilization with 'top'
> Also, I believe VIRT includes memory shared with other > processes, so if you have 50MiB of Java system classes > loaded and a modern JVM which shares them among running JVMs, > then you'll see that 50MiB included in every process's VIRT > that is sharing it, which is somewhat misleading. Excellent point. 'top' shows 30-40MB in the 'SHR' column for each java process. Is that what you're referring to? -- Eric Robinson Disclaimer - June 22, 2010 This email and any files transmitted with it are confidential and intended solely for Tomcat Users List,Caldarale, Charles R. If you are not the named addressee you should not disseminate, distribute, copy or alter this email. Any views or opinions presented in this email are solely those of the author and might not represent those of . Warning: Although has taken reasonable precautions to ensure no viruses are present in this email, the company cannot accept responsibility for any loss or damage arising from the use of this email or attachments. This disclaimer was added by Policy Patrol: http://www.policypatrol.com/ - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Showing Tomcat Memory Utilization with 'top'
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Chuck, On 6/22/2010 3:22 PM, Caldarale, Charles R wrote: >> From: Robinson, Eric [mailto:eric.robin...@psmnv.com] >> Subject: Showing Tomcat Memory Utilization with 'top' >> >> 1. Top shows 0k of swap usage, so the system is not swapping. In that >> case, why is there a difference between the VIRT and RES numbers? > > Linux always allocates more virtual space than is actually used (thread stack > space, for example). The JVM will also reserve, but not commit, the -Xmx > size of the heap (and other spaces); it only commits what is really needed. > >> My understanding is that RES=CODE+DATA and VIRT=RES+SWAP. > > Nope. RES is real memory usage, VIRT is just whatever space has been > allocated, but not necessarily touched. Until a page is touched, it won't > exist in RAM or on the swap file. Also, I believe VIRT includes memory shared with other processes, so if you have 50MiB of Java system classes loaded and a modern JVM which shares them among running JVMs, then you'll see that 50MiB included in every process's VIRT that is sharing it, which is somewhat misleading. - -chris -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkwhGo0ACgkQ9CaO5/Lv0PCUlwCgmkijMJ5TQN6sMlDAboPU9upV cQEAoI7ZWJaD1hIFsYmx89WnFRjM4dkv =lN9a -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Showing Tomcat Memory Utilization with 'top'
> From: Robinson, Eric [mailto:eric.robin...@psmnv.com] > Subject: RE: Showing Tomcat Memory Utilization with 'top' > > For example, I have a tomcat configured to use 96MB of heap (export > JAVA_OPTS="-ms96M -mx96M"). Top shows VIRT=336396, RES=227264. I'm > guessing that the 96MB of heap is buried in BOTH the VIRT and RES > numbers? Since -Xms == -Xmx, that is normally true. However, the JVM may not have actually used all the allocated heap space, since the heap is internally divided into several regions (eg, eden, survivor, tenured), and some of these are further subdivided (TLAB). If a page in the heap hasn't been touched (not unusual for some TLAB areas), it will appear in VIRT but not in RES. - 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
RE: Showing Tomcat Memory Utilization with 'top'
>> 2. Where does the 64MB of java heap show up? > Buried inside the VIRT number. For example, I have a tomcat configured to use 96MB of heap (export JAVA_OPTS="-ms96M -mx96M"). Top shows VIRT=336396, RES=227264. I'm guessing that the 96MB of heap is buried in BOTH the VIRT and RES numbers? -- Eric Robinson Disclaimer - June 22, 2010 This email and any files transmitted with it are confidential and intended solely for Tomcat Users List. If you are not the named addressee you should not disseminate, distribute, copy or alter this email. Any views or opinions presented in this email are solely those of the author and might not represent those of . Warning: Although has taken reasonable precautions to ensure no viruses are present in this email, the company cannot accept responsibility for any loss or damage arising from the use of this email or attachments. This disclaimer was added by Policy Patrol: http://www.policypatrol.com/ - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Showing Tomcat Memory Utilization with 'top'
> From: Robinson, Eric [mailto:eric.robin...@psmnv.com] > Subject: Showing Tomcat Memory Utilization with 'top' > > 1. Top shows 0k of swap usage, so the system is not swapping. In that > case, why is there a difference between the VIRT and RES numbers? Linux always allocates more virtual space than is actually used (thread stack space, for example). The JVM will also reserve, but not commit, the -Xmx size of the heap (and other spaces); it only commits what is really needed. > My understanding is that RES=CODE+DATA and VIRT=RES+SWAP. Nope. RES is real memory usage, VIRT is just whatever space has been allocated, but not necessarily touched. Until a page is touched, it won't exist in RAM or on the swap file. > 2. Where does the 64MB of java heap show up? Buried inside the VIRT number. - 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