前言
线上程序突然CPU飙升,,,在一个并发不大的网站,这种情况基本上99.99%都是程序有死循环。接下来看看怎么具体定位排查吧。
硬啃
看看最近的代码,搜索关键字while,根据我多年临床经验,100%是哪位菜鸟写了bug。
如果找不到原因,继续往下看。
线程dump
1、找出java的进程id
jps -l
2、通过进程id找到进程中各个线程的情况,包含CPU使用占比
top -p pid
3、输出H,按照CPU使用占比排序,并找到CPU占比高的线程threadId
H
4、通过线程id打印出线程dump
jstack -l threadId > /tmp/threadId.txt
5、然后就可以找到可以代码处了