jstack使用

jstack主要用来查看某个Java进程内的线程堆栈信息,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多,语法格式如下:

jstack [option] pid
jstack [option] executable core
jstack [option] [server-id@]remote-hostname-or-ip
命令行参数选项说明如下:
-l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况
-m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)

执行下面命令,获取到java进行pid

ps -ef|grep cluemanage

执行下面命令查看最耗时的线程

top -Hp 12600

 从上面看到12735线程最费时间

执行下面命令

printf "%x\n" 12735
31bf

计算出16进制数据

执行下面命令。就可以查看线程使用情况

jstack 12600 |grep 31bf

 

一种更简单的方式,可以吧jstack日志打到指定的文件,然后查看

jstack 20468 > test.txt
vim test.txt

 

posted on 2016-11-16 15:38  一个小小小开发  阅读(231)  评论(0)    收藏  举报

导航