当前位置: 首页 > Linux

CPU飙高问题排查

时间:2023-04-07 00:52:31 Linux

目录< titlesplit >文章目录1.查询是哪个进程占用了CPU2,进程是哪个线程占用了CPU3,查询线程的堆栈信息,可以看到CPU这么高,是什么线程在作怪!1.可以使用Top或者top|grep用户名查询哪个进程占用了CPU。例如,这里我们可以使用top|grepdeploy查询当前用户deploy下有哪些进程占用了CPU。如下图,可以发现进程28284占用了CPU2,是哪个进程线程占用了CPU。然后我们查看上面的过程是哪些线程在作怪。使用命令top-H-pPID。这里我们使用top-H-p28284,结果如下图所示。我们发现有几个线程占用率比较高。比如28389、28390等(这里只是展示效果,不要管它是否真的占了很多)3.查询线程的堆栈信息这里需要分两步进行1.转换tid转为16进制数:printf"%xn"tid2查询线程信息:jstack28284|grep6ee5-A10执行结果如下图所示,可以看到我们应用中哪个线程占用的CPU最多。对于例子,这里有一个线程叫SimplePauseDetectorThread_1,下面是根据具体的线程业务分析