排查思路-五步法
1. top命令定位应用进程pid
找到最耗时的cpu的进程pid
top
2. top-hp[pid]定位应用进程对应的线程tid
找到最消耗cpu的线程id
// 执行 top -hp [pid] 定位应用进程对应的线程 tid // 按shift + p 组合键,按照cpu占用率排序 > top -hp 11168
3. printf"%x\n"[tid]将tid转换为十六进制
将线程pid转换为16进制
// printf "%x\n" [tid] 将tid转换为十六进制 > printf "%x\n" 26215 6667
4.jstack[pid]|grep-a10[tid的十六进制]打印堆栈信息
查看线程的堆栈信息
// jstack [pid] | grep -a 10 [tid的十六进制] 打印堆栈信息 > jstack 26215 | grep -a 10 6667
可以查看到代码具体代码行报错
5.根据堆栈信息分析问题
找到对应代码,分析代码
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论