Why we are collecting thread dump and different ways of thread dump collection in java

Why we are collecting thread dump and different ways of thread dump collection in java


thread dump in Java provides a snapshot of all the threads running in a Java Virtual Machine (JVM) at a specific point in time. It captures the state of each thread, including what each thread is currently doing and what resources it is waiting on. This information is crucial for diagnosing issues such as performance problems, deadlocks, and resource contention


When we are collecting thread dump ?

  1. Application hangs or freeze
  2. High CPU utilisation
  3. Application is running slow
  4. Deadlock situation
  5. Concurrency Issue
  6. Sometime memory leak


Key Components of a Thread Dump

  1. Thread ID and Name: Each thread in the JVM has a unique ID and a name, which helps in identifying and tracking the thread.
  2. Thread State: The state of each thread at the time of the dump. Common states include:

a. RUNNABLE: The thread is actively executing.

b. WAITING: The thread is waiting indefinitely for another thread to perform a specific action.

c. TIMED_WAITING: The thread is waiting for a specified amount of time.

d. BLOCKED: The thread is blocked waiting to acquire a monitor lock.

e. NEW: The thread has been created but not yet started.

f. TERMINATED: The thread has finished execution.

3. Stack Trace: For each thread, a stack trace shows the sequence of method calls that led to the current state of the thread. This helps in understanding what the thread was doing at the time of the dump.

  1. Monitor Information: Details about the locks or monitors that the thread holds or is waiting to acquire. This is particularly useful for diagnosing deadlocks and lock contention issues.
  2. Native Stack Traces: If native code is involved (such as through JNI), the thread dump may include native stack traces showing what the thread is doing in native code.


different ways of thread dump in java

First identify process ID for which we have to collect thread dump . we can use linux top command to identify it

  1. Using jstack

jstack <pid> > thread_dump.txt


2. Using jcmd

jcmd help command give all list of option available for collecting different parameter of jvm

jcmd 48039 Thread.print > thread_dump.txt

3. Using jmap

This is less common for thread dumps; jmap is better known for heap dumps

4. kill -3

5. using VisualVM

6. Using JMC (java mission control)

Tools available for thread dump analysis

  1. FastThread => https://fastthread.io/
  2. Thread Dump Analyzer (TDA) => https://www.ibm.com/support/pages/ibm-thread-and-monitor-dump-analyzer-java-tmda


Thread dumps generated from above commands

48039:

2024-07-28 18:14:49

Full thread dump OpenJDK 64-Bit Server VM (17.0.11+9-Ubuntu-122.04.1 mixed mode, sharing):

Threads class SMR info:

javathread_list=0x000072435016c350, length=34, elements={

0x0000724414014300, 0x0000724414141db0, 0x00007244141431a0, 0x0000724414148750,

0x0000724414149b10, 0x000072441414af30, 0x000072441414c8f0, 0x000072441414de30,

0x00007244141572a0, 0x000072441415e9d0, 0x0000724414162260, 0x00007244143d4ff0,

0x00007244143d7fc0, 0x00007244143da580, 0x00007244143db840, 0x00007244143dcf70,

0x000072433c00a000, 0x000072433c00a6d0, 0x0000724348001cb0, 0x000072433c03b0e0,

0x0000724348002800, 0x000072433c03c1b0, 0x00007243480038c0, 0x0000724348004a70,

0x0000724348005b40, 0x0000724348006c20, 0x000072433d3fec00, 0x000072433d8680f0,

0x0000724350064a60, 0x0000724350166460, 0x0000724350166b00, 0x0000724384000ea0,

0x0000724350167290, 0x000072435016b500

}

"main" #1 prio=5 os_prio=0 cpu=809.28ms elapsed=658.48s tid=0x0000724414014300 nid=0xbba8 waiting on condition [0x0000724419dfe000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep([email protected]/Native Method)

at org.apache.catalina.core.StandardServer.await(StandardServer.java:425)

at webapp.runner.launch.Main.main(Main.java:288)

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=0.71ms elapsed=658.46s tid=0x0000724414141db0 nid=0xbbaf waiting on condition [0x00007243f922c000]

