Re: OutOfMemory! Tomcat meets sudden spikes of used memory sometimes.

2004-12-09 Thread Li Zhenxing
On Thu, 9 Dec 2004 08:30:26 -0500, Shapira, Yoav [EMAIL PROTECTED] wrote:

 So there is a constant load and constant memory usage for a couple of
 days, and then under the same load the memory usage spikes up?  No other
 external parameters change, e.g. the database going down?

I don't find other external parameters change. And the app gets right,
once restart tomcat!

 And they don't change, right?  So they don't need to be recompiled by
 Jasper.

Yes, they don't change.

 Can you correlate your access log (assuming it's enabled: if not, enable
 it) to the increase in memory usage  Maybe it will show one particular
 page being requested when the memory spikes up.

I have already correlated all JSP. But find nothing. All the access
JSPs during memory spiking up are normal pages. Those are visited
everyday.
Now I guess maybe some parameters of one JSP are wrong. I don't
correlate every access URL. I am tring to finish this work. You know,
this is big work because the access URL is more than 10 thousands
within a few minutes.

Thank Yoav very much.
I will report my ending for the problem. 

Li Zhenxing

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



OutOfMemory! Tomcat meets sudden spikes of used memory sometimes.

2004-12-08 Thread Li Zhenxing
Hi folks,
I am puzzled by the situation that Tomcat 4.1.31 meets sudden spikes of used
memory sometimes. Then it will increase to throw OutOfMemory Exception and
tomcat is hanging.

Those memory spikes appear in my Web application for a long time. The odd
thing is that it does not seem to progressively go up but rather spike up
with each next full GC will clean less objects out.

This is three pictures of the gc log.
http://my.sme.cn/jsp/main/memoryleak.png
http://my.sme.cn/jsp/main/memoryleak2.png
http://my.sme.cn/jsp/main/memoryleak3.png
I used HPjtune tool to watch the gc log.
System using windows 2000 server, 2*CPU, 2G memory, JSDK 1.4.2_05, tomcat
4.1.31, And
set -Xms1250m -Xmx1250m -server -XX:+UseParallelGC -Xloggc:D:\tomcat\logs\gc.log

At first, I doubt if my app program has memory leak. But the application
only runs by JSPs and javabeans.(I abandon using DBCP pool and any thread
operation because of the memory leak.) I think simple JSPs can't cause the
memory spike. I have a monitor.jsp to show my application status.
http://my.sme.cn/jsp/main/monitor.jsp

The WebSite uses normally below 100M memory heap through my monitor.jsp. It
can run a few days, or a few hours before the spike appears. It is
irregular. I read the access_log and want to find answer. But I can't find
any clue.

Then, I think tomcat 4.1.* has some bugs causing the memory leak. I upgraded
my application to tomcat 5.0.18, but I met same thing.

The WebSite's hits is more than 200,000 per day. I try to use OptimizeIt 6
profile to watch memory status, but OptimizeIt always exits after runs 2~3
hours. I guess this program maybe need using progressive memory of system to
log things and analyze those when I notice Optimizeit used 1.6G system
memory.(and OptimizeIt 6 profile only runs under tomcat 4.1.*! So I return
to tomcat 4.1.31)

I don't know how to cause the thing and how to find solution. Any suggestion
is appreciated. Thanks.

Li Zhenxing

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: OutOfMemory! Tomcat meets sudden spikes of used memory sometimes.

2004-12-08 Thread Li Zhenxing
On Wed, 8 Dec 2004 09:10:02 -0500, Shapira, Yoav [EMAIL PROTECTED] wrote:
 
 When a spike appears for a long time it's not a spike: it's the
 steady state.

Yes, it's the steady state. I just aim at the gc figure, the spike.
Maybe this word don't discribes the figure exactly. I am sorry for my
English words.

 
 Please don't jump to determine it's a memory leak just because more
 memory is used.
 
I think it is a obvious memory leak because the number of request
threads doesn't increase and the app hits just is normal when the
inflexion of gc figure appreas.
The question only is caused by my app, or tomcat.

 
 So you're setting the heap size to a constant 1250MB.  How can there be
 big jumps all over the place?

It should been given max memory as possible to avoid JVM increases
heap progressively when the server machine only runs tomcat.
I think all heavy load app should set two parameter  equal.

 I bet your app is more likely than Tomcat to have a leak ;)  Simple JSPs
 can cause memory spikes, as can simple servlets.  DBCP and threads do
 NOT necessarily cause increased memory usage.

It is probably that my app has a leak. I agree. But every JSP has been
visited during four days of system in order. Why to appear spike at
fifth day?
I have 2~3 hundreds JSPs that almost be requested everyday.
Does one JSP has memory leak at a special situation? Or one JSP
running at a special situation causes tomcat leak?
 
 
 Get a test system, put your app on it, run it with a profiler, and
 simulate load using a test tool of your choice, e.g. JMeter, ab, wget,
 grinder, whatever.  Then see where memory is retained during your
 spikes.
 
Thanks for the advice.
and thanks for Dale's suggustion.
I will try to profile heap through -Xrunhprof and other tools.

Li Zhenxing

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]