Dump 文件分析关注重点

  • runnable,线程处于执行中
  • deadlock,死锁(重点关注)
  • blocked,线程被阻塞 (重点关注)
  • Parked,停止
  • locked,对象加锁
  • waiting,线程正在等待
  • waiting to lock 等待上锁
  • Object.wait(),对象等待中
  • waiting for monitor entry 等待获取监视器(重点关注)
  • Waiting on condition,等待资源(重点关注),最常见的情况是线程在等待网络的读写

jstack排查Java死锁步骤

  • 在终端中输入jsp查看当前运行的java程序

    • 获取它的pid
  • 使用 jstack -l pid 查看线程堆栈信息
    • 根据pid查询信息
  • 分析堆栈信息

jstack 分析CPU过高问题

  • top

    • 在服务器上,我们可以通过top命令查看各个进程的cpu使用情况,它默认是按cpu使用率由高到低排序的
  • top -Hp pid
    • 通过top -Hp pid可以查看该进程下,各个线程的cpu使用情况,发现哪个线程占用率过高,记下pid
  • jstack pid
    • 通过top命令定位到cpu占用率较高的线程之后,接着使用jstack pid命令来查看当前java进程的堆栈状态
  • jstack -l [PID] >/tmp/log.txt
    • 前3个步骤,堆栈信息已经出来啦。但是一般在生产环境,我们可以把这些堆栈信息打到一个文件里用于后续分析
  • 分析堆栈信息
    • 我们把占用cpu资源较高的线程pid,将该pid转成16进制的值,这个16进制的值就是dump文件当中的nid,在thread dump中,每个线程都有一个nid,我们找到对应的nid,就可以找到对应出现问题代码所在的行数

jstack排查死锁问题相关推荐

  1. 「操作系统」深入理解死锁(什么是死锁?死锁形成条件?如何避免死锁?如何排查死锁?)

    「操作系统」深入理解死锁(什么是死锁?死锁形成条件?如何避免死锁?如何排查死锁?) 参考&鸣谢 什么是线程死锁?形成条件是什么?如何避免? Java圈子 面试官:如何快速排查死锁?如何避免死锁 ...

  2. 什么是死锁?怎么排查死锁?怎么避免死锁?

    突然发现我的图解系统缺了「死锁」的内容,这就来补下. 在面试过程中,死锁也是高频的考点,因为如果线上环境真多发生了死锁,那真的出大事了. 这次,我们就来系统地聊聊死锁的问题. 死锁的概念: 模拟死锁问 ...

  3. java排查死锁_Java死锁的排查和解决方案

    相信程序员都会碰上这样的问题,Java死锁如何排查?又如何解决呢?那么,何为死锁呢?死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象.今天小编一次性来帮助大 ...

  4. jstack排查cpu使用率过高

    jstack排查cpu使用率过高 步骤: 1.top命令找出最高占用的进程(command为java) 2.查看高负载进程下的高负载线程:top -Hp [PID] (或 ps -mp PID -o ...

  5. java jstack 死锁_用jstack找死锁

    java死锁主要依靠jstack命令来查找. 检测jstack 先配置好jdk环境变量,打开一个终端命令行,输入jstack回车.如果看到如下的字样,说明jstack是可用的. Usage: jsta ...

  6. java检测服务器磁盘空间占满_Java性能检测工具-记录一次通过jstack排查Linux服务器CPU占用率很高的实践...

    一.问题描述 Linux服务器的配置是4核16G,将war包部署到tomcat后,启动tomcat,发现内存占用率不高,但是CPU一直高达100%:浏览器输入相关url也无法访问该项目,且tomcat ...

  7. java jstack 死锁_利用jstack检测死锁DeadLock

    首先,制造一个死锁程序如下: public class testJstack { final static Object obj_1 = new Object(); final static Obje ...

  8. 使用jstack 发现死锁

    参考:http://blog.chinaunix.net/uid-20104447-id-4075333.html 1. 据java的sdk说明,当调用一个线程的stop时(暂时不管该不该使用该方法) ...

  9. java死锁怎么用jvm调试_性能测试之JVM的故障排查-死锁

    死锁原因 Java发生死锁的根本原因是:在申请锁时发生了交叉闭环申请.即线程在获得了锁A并且没有释放的情况下去申请锁B,这时,另一个线程已经获得了锁B,在释放锁B之前又要先获得锁A,因此闭环发生,陷入 ...

最新文章

  1. golang mod 包管理使用 引入本地包
  2. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) (Microsoft SQL Server,错误: 233)...
  3. Java并发编程的艺术,解读并发编程的优缺点
  4. 把自定义url配置到SAP Fiori Launchpad上打开
  5. linux/npm/git的简单操作
  6. C++向函数传递数组
  7. Qt中SQL语句update同时更新多字段及设置字段值为空的方法
  8. 骚年,还在为歌荒发愁吗?python教你爬取网易云热门歌单
  9. 八皇后问题-python描述
  10. C++ 课设 职工工资管理系统
  11. GJB 软件质量保证报告(模板)
  12. DVD to MP4视频格式转换器v3.1.0 中文版
  13. 【黑金原创教程】【TimeQuest】【第五章】网表质量与外部模型
  14. python求矩阵逆、伪逆、转置、矩阵乘法
  15. 【支线】输电杆塔识别-YOLO v5在Aidlux的部署
  16. 百度地图天气接口api调用
  17. win10开启自带的手机投屏功能方式
  18. 用Ruby替代Java做rest接口的单元测试!
  19. C51单片机,基于LCD液晶屏的简易时钟
  20. 【摆烂成长组】对分查找-分块查找(编程)C语言

热门文章

  1. CAD2019中文版下载AutoCAD2019安装教程
  2. ROS2承上启下【05】:在单个进程中布置多个节点
  3. JWT 生成Token、解析Token的简单工具类
  4. Fibonacci 数列和 Lucas 数列的性质、推论及其证明
  5. POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)
  6. (C++)1~10000质数表
  7. WP版网易云,解决启动慢问题
  8. ATF启动(一):整体启动流程
  9. CCNA 认证学习(二)
  10. 该不该造自己的轮子?