java.lang.Thread.State: RUNNABLE

at java.lang.ref.Reference.waitForReferencePendingList([email protected]/Native Method)

at java.lang.ref.Reference.processPendingReferences([email protected]/Reference.java:253)

at java.lang.ref.Reference$ReferenceHandler.run([email protected]/Reference.java:215)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=0.25ms elapsed=658.46s tid=0x00007244141431a0 nid=0xbbb0 in Object.wait() [0x00007243f912c000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait([email protected]/Native Method)

- waiting on <0x00000000802bf2e8> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)

- locked <0x00000000802bf2e8> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)

at java.lang.ref.Finalizer$FinalizerThread.run([email protected]/Finalizer.java:172)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0.46ms elapsed=658.45s tid=0x0000724414148750 nid=0xbbb1 waiting on condition [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"Service Thread" #5 daemon prio=9 os_prio=0 cpu=0.76ms elapsed=658.45s tid=0x0000724414149b10 nid=0xbbb2 runnable [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"Monitor Deflation Thread" #6 daemon prio=9 os_prio=0 cpu=70.71ms elapsed=658.45s tid=0x000072441414af30 nid=0xbbb3 runnable [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 cpu=2640.74ms elapsed=658.45s tid=0x000072441414c8f0 nid=0xbbb4 waiting on condition [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

No compile task

"C1 CompilerThread0" #9 daemon prio=9 os_prio=0 cpu=1245.84ms elapsed=658.45s tid=0x000072441414de30 nid=0xbbb5 waiting on condition [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

No compile task

"Sweeper thread" #10 daemon prio=9 os_prio=0 cpu=0.12ms elapsed=658.45s tid=0x00007244141572a0 nid=0xbbb6 runnable [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"Notification Thread" #11 daemon prio=9 os_prio=0 cpu=0.13ms elapsed=658.45s tid=0x000072441415e9d0 nid=0xbbb7 runnable [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #12 daemon prio=8 os_prio=0 cpu=1.27ms elapsed=658.45s tid=0x0000724414162260 nid=0xbbb9 in Object.wait() [0x00007243f81fd000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait([email protected]/Native Method)

- waiting on <0x00000000802bf520> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)

- locked <0x00000000802bf520> (a java.lang.ref.ReferenceQueue$Lock)

at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:140)

at java.lang.Thread.run([email protected]/Thread.java:840)

at jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:162)

"NioBlockingSelector.BlockPoller-1" #15 daemon prio=5 os_prio=0 cpu=35.00ms elapsed=657.20s tid=0x00007244143d4ff0 nid=0xbbbe runnable [0x00007243e9bfb000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.EPoll.wait([email protected]/Native Method)

at sun.nio.ch.EPollSelectorImpl.doSelect([email protected]/EPollSelectorImpl.java:118)

at sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:129)

- locked <0x0000000084a36c00> (a sun.nio.ch.Util$2)

- locked <0x0000000084a36bb0> (a sun.nio.ch.EPollSelectorImpl)

at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:141)

at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:342)

"ContainerBackgroundProcessor[StandardEngine[Tomcat]]" #18 daemon prio=5 os_prio=0 cpu=23.98ms elapsed=655.19s tid=0x00007244143d7fc0 nid=0xbbc2 waiting on condition [0x00007243e98fb000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep([email protected]/Native Method)

at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1344)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-ClientPoller-0" #19 daemon prio=5 os_prio=0 cpu=47.88ms elapsed=655.18s tid=0x00007244143da580 nid=0xbbc3 runnable [0x00007243e97fb000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.EPoll.wait([email protected]/Native Method)

at sun.nio.ch.EPollSelectorImpl.doSelect([email protected]/EPollSelectorImpl.java:118)

at sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:129)

- locked <0x000000008b62bfe8> (a sun.nio.ch.Util$2)

- locked <0x000000008b62be80> (a sun.nio.ch.EPollSelectorImpl)

at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:141)

