java linux查看线程问题

当线上java服务处于无响应,或占用cpu过高时,可以使用以下命令排查问题

1.jps

使用jps -l查看完整的java进程ID和启动主类的包名或jar的完整路径

jps -v输出jvm完整参数

 2.jstack

jstack -l pid 1>/tmp/jstack.log输出java进程的堆栈信息,-l打印关于锁的附加信息,当线程挂起,无法打印的时候,使用-F强制打印

查看打印信息时,着重查看deadlock和block方面的线程

java linux查看线程问题_第1张图片

3.jmap

打印java进程内存中所有对像的情况,参数:

-histo打印每个class的实例数目,内存占用,类全名信息,如果-histo:live,则只打印活着的对像信息

java linux查看线程问题_第2张图片

-heap打印heap的概要信息,包括gc算法,heap配置等

java linux查看线程问题_第3张图片

-permstat打印持久层信息,打印时间较长

java linux查看线程问题_第4张图片

 

你可能感兴趣的:(linux,java)