我们在线上排查问题的时候发现系统的CPU直接爆红了,如何排查问题呢?怎么快速定位问题的所在呢?
linux系统下:
首先我们通过top命令来查看那个进程占用CPU过大:
top
这里只是简单的模拟一下,假设java进程占用CPU很大,那么我们通过这个进程来查找进程下的线程使用CPU的情况:
ps -mp 293 -O THREAD,tid,time
此时我们看到一个TID为294的占用CPU相对比较大0.8
我们由这个TID来得到真实的tid
printf "%X\n" 294
通过进程查询其下线程的情况
jstack 293 |grep 126