Hi, Thanks again for your suggestions. I still don't have a good handle on the problem. So please bear with me If I am asking the same questions again.
1. What I have noticed so far is the heap is not growing too much, but the process foot print is growing. I used optimizeit memory profiler to compare snapshots of the heap. I don't see any obvious memory leaks. I need to take a closer look. When I checked this morning, the heap size allocated was 80MB and heap used was 57MB (reported by optimizeit). But the memory sizes reported by solairs pmap command is Size RSS Shared Private 1173.45 MB 608.125 MB 15.125 MB 593 MB I understand that the process footprint includes other data and would grow as JVM itself grows. But is it normal that it grows to 1173 MB in a matter of few hours. Ofcourse, optimizeit itself has overheads and adds to the process size. But I have seen it grow to 2.5 GB in two days without optimizeit when I was doing some stress tests. I read in one of the solaris virtual memory architecture design paper, that virtual address space of a process on solaris is 4GB. What will happen when the JVM process size reaches 4GB? I guess my confusion is due to the lack of my understanding on how java manages memory and how it relates to the OS-level memory management. Are there any documents or white papers that discuss this kind of issues? 2. I see that GC is running, reclaiming memory periodically. But I noticed that after a while GC is running more frequently and each run takes a substantial amount of time (in one instance GC took about 14 secs). This may affect the throughput, but will it have any impact on the memory? 3. I read somewhere that if you use reflection, the reflective data structures (whatever that means) also contribute to the memory footprint. It sounded as though these are not part of the heap. So if we are creating instances of Method, Constructor, etc, are they not allocated in the heap? We are using reflection heavily. Thanks Anand > -----Original Message----- > From: Shapira, Yoav [mailto:[EMAIL PROTECTED] > Sent: Thursday, November 04, 2004 4:55 AM > To: Tomcat Users List > Subject: RE: Huge tomcat memory footprint > > > Hi, > > >If there is a memory leak in our application, tomcat or > java, what are > the > >symptoms I should look for. > >Will the heap usage (shown by visual GC, optimizeit etc) keep growing > and > >eventually reach the max limit set using -Xmx option to java? > > Yes, the heap will keep growing and eventually reach the max, > at which point you will get OutOfMemoryErrors and > hung/unstable behavior. > However, if your leak is small, it might take a very long > time before this situation is reached. > > Run your app inside a profiler, conduct some operations > typical to your app, and then look at the heap. Most > profilers now have features that show you object reference > trees, i.e. what objects are holding onto what references. > If you see stuff still in memory that you think shouldn't be > there, fix it. > > Yoav > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]