Jstack线上问题排查

1.top查找出哪个进程消耗的cpu高。执行top命令,默认是进程视图,其中PID是进程号(记下进程号)

2.top中shift+h 或“H”查找出哪个线程消耗的cpu高 (记下最高的几个线程号)

  1. jstack 进程号 >> pid-cpu.log

4、printf “%x\n” 线程号(得到线程16进制)

  1. jstack查找这个线程的信息
    jstack [进程号]|grep -A 10 [线程的16进制]

我要看的信息是类似于这样的:
“http-8081-11” daemon prio=10 tid=0x00002aab049a1800 nid=0x52bb in Object.wait() [0x0000000042c75000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)

你可能感兴趣的:(私人干货,java)