传统方式
查看当前占用CPU较大的进程PID. 命令: top定位问题项目部署位置. 命令: pwdx [PID]定位具体问题项目(例如: 多个java进程) 命令: ps aux | grep [PID]根据第一步获取到的PID,查找进程中占用cpu较多的线程ID. 命令: top -Hp [PID]将上一步获取到的线程ID转化为16进制. 命令: printf “0x%x\n” [线程PID]通过java的jstack获取对应线程指定行数的堆栈信息. 命令: jstack [PID] | grep [线程PID] -A 50
使用示例
top pwdx 101647 ps aux | grep 101647 top -Hp 101647 printf “0x%x\n” 101647 jstack 101647 | grep 19d45 -A 50
优化方式
利用工具
服务检测工具脚本工具(例如: 阿里巴巴的show-busy-java-threads )