美文网首页程序员
线程状态及stack dump分析

线程状态及stack dump分析

作者: 牛逼的二进制 | 来源:发表于2017-03-07 00:58 被阅读0次

线程的几种状态及状态之间的转换下面这张图描述的很清晰:


线程状态转换(图片来源于网络)

另外推荐大家一篇文章,这篇文章写的非常不错,有兴趣的也可以关注下他的公众号:hollischuang
Java命令学习系列(二)——Jstack

下面说下如何根据stack dump分析系统问题:
1)找到应用的pid,命令:ps -ef | grep <keyword>
示例:ps -ef | grep tomcat


2)打印stack dump到本地,命令:jstack -l <pid> > <filename>
示例:jstack -l 15469 >jstack.log


3)通过pid,找到该进程下所有的线程信息,命令:top -Hp <pid>
示例:top -Hp 15469

4)观察第三步界面上的进程信息,随便挑选一个pid,然后将这个pid转成16进制的。可以在电脑上打开计算机->程序员 选择十进制,输入pid,然后在选择十六进制,换算成十六进制:

5)打开第二步打印的stack dump,检索第四步中的十六进制pid(所有大写变小写),命令lessgrep

6)到此就能把服务器上看到的进程id和线程dump的信息映射起来了,剩下的就需要我们对线程自身的了解、对自己应用的了解以及JVM的GC线程等等。
观察线程的运行情况,比如某一个线程占中CPU很高,那可能就有死锁了。通过stock dump的分析还可以看出线程是不是卡死在某些外部资源上了。

下次碰到实际的问题时再补充下根据stack dump找到问题原因的例子……

相关文章

  • 线程状态及stack dump分析

    线程的几种状态及状态之间的转换下面这张图描述的很清晰: 另外推荐大家一篇文章,这篇文章写的非常不错,有兴趣的也可以...

  • 2018-09-20 dump_stack

    【转】内核中dump_stack()的实现,并在用户态模拟dump_stack() 用户空间dump_stack ...

  • jstack 排查现成问题

    关于线程问题排查,其实有很多方式,其实核心就是dump快照,分析。 如何dump线程快照,有很多种方法,本文就摘取...

  • java多线程

    java多线程 线程类源码解读(2)-线程状态及常用方法 线程类源码解读(3)-线程中断 逐行分析AQS源码(1)...

  • MySQL dump线程分析

    author:sufei 版本:8.0.16  本文主要分析MySQL复制中主库dump线程的执行过程。当然dum...

  • Java线程Dump分析

    Thread Dump介绍 什么是Thread Dump Thread Dump是非常有用的诊断Java应用问题的...

  • 【java】java 线程在线分析工具

    jstack(查看线程)、jmap(查看内存)和jstat(性能分析) jstack - Stack Trace ...

  • jstack使用

    使用jstack分析指定应用线程使用异常排除。 使用jstack命令dump线程信息,例如查看Pid为3117的进...

  • JVM thread dump日志文件

    在介绍thread dump文件之前,咱们得先来了解下Java线程状态。一般来说Java线程状态有五种:新建...

  • Java死锁检测之JStack

    JStack 是JDK自带的命令行工具,主要用于线程Dump分析。(Dump文件是进程的内存镜像。保存的是进程的执...

网友评论

    本文标题:线程状态及stack dump分析

    本文链接:https://www.haomeiwen.com/subject/ealjgttx.html