0%

线程诊断

线程运行诊断

nohup java packet.class 运行Java程序

案例1:cpu占用过多

定位:

  • top命令定位哪个进程对cpu的占用过高
  • ps H -eo pid,tid,%cpu|grep进程id 命令进一步定位进程中的哪个县城引起的cpu占用过高
  • jstack 进程id(jdk提供的工具)查看进程中的所有Java线程,线程编号以16进制的形式展示,对应查看哪行哪列发生错误
案例2:程序运行很长时间没有结果

定位:

  • jstack 进程id(jdk提供的工具)查看进程中的所有Java线程,线程编号以16进制的形式展示,对应查看哪行哪列发生dead lock问题

堆内存诊断

  1. jps工具

    jps查看当前系统中有哪写java进程

  2. jmap工具

    jmap -heap 进程id查看对内存的占用情况

  3. jconsole工具

    jconsole 图形界面的,多功能的检测工具,可以连续检测

  4. jvisualvm工具

    jvisualvm 图形界面的多功能检测工具,含有特殊功能堆Dump(堆转储)截取当前状态下堆的状态