如何排查CPU飙升的问题所在

我们在线上排查问题的时候发现系统的CPU直接爆红了,如何排查问题呢?怎么快速定位问题的所在呢?

linux系统下:

首先我们通过top命令来查看那个进程占用CPU过大:

top
如何排查CPU飙升的问题所在_第1张图片

这里只是简单的模拟一下,假设java进程占用CPU很大,那么我们通过这个进程来查找进程下的线程使用CPU的情况:

ps -mp 293 -O THREAD,tid,time
如何排查CPU飙升的问题所在_第2张图片

此时我们看到一个TID为294的占用CPU相对比较大0.8
我们由这个TID来得到真实的tid

printf "%X\n" 294
在这里插入图片描述
通过进程查询其下线程的情况

jstack 293 |grep 126

在这里插入图片描述

你可能感兴趣的:(java,Java面试系列,java)