We have a tomcat application using JDK 1.4 on RHEL 3. Sometimes one of the Java threads utilizes around 30-50 % of the CPU (from TOP command) causing the system load average to go over 1 (normally its 0.1-0.2) and hence results in the Application being very slow sometimes or inaccessible. Its only one thread that is consuming so much CPU (nearly 50 %) while CPU consumption by others does not go over 5%. The functional team says there are not performing any extra activities during the time when the issue occurs. So I need to know what is causing this Java thread to consume so much resources then.
Some findings -
1. The address space (Vmsize) of all the threads is around 1.5 GB (the limitation on Linux is 3 GB).
2. We used 'Kill -3 <pid_of_java_thread>' and generated a thread dump in /tmp directory but its only 16 Kb in size (we except it to be in GB's).
So please provide info on how the Java thread can be analyzed ?