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