You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by John McClain <jm...@tcshealthcare.com> on 2006/06/30 02:44:55 UTC

Memory Leak question - please help

OK - I have spent a few weeks trying to track down a memory leak that is in
our application. We see the leak in that the yourkit profiler shows an
increasing trend in telemetry. BUT, in tyring to track it down, all the GC
roots of the largest objects are coming from things like JDBC caches,
el.ExpressionEvaluatorImpl cache, WebAppClassLoader, and other Tomcat
managed caches/pools.


How do I know what memory is expected to be retained by Tomcat outside of my
application classes???? There seems to be caches / pools / classloaders as
almost every GC root. Is there some list out there that defines valid
Catalina GC roots for a running webapplication?? If not, Then how does one
know whether you are looking at a leak or some cache/pool that is managed by
something else, and assumabley works correctly? Also, if we have around 200
static classes, should we increase PermGen or Heap size?

Is there anyone out there who could help on this issue. Fee for service is
possible.

John McClain
Senior Software Engineer
TCS Healthcare
jmcclain@tcshealthcare.com
(530)886-1700x235
"Skepticism is the first step toward truth"


Re: Memory Leak question - please help

Posted by Darryl Miles <da...@netbauds.net>.
John McClain wrote:
> How do I know what memory is expected to be retained by Tomcat outside of my
> application classes???? There seems to be caches / pools / classloaders as
> almost every GC root. Is there some list out there that defines valid
> Catalina GC roots for a running webapplication?? If not, Then how does one
> know whether you are looking at a leak or some cache/pool that is managed by
> something else, and assumabley works correctly? Also, if we have around 200
> static classes, should we increase PermGen or Heap size?

Unit testing.  Take your application out of the container and test it.

Even if its a web-app there must be some logical functions within it 
that can be broken down to allow standalone testing outside of the 
container.

If you can prove that and its not your application outright, this will 
leave you with interaction problems or the container itself. 
Interaction problems is a very broad scope that covers inappropriate 
design patterns through to plain misunderstanding of the respective 
servlet container specifications.

You seem pretty sure its your application at fault, so how did you test 
it in the first place ?


Darryl

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org