java无响应堆栈信息排查

1.先找到程序的进程id 

2.获取进程的线程

jstack -F 18176

 

 

这个程序没有被锁死的线程,上图信息中会写哪一个线程被锁死了

3 使用jdb连接JVM查看线程情况

jdb -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=18176

4.查看线程列表

5.获取某一个线程的堆栈信息

 这样能看见某一个线程的代码执行情况

 

 

java 查看内存信息shell

jstat -gcutil  18176

 

 

 

查看某进程下所有线程使用cpu的列表

pidstat -p < PID > 1 3 -u -t

找到cpu较高的线程id 29900 10进制转化为16进制为 74CC

查看线程74CC的堆栈信息输出到当前目录stack.log文件中

jstack pid > stack.log

 

 

线程的状态:
NEW                     未启动的。不会出现在Dump中。
RUNNABLE          在虚拟机内执行的。
BLOCKED            受阻塞并等待监视器锁。
WATING               无限期等待另一个线程执行特定操作。
TIMED_WATING  有时限的等待另一个线程的特定操作。
TERMINATED      已退出的。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章