I am trying to tune an instance of tomcat running a single application. And have a couple different questions.
I have read lots of faqs and webpages on the various types of garbage collectors. I get from most of these that it takes lots of tuning particular to each machine/server/application. My main question is why the memory allocated keeps climbing. If I have a fairly consistent number of users, then as some sessions are freed up, others are made. Wouldn't the amount of allocated level off at some point? When a full GC is started, why does it never go back down to a low number? At night, lets say when there are no users, why wouldn't a GC drop the memory down to what is used by just the bare minimum? Most faqs and webpages say to allocate as much memory as possible. How can you use the aggressiveHeap tag if tomcat is also trying to specify Mmx and Mms settings? Does anyone have an example memory settings for a tomcat running on a 2-4 chip machine with around 2G of ram? I understand for a JSP application that we need to keep our permHeap size large. What do you guys normally do for that? 128M? 256M? 512M? Is it common that a tomcat needs restarting nightly to free up memory? In all my other apps I've had with tomcat, I've never needed to do that. I've been trying to use the profiler yourkit, but am uncertain what is a valid object in memory and what is being held on unnecessarily. Thanks for any help you can provide.