Hi,
another idea... try to increase the size of the perm heap with -XX:permSize and -XX:maxPermSize. (See the JVM and garbage collector tuning docus from Sun for more information and google for more). Also try to enable the garbage collector log to check what happens to the perm memory in case of GCs.
AFAIK the maxPermSize can be set fairly high, because it will be cut off your -Xmx setting, just when needed.
We had a similar issue because the perm size was limited to/reached 64mb and at some point during runtime everything broke apart as we need about 100MB. Interesting: using the -d64 -server crashed already during Tomcat startup with too low perm size. Obviously the classes and all other perm memory code need more heap right from the beginning due to 64bit addressing.
Unfortunately having not enough perm memory here can lead to out of memory exceptions although you seem to have enough free heap. ;-)
Somebody at Sun forgot to offer a Java 1.4.x method to dump the free perm memory besides max, total and free heap that you could easily find out whats wrong without GC logging...
Cheers, Michael
Asim Alp wrote:
Hello Peter,
Sorry. My system config is:
Windows Server 2003 Apache 2.0.49 (Win32) mod_ssl/2.0.51 OpenSSL/0.9.7d DAV/2 mod_jk/1.2.6 Tomcat 5.5.4 sun jdk 1.5.0-b64
We have a 2 node tomcat cluster each running with the -Xms128m -Xmx1024m options.
We have a heavily loaded JDBC application running and our MySQL server has enough max_connections to handle our load. For now, we have Apache, one of the Tomcats and MySQL running on the same machine (2 x 3.8 Ghz Intel with 2GB of Ram). We're also using this server as a file server with RAID 5.
From Task Managers performance monitor, I'm looking at the Handles (I hope I'm looking at the correct thing). Total number of handles is around 30400 (almost two times 16K). Apache is usually using about 3000, Tomcat 5000, MySQL 9000, System 2600, svchost 1000.
Do these values look normal?
Asim
On Mon, 13 Dec 2004 17:53:35 -0000, Peter Crowther <[EMAIL PROTECTED]> wrote:
From: Asim Alp [mailto:[EMAIL PROTECTED] I'm trying to solve an OOME on our Tomcat.
Tomcat version? JVM version and settings? Application characteristics? Other libraries in use (eg JDBC)?
We profiled our application using JProfiler and there are no memory leakages on our end. Currently, I'm focusing on some system resource problems such as file descriptors. Would this be a valid problem on Windows Server 2003? And if so, how can I change the max number of file descriptors?
I suspect someone else will give a better Java solution, but I'm a Windows hack who's a relative latecomer to Java...
You've got 16k to go at by default. How many are you using, according to Performance Monitor? And how many in the JVM running Tomcat?
One last thing... What other resources should I investigate for this sort of OOME?
http://www.sysinternals.com/ for 'handle' and Process Explorer if you suspect a resource problem on Windows.
- Peter
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
