There is a known memory leak in 5.0.16, I'd upgrade to 5.0.18 and see if this fixes 
your problem.

Ta
Matt

-----Original Message-----
From: Torstein Nilsen [mailto:[EMAIL PROTECTED]
Sent: 22 January 2004 10:01
To: [EMAIL PROTECTED]
Subject: memory leak in tomcat 5.0.16 ?


I am developing an intranet for a housing
community using apache/tomcat and 
mysql. It was put in production to 200 users a few
weeks ago and I noticed that 
the java-proces (tomcat) was "growing" from 8%
memory usage when started to 
over 50% (seen with top / ps aux). 

When the mem-usage reach a certain level the
java-proces uses most of the CPU-
ressources as well - verbose:GC showed that this
is the GC trying to keep up. 
This usually happens in a matter of 2-5 hours
depending on the Xmx-settings - the number of 
active users / load seems to speed the process up
(not confirmed). Restarting 
tomcat solves the problem for a while - but I
would prefer a better permament 
solution.

System settings:
CPU: Pentium 1600 mhz
RAM: 512 MB
OS: Linux (Redhat)
Java: j2re1.4.2_03 / jikes
TOMCAT: 5.0.16
Connector:
org.apache.coyote.tomcat5.CoyoteConnector
(AJP/1.3)
CATALINA_OPTS: -Xmx200m -Xms200m
-Dbuild.compiler.emacs=true
(have tried 117 different settings)

At first I used tomcat 4 and j2sdk1.4.1_03 and the
"normal" javac-compiler. 
I changed to jakarta-tomcat-5.0.16 / j2re1.4.2_03
and jikes - this seems to have 
made the problem even worse. Before the update
tomcat could go for more than 12 
hours whitout restarting - now I have to restart
every few hours.

The application is quite DB-intensive: Every 30
secs. a java-thread queries a 
mysql-table with updated network-traffic data
(used for traffic-shaping). In 
the same loop I SAX-parse a little XML-string
using the JDOM-API (I have read 
about the StringBuffer-problem but this is not the
cause since I'm now using 
j2re1.4.2_03 - right ?). I'm using
mysql-connector-3.0.9 as JDBC-driver and 
protomatter-1.1.8 to pool DB-connections. In the
same loop I connect to a TCP-
socket on the local server.

I have done some profiling with HPJmeter and the
-Xrunhprof argument with 
different settings. I'm a newbie in profiling but
these observations might be 
useful:
-Using HPJmeter' "guess memory leaks" the top-4
suggested candidates are: 
java.util.vector,
org.apache.commons.modeler.Registry, 
org.apache.jk.core.MsgContext and 
org.apache.coyote.Request

-"Residual objects" shows the following
top-4-classes (bytes):
int[] (10 MB)
char[] (4 MB)
java.lang.String (2 MB)
byte[] (2 MB)

Any help would be much appreciated...

Regards
Torstein Nilsen


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

Any opinions expressed in this E-mail may be those of the individual and not 
necessarily the company. This E-mail and any files transmitted with it are 
confidential and solely for the use of the intended recipient. If you are not the 
intended recipient or the person responsible for delivering to the intended recipient, 
be advised that you have received this E-mail in error and that any use or copying is 
strictly prohibited. If you have received this E-mail in error please notify the 
beCogent postmaster at [EMAIL PROTECTED]
Unless expressly stated, opinions in this email are those of the individual sender and 
not beCogent Ltd. You must take full responsibility for virus checking this email and 
any attachments.
Please note that the content of this email or any of its attachments may contain data 
that falls within the scope of the Data Protection Acts and that you must ensure that 
any handling or processing of such data by you is fully compliant with the terms and 
provisions of the Data Protection Act 1984 and 1998.


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

Reply via email to