CPU高负载原因定位的一般方法——Java版

总体原理:先定位到CPU高的进程,再定位到线程,然后从jstack导出的文件中找到该线程对应的方法

  1. 使用 top 命令找到CPU高的进程
    top查看进程

  2. 使用命令 shift + H 切换到线程模式,找到线程执行CPU高的线程号查看线程号

  3. 把线程号转成16进制
    print "%x\n" 40437

  4. 使用jstack 命令,将线程文件dump下来
    Jstack pid > tmp.txt

有可能导出的时候,cpu并没有飚高哦。间歇性的cpu高场景,dump要看运气

  1. 用刚刚转换的线程号,去dump出来的文件中检索定位,可以定位到方法.
    定位方法

猜你喜欢

转载自blog.csdn.net/somehow1002/article/details/110209953