本文為博主原創,未經允許不得轉載:
1. Jstack 用來查看 java 指定進程所包含的 java 線程狀態:
"arthas-NettyHttpTelnetBootstrap-3-3" 線程名
prio=5 優先級=5
tid=0x00007f6a60019000 線程id
nid=0x1f4b 線程對應的本地線程標識nid
java.lang.Thread.State: RUNNABLE 線程狀態
2.使用 Jstack 定位最消耗 cpu 的線程
2.1 使用命令top -p <pid> ,顯示你的java進程的內存情況,pid是java進程號,

2.2 按H,獲取每個線程的內存情況
2.3 找到內存和cpu占用最高的線程tid :19113,並使用 printf "%x\n" 轉為16進制
2.4 使用 jstack 查看該進程對應線程執行的堆棧信息

2.5 根據堆棧信息定位消耗 cpu 的原因