本地安裝Arthas

yann499發表於2021-12-10

1.安裝地址:

點選安裝

2.環境變數是個坑

環境變數要跟springboot 一個jdk
select java 
java -version 
可以去檢視java的版本是否和spring boot 是否是一個版本

3.啟動

java -jar arthas-boot.jar

4.dashboard

dashboard 命令可以檢視系統的實時資料皮膚。
q 或 ctrl+c 可以退出資料面展示。
sc 檢視JVM已載入的類資訊
sm 檢視已載入類的方法資訊
trace 定位方法內部程式碼塊效能耗時情況

資料說明:

ID: Java級別的執行緒ID,注意這個ID不能跟jstack中的nativeID一一對應
NAME: 執行緒名
GROUP: 執行緒組名
PRIORITY: 執行緒優先順序, 1~10之間的數字,越大表示優先順序越高
STATE: 執行緒的狀態
CPU%: 執行緒消耗的cpu佔比,取樣100ms,將所有執行緒在這100ms內的cpu使用量求和,再算出每個執行緒的cpu使用佔比。
TIME: 執行緒執行總時間,資料格式為分:秒
INTERRUPTED: 執行緒當前的中斷位狀態
DAEMON: 是否是daemon執行緒

5.thread

thread 1 列印執行緒 ID 1 的棧

Arthas 支援管道命令,可以利用 thread 1|grep 'main(' 查詢 main class 檢視 CPU 使用率 top n 的執行緒的棧,當前最忙的前 n 個執行緒:
thread -n 3
檢視 5 秒內的 CPU 使用率 top n 的執行緒棧:
thread -n 3 -i 5000
-i 指定 CPU 佔比統計的取樣間隔,單位為毫秒
檢視執行緒是否有阻塞:
thread -b
有時候我們發現應用卡住了, 通常是由於某個執行緒拿住了某個鎖, 並且其他執行緒都在等待這把鎖造成的。 為了排查這類問題,此時使用 -b 引數,找到罪魁禍首。
注意, 目前只支援找出synchronized關鍵字阻塞住的執行緒, 如果是java.util.concurrent.Lock, 目前還不支援

就此為止,想檢視更多的命令解釋,請參見官方文件
alibaba.github.io/arthas/commands....

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章