周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。

1.1.Jstack 
1.1   jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下图所示 
java jdk自带程序分析(内存分析/线程分析) 
注:这个和thread dump是同样的结果。但是thread dump是用kill -3 pid命令,还是服务器上面少用kill为妙

 

1.2   命名行格式 
jstack [ option ] pid 
jstack [ option ] executable core 
jstack [ option ] [server-id@]remote-hostname-or-IP 
最常用的还是jstack  pid 

1.3   在thread dump中,要留意下面几种状态 
死锁,Deadlock(重点关注) 
等待资源,Waiting on condition(重点关注) 
•  等待获取监视器,Waiting on monitor entry(重点关注) 
阻塞,Blocked(重点关注) 
•  执行中,Runnable 
•  暂停,Suspended 
•  对象等待中,Object.wait() 或 TIMED_WAITING 
•  停止,Parked 
下面有详细的例子讲这种分析,大家参考原著 
http://www.cnblogs.com/zhengyun_ustc/archive/2013/01/06/dumpanalysis.html 

相关文章:

  • 2021-12-18
  • 2021-06-23
  • 2021-06-05
  • 2021-05-13
  • 2021-10-08
猜你喜欢
  • 2021-11-18
  • 2022-12-23
  • 2021-09-21
  • 2021-06-06
  • 2022-03-02
  • 2021-04-21
相关资源
相似解决方案