at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1034)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-ClientPoller-1" #20 daemon prio=5 os_prio=0 cpu=49.43ms elapsed=655.18s tid=0x00007244143db840 nid=0xbbc4 runnable [0x00007243e96fb000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.EPoll.wait([email protected]/Native Method)

at sun.nio.ch.EPollSelectorImpl.doSelect([email protected]/EPollSelectorImpl.java:118)

at sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:129)

- locked <0x000000008b62c780> (a sun.nio.ch.Util$2)

- locked <0x000000008b62c618> (a sun.nio.ch.EPollSelectorImpl)

at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:141)

at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1034)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-Acceptor-0" #21 daemon prio=5 os_prio=0 cpu=10.61ms elapsed=655.18s tid=0x00007244143dcf70 nid=0xbbc5 runnable [0x00007243e95fb000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.Net.accept([email protected]/Native Method)

at sun.nio.ch.ServerSocketChannelImpl.implAccept([email protected]/ServerSocketChannelImpl.java:425)

at sun.nio.ch.ServerSocketChannelImpl.accept([email protected]/ServerSocketChannelImpl.java:391)

at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:682)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-1" #22 daemon prio=5 os_prio=0 cpu=184.81ms elapsed=617.54s tid=0x000072433c00a000 nid=0xbc10 waiting on condition [0x00007243e99fb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-2" #23 daemon prio=5 os_prio=0 cpu=4.75ms elapsed=616.96s tid=0x000072433c00a6d0 nid=0xbc11 waiting on condition [0x00007243e9afb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-3" #24 daemon prio=5 os_prio=0 cpu=7.82ms elapsed=616.94s tid=0x0000724348001cb0 nid=0xbc12 waiting on condition [0x00007243e9cfb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-4" #25 daemon prio=5 os_prio=0 cpu=6.94ms elapsed=616.94s tid=0x000072433c03b0e0 nid=0xbc13 waiting on condition [0x00007243e94fb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-5" #26 daemon prio=5 os_prio=0 cpu=7.68ms elapsed=616.91s tid=0x0000724348002800 nid=0xbc14 waiting on condition [0x00007243e93fb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-6" #27 daemon prio=5 os_prio=0 cpu=4.53ms elapsed=616.91s tid=0x000072433c03c1b0 nid=0xbc15 waiting on condition [0x00007243e92fb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-7" #28 daemon prio=5 os_prio=0 cpu=7.29ms elapsed=616.91s tid=0x00007243480038c0 nid=0xbc16 waiting on condition [0x00007243e91fb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-8" #29 daemon prio=5 os_prio=0 cpu=4.98ms elapsed=616.84s tid=0x0000724348004a70 nid=0xbc17 waiting on condition [0x00007243e90fb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-9" #30 daemon prio=5 os_prio=0 cpu=3.00ms elapsed=616.79s tid=0x0000724348005b40 nid=0xbc18 waiting on condition [0x00007243e8ffb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"http-nio-9010-exec-10" #31 daemon prio=5 os_prio=0 cpu=647.42ms elapsed=616.70s tid=0x0000724348006c20 nid=0xbc19 waiting on condition [0x00007243e8efb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x000000008b60ed80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)

at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)

at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)

at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)

at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run([email protected]/Thread.java:840)

"AsyncAppender-ASYNC" #33 daemon prio=5 os_prio=0 cpu=21.99ms elapsed=489.90s tid=0x000072433d3fec00 nid=0xbc33 waiting on condition [0x00007243e8cfb000]

java.lang.Thread.State: WAITING (parking)

at jdk.internal.misc.Unsafe.park([email protected]/Native Method)

- parking to wait for <0x00000000899df188> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)

at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)

at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1625)

at java.util.concurrent.ArrayBlockingQueue.take([email protected]/ArrayBlockingQueue.java:420)

at org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:282)

"Thread-3" #34 daemon prio=5 os_prio=0 cpu=12.91ms elapsed=489.82s tid=0x000072433d8680f0 nid=0xbc34 waiting on condition [0x00007243e8bfb000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep([email protected]/Native Method)

at com.buggyapp.cpuspike.CPUSpikeDemo.start(CPUSpikeDemo.java:30)

