https://blog.csdn.net/u013735734/article/details/102930307
運(yùn)行锨天,并選定監(jiān)控PID囱淋;
- java -jar arthas-boot.jar ;再輸入相應(yīng)PID的序號樊拓;
- java -jar arthas-boot.jar [PID] 纠亚;
常用命令
1. dashboard 當(dāng)前系統(tǒng)的實(shí)時(shí)數(shù)據(jù)面板
2. thread 查看當(dāng)前 JVM 的線程堆棧信息
使用 thread查看所有線程信息,同時(shí)會(huì)列出每個(gè)線程的 CPU 使用率筋夏,可以看到圖里 ID 為12 的線程 CPU 使用100%蒂胞。
使用命令 thread 12 查看 CPU 消耗較高的 12 號線程信息,可以看到 CPU 使用較高的方法和行數(shù)(這里的行數(shù)可能和上面代碼里的行數(shù)有區(qū)別条篷,因?yàn)樯厦娴拇a在我寫文章時(shí)候重新排過版了)骗随。
上面是先通過觀察總體的線程信息,然后查看具體的線程運(yùn)行情況赴叹。如果只是為了尋找 CPU 使用較高的線程鸿染,可以直接使用命令 thread -n [顯示的線程個(gè)數(shù)] ,就可以排列出 CPU 使用率 Top N 的線程乞巧。
定位到的 CPU 使用最高的方法涨椒。
使用 thread | grep pool 命令查看線程池里線程信息。
thread -b 命令查看死鎖信息
3. watch 方法執(zhí)行數(shù)據(jù)觀測
查看入?yún)⒑统鰠?/h1>
$ watch com.Arthas addHashSet '{params[0],returnObj}'
查看入?yún)⒑统鰠⒋笮?/h1>
$ watch com.Arthas addHashSet '{params[0],returnObj.size}'
查看入?yún)⒑统鰠⒅惺欠癜?'count10'
$ watch com.Arthas addHashSet '{params[0],returnObj.contains("count10")}'
查看入?yún)⒑统鰠ⅲ鰠?toString
$ watch com.Arthas addHashSet '{params[0],returnObj.toString()}'
4. trace 方法內(nèi)部調(diào)用路徑蚕冬,并輸出方法路徑上的每個(gè)節(jié)點(diǎn)上耗時(shí)
trace com.UserController getUser
5. stack 輸出當(dāng)前方法被調(diào)用的調(diào)用路徑
stack com.UserServiceImpl mysql 查看方法的調(diào)用信息
6. tt 方法執(zhí)行數(shù)據(jù)的時(shí)空隧道免猾,記錄下指定方法每次調(diào)用的入?yún)⒑头祷匦畔?/h4>
并能對這些不同的時(shí)間下調(diào)用進(jìn)行觀測
7. monitor 方法執(zhí)行監(jiān)控
監(jiān)控統(tǒng)計(jì)方法的執(zhí)行情況;
每5秒統(tǒng)計(jì)一次 com.UserServiceImpl 類的 get 方法執(zhí)行情況囤热。
monitor -c 5 com.UserServiceImpl get
8. jvm 查看jvm信息
9. vmoption 查看猎提,更新 JVM 診斷相關(guān)的參數(shù)
10.sc 查看 JVM 已加載的類信息
sc -d -f com.Arthas 查看類的字段信息
11.sm 查看已加載類的方法信息
sm 命令查看類的方法信息
sm com.Arthas
12.ognl
ognl 表達(dá)式特殊用法( https://github.com/alibaba/arthas/issues/71 )
ognl '@com.Arthas@hashSet' 查看變量的值
ognl '@com.Arthas@hashSet.size()' 查看靜態(tài)變量 hashSet 大小
ognl '@com.Arthas@hashSet.add("test")' 置值
ognl '@com.Arthas@hashSet' | grep test 查看添加的字符
12. jad 反編譯指定已加載類的源碼
jad com.Arthas
反編譯只顯示源碼
jad --source-only com.Arthas
反編譯某個(gè)類的某個(gè)方法
jad --source-only com.Arthas mysql