JVM系列-CPU使用率高问题排查方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/projim_tao/article/details/102680626

引言

Java程序在实际生产过程中经常遇到CPU使用率高的问题,那么应该如何排查问题的原因呢,本文大概描述一下排查方法。

一、排查占用CPU的进程

使用top命令,在大写打开的情况下按P键或者在大写没有打开的情况下按 shift+P键,会按照CPU使用率的高低进行排序,查找使用率最高的进程获取进程PID。

二、查找实际占用最高CPU的线程

使用命令top -H -p PID,此处PID就是上一步获取的进程PID,通过此命令可以查看实际占用CPU最高的的线程的ID,此处几位TID

三、获取对应线程的线程栈信息

  • 使用命令printf "%x\n" tid,将线程ID转换为16进制
  • 使用命令jstack pid |grep tid -A 50,此处tid为上一步转换后的16进制,使用此命令可以查看到对应线程的线程栈信息,从对根据线程栈对对应的代码进行分析。

猜你喜欢

转载自blog.csdn.net/projim_tao/article/details/102680626