CPU 100%问题排查过程
1,查找进程&线程
top -c
查看所有进程,并按P
进行cpu降序排序显示。可以找到最吃cpu的进程id。top -Hp pid
通过进程id查看所有线程,按P
进行cpu降序排序显示,找到第一个pid(即为线程tid)。
2,存储堆栈信息
通过jstack -l pid >pid.stack
将1.1中最耗cpu的pid的堆栈信息存储。
3,查找线程对应堆栈信息
- 将1.2中的tid转换成16进制(eg:0xbda)
cat pid.stack | grep bda
就可以定位到线程的相关信息,和出问题的类的代码行数。
参考文档:top命令详解