As far as I know, heap memory is used by objects. On the other hand, our application has static variables and references to the objects residing in heap area. Does it mean, static variables and references of our application are stored outside of reserved 512MB area? Or, the memory outside of 512MB reserved heap area used only by Java itself?
________________________________ From: Peter Crowther <peter.crowt...@melandra.com> To: Tomcat Users List <users@tomcat.apache.org> Sent: Tue, January 26, 2010 5:43:22 PM Subject: Re: tomcat memory usage 2010/1/26 Hüsnü Þentürk <husnusent...@yahoo.com> > Hi, > In our company, we are using apache tomcat as a windows service. We defined > jvm parameters "--JvmMs 512 --JvmMx 512" in service.bat. But application is > using 600,980 KB memory. I expect the application not to use more then 512 > MB. > > Can you explain me, the reason of this stuation. > > You are setting the memory that Java uses to store heap objects. That is not the only memory Java uses. Other uses include: - The JVM code itself; - Native code stacks per-thread; - Native objects such as sockets and threads; - Any loaded DLLs. You have no direct way of controlling the size of any of these. If you want to reduce Java's memory usage, you can reduce its heap space after monitoring what the process' overheads are. - Peter