CPU飈高問題排查基本步驟

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進制數字從堆棧信息裏找到對應的線程堆棧。就能夠從該堆棧中看出端倪。工具

相關文章
相關標籤/搜索