Hi Karthik!
As Sainath suggested, you can check the "CPU consuming threads" section in the fastThread report to see which threads are consuming more CPU.
In the below screenshot, the first column shows the thread name and the second column shows its stack trace. I would recommend going through the complete stack trace to see which class and method a particular thread is executing.
Also, I could see that you are using IBM MQ in your application to send or exchange messages. Total 65 application threads are stuck because this external service is taking time to respond or it's not at all responding back to your application due to that your application threads are stuck at java/net/SocketInputStream.socketRead0() method.
Here is a complete stack trace -
RcvThread: com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection@-1078542554[qmid=SGFPPTH_QM.UAT_2020-10-30_13.23.32,fap=10,channel=SGFPPTH.SVRCONN,ccsid=1208,sharecnv=10,hbint=300,peer=uthfppmq.apac.nsroot.net/10.113.40.230(1716),localport=43343,ssl=no]
stackTrace:
at java/net/SocketInputStream.socketRead0(Native Method)
at java/net/SocketInputStream.socketRead(SocketInputStream.java:127(Compiled Code))
at java/net/SocketInputStream.read(SocketInputStream.java:182(Compiled Code))
at java/net/SocketInputStream.read(SocketInputStream.java:152(Compiled Code))
at com/ibm/mq/jmqi/remote/impl/RemoteTCPConnection.receive(RemoteTCPConnection.java:1673(Compiled Code))
at com/ibm/mq/jmqi/remote/impl/RemoteRcvThread.receiveBuffer(RemoteRcvThread.java:790(Compiled Code))
at com/ibm/mq/jmqi/remote/impl/RemoteRcvThread.receiveOneTSH(RemoteRcvThread.java:751(Compiled Code))
at com/ibm/mq/jmqi/remote/impl/RemoteRcvThread.run(RemoteRcvThread.java:154(Compiled Code))
at com/ibm/msg/client/commonservices/workqueue/WorkQueueItem.runTask(WorkQueueItem.java:209)
at com/ibm/msg/client/commonservices/workqueue/SimpleWorkQueueItem.runItem(SimpleWorkQueueItem.java:100)
at com/ibm/msg/client/commonservices/workqueue/WorkQueueItem.run(WorkQueueItem.java:224)
at com/ibm/ws/wmqcsi/workqueue/WorkQueueManagerImpl$WorkQueueRunnable.run(WorkQueueManagerImpl.java:550)
at java/lang/Thread.run(Thread.java:822)
Edit your Comment