美文网首页
java程序CPU 100%调试

java程序CPU 100%调试

作者: nlskyfree | 来源:发表于2018-07-09 15:38 被阅读0次

前置

PID为进程id,NID为线程ID

步骤一、找到最耗CPU的进程

  top 然后键入P,按CPU占用率排序(M是按内存排序)
image.png

步骤二、找到进程中最耗CPU的线程

  top -Hp PID
image.png

步骤三、将线程NID转换为16进程

  printf '%x\n' NID
image.png

步骤四、使用jstack查看堆栈

  jstack PID | grep 'NID' -C行数 --color
image.png

线程状态说明

线程状态:

NEW,未启动的。不会出现在Dump中。
RUNNABLE,在虚拟机内执行的。
BLOCKED,受阻塞并等待监视器锁。
WATING,无限期等待另一个线程执行特定操作。
TIMED_WATING,有时限的等待另一个线程的特定操作。
TERMINATED,已退出的。

dump 文件线程状态:

死锁,Deadlock(重点关注)
执行中,Runnable
等待资源,Waiting on condition(重点关注)
等待获取监视器,Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重点关注)
停止,Parked

相关文章

  • java程序CPU 100%调试

    前置 PID为进程id,NID为线程ID 步骤一、找到最耗CPU的进程 步骤二、找到进程中最耗CPU的线程 步骤三...

  • JVM常用命令之-----jstack

    Jstack jstack命令主要用于调试java程序运行过程中的线程堆栈信息,可以用于检测死锁,进程耗用cpu过...

  • java相关的

    一文让你明白Java字节码 java命令调试程序 java jdb 命令行调试程序 Java编写时钟 Applet...

  • jdb调试本地JAVA程序

    一、配置 先参考该文章对java程序启动前进行配置:eclipse远程调试Web项目和Java程序 调试步骤可参考...

  • CPU使用超过100%,如何处理?

    转载:CPU使用超过100%,如何处理?生产环境有时会遇到java进程CPU使用超过100%,遇到这种问题如何定位...

  • java程序CPU占用过高问题排查

    首先用htop命令查看cpu是哪个程序导致的cpu偏高,发现是java程序 再通过ps命令查看这个程序的线程信息,...

  • Java程序的调试原理及调试体系JDPA

    基本原理 Java 程序都是运行在 Java 虚拟机上的,我们要调试 Java 程序,事实上就需要向 Java 虚...

  • 生产java应用,CPU使用率一直很高,排查思路

    生产java应用,CPU使用率一直很高,排查思路 生产java应用,CPU使用率一直很高,经常达到100%,通过以...

  • 谈谈线上CPU100%排查套路

    引言 不知道在大家面试中,有没有遇到这个问题 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告...

  • java cpu 100% 小记

    记得前几天写过一篇小博文,讲的是遇到cpu 100% 的解决过程今天又遇到了相同的问题,解决过程却异常坎坷,详细问...

网友评论

      本文标题:java程序CPU 100%调试

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