问题排查
1、核心排查步骤:执行‘top’命令,查看所有进程占系统CPU的排序,极大可能第一个就是咱们的Java进程,PID那列就是进程号,假设PID=1677。
2、执行‘top -Hp PID’命令,例如:top -Hp 1677,查看Java进程ID为1677下的所有线程占CPU的情况。执行cpu最高的线程对应的进程ID为1700。
3、执行“printf '%x' PID”命令:后续查看线程堆栈信息展示的都是十六进制,为了找到该线程的堆栈信息,需要把线程号转成16进制。例如,printf '%x' 1700 打印:6a4,那么在jstack中进程号就是6a4。
4、执行“jstack 1677 > x.txt”,将1677进程下信息记录到x.txt文本中。
5、通过“vim x.txt”命令打开x.txt文本,按下 “ / ” 进入搜索模式,输入 ‘6a4’匹配到该进程,找到有问题的代码行并排查