码迷,mamicode.com
首页 > 其他好文 > 详细

CPU飚高问题排查基本步骤

时间:2018-12-16 21:35:56      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:jdk   基本   stack   工具   tac   使用   快照   文件   进程   

CPU 飚高
一般是死循环或者死锁问题导致。

1. 通过 top  命令找到 CPU 消耗最高的进程,并记住进程 ID {pid}。
top -M -n 2 -d 3 >{pid}/top.txt 查看top

2. 再次通过 top -Hp  {pid} 找到 CPU 消耗最高的线程 ID,并记住线程 ID(十进制).


3.通过 JDK 提供的 jstack 工具 dump 线程堆栈信息到指定文件中。
jstack {pid} >{pid}/jstack_1.txt 一次堆栈快照 备用

jstack {pid} >{pid}/jstack_2.txt 两次堆栈快照 备用

由于刚刚的线程 ID 是十进制的,而堆栈信息中的线程 ID 是16进制的,因此我们需要将10进制的转换成16进制的,并用这个线程 ID 在堆栈中查找。
使用 printf "%x\n" [十进制数字] ,可以将10进制转换成16进制。
通过刚刚转换的16进制数字从堆栈信息里找到对应的线程堆栈。就可以从该堆栈中看出端倪。

CPU飚高问题排查基本步骤

标签:jdk   基本   stack   工具   tac   使用   快照   文件   进程   

原文地址:https://www.cnblogs.com/laowz/p/10097693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!