Re: OutOfMemory! Tomcat meets sudden spikes of used memory sometimes.
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.
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.
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]