at com.buggyapp.LaunchPad.main(LaunchPad.java:84)

at com.buggyapp.LaunchPad.start(LaunchPad.java:186)

at com.buggyapp.servlet.LaunchBuggyAppServlet$BuggyAppThread.run(LaunchBuggyAppServlet.java:202)

"Thread-4" #35 daemon prio=5 os_prio=0 cpu=479195.97ms elapsed=489.81s tid=0x0000724350064a60 nid=0xbc35 runnable [0x00007243e8afa000]

java.lang.Thread.State: RUNNABLE

at com.buggyapp.cpuspike.CPUSpikerThread.run(CPUSpikerThread.java:20)

"Thread-5" #37 daemon prio=5 os_prio=0 cpu=359287.23ms elapsed=369.80s tid=0x0000724350166460 nid=0xbc94 runnable [0x00007243e8dfa000]

java.lang.Thread.State: RUNNABLE

at com.buggyapp.cpuspike.CPUSpikerThread.run(CPUSpikerThread.java:20)

"Thread-6" #38 daemon prio=5 os_prio=0 cpu=241171.79ms elapsed=249.80s tid=0x0000724350166b00 nid=0xbd71 runnable [0x00007243e89fa000]

java.lang.Thread.State: RUNNABLE

at com.buggyapp.cpuspike.CPUSpikerThread.run(CPUSpikerThread.java:20)

"Attach Listener" #39 daemon prio=9 os_prio=0 cpu=0.82ms elapsed=203.55s tid=0x0000724384000ea0 nid=0xbdb3 waiting on condition [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"Thread-7" #40 daemon prio=5 os_prio=0 cpu=123702.67ms elapsed=129.80s tid=0x0000724350167290 nid=0xbe1a runnable [0x00007243e87fa000]

java.lang.Thread.State: RUNNABLE

at com.buggyapp.cpuspike.CPUSpikerThread.run(CPUSpikerThread.java:20)

"Thread-8" #41 daemon prio=5 os_prio=0 cpu=7879.71ms elapsed=9.80s tid=0x000072435016b500 nid=0xbe61 runnable [0x00007243e86fa000]

java.lang.Thread.State: RUNNABLE

at com.buggyapp.cpuspike.CPUSpikerThread.run(CPUSpikerThread.java:20)

"VM Thread" os_prio=0 cpu=26.44ms elapsed=658.46s tid=0x000072441413de20 nid=0xbbae runnable

"GC Thread#0" os_prio=0 cpu=15.54ms elapsed=658.48s tid=0x0000724414070200 nid=0xbba9 runnable

"GC Thread#1" os_prio=0 cpu=8.95ms elapsed=657.35s tid=0x00007243940050b0 nid=0xbbba runnable

"GC Thread#2" os_prio=0 cpu=19.34ms elapsed=657.35s tid=0x0000724394005af0 nid=0xbbbb runnable

"GC Thread#3" os_prio=0 cpu=17.05ms elapsed=657.35s tid=0x0000724394006920 nid=0xbbbc runnable

"G1 Main Marker" os_prio=0 cpu=0.14ms elapsed=658.48s tid=0x00007244140817f0 nid=0xbbaa runnable

"G1 Conc#0" os_prio=0 cpu=0.10ms elapsed=658.48s tid=0x0000724414082760 nid=0xbbab runnable

"G1 Refine#0" os_prio=0 cpu=1.10ms elapsed=658.47s tid=0x0000724414110120 nid=0xbbac runnable

"G1 Service" os_prio=0 cpu=131.39ms elapsed=658.47s tid=0x0000724414111020 nid=0xbbad runnable

"VM Periodic Task Thread" os_prio=0 cpu=380.79ms elapsed=658.45s tid=0x0000724414160320 nid=0xbbb8 waiting on condition

JNI global refs: 15, weak refs: 0





Avinash Neela

Performance Test Engineer

6 个月

Thanks very much

回复

要查看或添加评论,请登录

Pratik Ugale的更多文章

社区洞察

其他会员也浏览了