jstack 命令

NAME
       jstack - Prints Java thread stack traces for a Java process,core file,or remote debug server.

SYnopSIS
       jstack [ options ] pid

       jstack [ options ] executable core

       jstack [ options ] [ [email protected] ] remote-hostname-or-IP

参数:

     -F 当’jstack [-l] pid’没有相应的时候强制打印栈信息,如果直接jstack无响应时,用于强制jstack,一般情况不需要使用。
     -l 长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表,会使得JVM停顿得长久得多(可能会差很多倍,比如普通的jstack可能几毫秒和一次GC没区别,加了 -l 就是近一秒的时间),-l 建议不要用。
     -m 打印java和native c/c++ 框架的所有栈信息.可以打印JVM的堆栈,显示上Native的栈帧,一般应用排查不需要使用。

示例:

jstack pid

分享图片

 

查看线程cpu占用:

top -H -p  pid //找到占用较高的线程id

python -c "print hex(线程id)" //转换成16进制的地址

jstack pid |grep  -A30 16进制地址

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...