load过高排查

jstack

线程的运行情况、线程的状态

load过高的排查

  1. jps -mlv 列出所有jvm进程,选择要查的那个,记下pid
  2. top -H -p pid 查出哪个线程占用cpu过高,取该线程的threadid
  3. threadid转成16进制tid  linux命令行下 >  printf "%x" num
  4. jstack tid | grep -A 100 取该线程栈信息的后100行,然后分析信息

 

下面说明一下dump的信息

"pool-18-thread-10" prio=10 tid=0x00007f673807e000 nid=0x24d8 waiting on condition [0x00007f671b971000]

 

  1. waiting on condition   等待某个条件的发生,具体的原因可以查看stack的信息,一般是网络的io,出现大量的waiting on condition,可能是带宽不够,或是网络存在异常
  2. waitint for monitor entry  进入同步块内的线程
  3. Object.wait  阻塞在同步块的线程

猜你喜欢

转载自shifulong.iteye.com/blog/2269277