top #定位异常的进程
top -H -p pid #查看异常的线程
strace -T -r -c -p pid #查看系统调用和花费的时间
printf "%x/n"线程号 #将异常线程转化为16进制
jstack 进程号|grep 线程号(16进制异常线程号)-A90 #定位异常的代码
- 使用【top】命令定位异常进程,可发现12836的CPU和内存占用率都非常高;
top 命令默认情况下,是每 3 秒刷新一次。也可以通过 top -d <刷新时间间隔> 来指定刷新频率,如top -d 0.1 或top -d 0.01 等。top 执行时,也可以按“s ”键,修改时间间隔。
- 使用【top -H -p 进程号】查看异常线程
- 使用【printf "%x\n" 线程号】将异常线程号转化为16进制
- 使用【jstack 进程号|grep 16进制异常线程号 -A90】来定位异常代码的位置(最后的-A90是日志行数,也可以输出为文本文件或使用其他数字)。可以看到异常代码的位置
可以参考:https://blog.csdn.net/MachaelYong/article/details/78950059