Hi Nikhil!
Here are my Observations. I can see there are 4 problems in your Thread dump:
1. BLOCKED STATE:
The following threads are in a BLOCKED state and they all have the same stack trace. If threads are BLOCKED for a prolonged period, your application may become unresponsive. Examine their stack trace.
Threads that are in a blocked state: [NOTE: You can check the following Thread's stack trace in the section "Threads with identical stack trace"]
- 44 threads - These threads are BLOCKED on wait() method in java.lang.Object file.
- 13 threads - These threads are BLOCKED on wait() method in java.lang.Object file.
- 13 threads - These threads are BLOCKED on line #1152 of org.apache.catalina.loader.WebappClassLoaderBase file in loadClass() method.
Before getting stuck, the following threads obtained locks: [NOTE: You can check the Thread's stack trace by clicking on the highlighted area as mentioned in the Screenshot]
+ java.util.jar.JarFile is blocking 24 threads:
'http-nio-8080-exec-105' thread is stuck on getEntry() method in java.util.zip.ZipFile file. Before getting stuck, this thread obtained 5 locks (java.util.jar.JarFile lock, java.lang.Object lock...) and never released them. Due to that 24 threads are BLOCKED as shown in the below graph. Examine 'http-nio-8080-exec-105' stack trace to see why it is BLOCKED.
+org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager is blocking 13 threads:
'http-nio-8080-exec-137' thread is stuck on writeBytes() method in java.io.RandomAccessFile file. Before getting stuck, this thread obtained 2 locks (org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager lock, org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper lock) and never released it. Due to that 13 threads are BLOCKED as shown in the below graph. Examine 'http-nio-8080-exec-137' stack trace to see why it is BLOCKED.
+ com.mchange.v2.resourcepool.BasicResourcePool is blocking 5 threads:
'pool-36-thread-8798' thread is stuck on wait() method in java.lang.Object file. Before getting stuck, this thread obtained 1 lock (com.mchange.v2.resourcepool.BasicResourcePool lock) and never released it. Due to that 5 threads are BLOCKED as shown in the below graph. Examine 'pool-36-thread-8798' stack trace to see why it is BLOCKED.
+ java.lang.Object is blocking 1 thread:
'http-nio-8080-exec-149' thread is stuck on interrupt() method in sun.nio.ch.EPollArrayWrapper file. Before getting stuck, this thread obtained 2 locks (java.lang.Object lock, org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper lock) and never released it. Due to that 1 thread is BLOCKED as shown in the below graph. Examine 'http-nio-8080-exec-149' stack trace to see why it is BLOCKED.
2. HIGH CPU:
Following threads are consuming High CPU:
- GC task thread#0 (ParallelGC) thread is consuming a high CPU (62.875%).
- GC task thread#1 (ParallelGC) thread is consuming a high CPU (60.975%).
- VM Thread thread is consuming a high CPU (17.875%).
3. THREADS THAT ARE STUCK WAITING FOR RESPONSE FROM EXTERNAL SYSTEM:
362 threads are stuck waiting for a response from the external system. It can slow down transactions. Examine its stack trace. Here are the tips to resolve this problem.
4. Finalizer Thread:
If the finalizer thread is executing inefficient code, it can result in OutOfMemoryError. finalize() method is implemented in java.util.concurrent.ThreadPoolExecutor class. Poorly implemented finalize() method will degrade entire application's performance.
Edit your Comment