天天看点

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

(1)最新版本V4.6.9下载地址:https://www.ibm.com/support/pages/ibm-thread-and-monitor-dump-analyzer-java-tmda,具体使用帮助也可以在该页面查看。

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

(2)需要本地安装JDK并配置JAVA环境变量。

(3)之后使用java -jar jca469.jar即可打开工具。

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java
Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

直接将dump出来的堆栈信息,打开,便可分析。

如打开之前模拟CPU 100%使用jstack打印输出的堆栈信息文件test.out

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

在Thread Dump List中右键可以查看Thread详细信息。

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java
在IBM Thread and Monitor Dump Analyzer for Java工具中,请求线程可分为以下几种状态:
  1.死锁,Deadlock(重点关注)
  2.执行中,Runnable(重点关注)
  3.等待资源,Waiting on condition(重点关注)
  4.等待监控器检查资源,Waiting on monitor
  5.暂停,Suspended
  6.对象等待中,Object.wait()
  7.阻塞,Blocked(重点关注)
  8.停止,Parked
  Deadlock:死锁线程:一般指多个线程调用间,进入相互资源占用,导致一直等待无法释放的情况。
  Runnable:一般指该线程正在执行状态中,该线程占用了资源,正在处理某个请求,有可能正在传递SQL到数据
  库执行,有可能在对某个文件操作,有可能进行数据类型等转换。
  Waiting on condition:等待资源,如果堆栈信息明确是应用代码,则证明该线程正在等待资源,一般是大
  量读取某资源,且该资源采用了资源锁的情况下,线程进入等待状态,等待资源的读取。又或者,
  正在等待其他线程的执行等。
  Blocked:线程阻塞,是指当前线程执行过程中,所需要的资源长时间等待却一直未能获取到,被容器的线程管      
Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

更详细使用仅分析参见:https://blog.csdn.net/weixin_30657541/article/details/98034829

继续阅读