使用jstack和TDA进行java线程dump分析

时间:2023-03-08 23:53:03
使用jstack和TDA进行java线程dump分析

转载:http://blog.csdn.net/everlasting_188/article/details/51943095

1、jstack重点关注

命令行:jstack [-l][F] pid ,可以进行的dump文件导出 

dump 文件里,值得关注的线程状态有:

死锁,Deadlock(重点关注)
     执行中,Runnable  
     等待资源,Waiting on condition(重点关注)
     等待获取监视器,Waiting on monitor entry(重点关注)
     暂停,Suspended
     对象等待中,Object.wait() 或 TIMED_WAITING
     阻塞,Blocked(重点关注)

停止,Parked

2、工具

2.1 本地分析工具

下载地址: https://java.net/projects/tda/downloads

使用jstack和TDA进行java线程dump分析

说明:

1、区域1:线程和monitor区域,显示总的线程,休眠线程和monitor。点log文件可以显示原始的log文件。

2、区域2:选择区域1中的对象,显示对象相关状态

3、区域3:选择区域2后,下面显示对应的状态

4、区域4:选择菜单的filter,可以增加过滤器来对对应的线程进行查看

使用jstack和TDA进行java线程dump分析

说明:选择monitors后,选择对应的对象,可以显示对应的概要说明。点单个对象,可以看到被那个对象locked

 

TDA还有一个功能还可以嵌入到jconsole中,自己没有试验。

 

2.2在线分析工具

地址见: http://spotify.github.io/threaddump-analyzer/

3、参考文档

http://www.cnblogs.com/nexiyi/p/java_thread_jstack.html   总结的不错的一篇文章,分析方法不错。

http://blog.sina.com.cn/s/blog_855eab95010157uv.html