【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

星河Salaxy發表於2022-04-07

運營JAVA專案的你是否經歷過以下情況?


——程式能穩定運營,功能卻沒有響應。


——已經修復的Bug,在新版本上線後Bug依然存在,根本不知道問題出現在哪裡?


——程式穩定運營且功能完備,但跑了一段時間後,發現響應速度變慢了。



碰到這些問題,一般的解決方式都是修改程式碼、重新上線。但對於大企業,上線流程非常繁瑣,如果只是為了多加一行日誌而重新發布版本,想想就很折磨。

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯

新增圖片註釋,不超過 140 字(可選)

今天給大家推薦一款開源的JAVA診斷工具——Arthas。


Arthas 是Alibaba公司研發的開源的JAVA診斷工具,採用了命令列互動的方式,進行排查JVM 相關問題的利器。自從開源以來,深受JAVA開發工程師的喜愛。



Arthas在github上的歡迎程度:

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)


Arthas能做哪些事情?

(1) 能夠提供效能看板,包括執行緒、cpu、記憶體等資訊,並且會定時的重新整理

(2) 根據各種條件檢視執行緒快照。比如找出cpu佔用率最高的n個執行緒

(3) 輸出jvm的各種資訊,如gc演算法、jdk版本、ClassPath等

(4) 檢視/設定sysprop和sysenv

(5) 檢視某個類的靜態屬性,也可以透過ognl語法執行一些語句

(6) 檢視已載入的類的詳細資訊,比如這個類從哪個jar包載入的。也可以檢視類的方法的資訊

(7) dump某個類的位元組碼到指定目錄

(8) 反編譯相關指定的類

(9) 檢視類載入器的一些資訊

(10) 可以讓jvm重新載入某個類

(11) 監控方法的執行,同時能夠獲取到執行入參、出參以及丟擲異常

(12) 追蹤方法執行的呼叫棧和呼叫的時間


一、Arthas執行的工作原理

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)

二、Arthas常用的命令列表

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)

三、Arthas的具體使用和實踐

安裝:

Arthas在github的地址是https://alibaba.github.io/arthas/

安裝arthas的方式有很多種:

1. 直接下載一個可以啟動的jar包然後用java -jar的方式啟動

2. 用官方提供的as.sh指令碼一鍵安裝

3. 用rpm的方式安裝

這邊建議使用第一種方式,因為它簡單而且想遷移的時候也超級方便(畢竟只需要把下載的jar包複製走就行了)。

curl -O https://alibaba.github.io/arthas/arthas-boot.jar

如果下載速度太慢,可以用gitee上的源

curl -O https://arthas.gitee.io/arthas-boot.jar

curl命令直接把arthas-boot.jar下載到你想要的目錄

[root@localhost ~]# ll -lrt

-rw-r--r--. 1 root root   138880 Jun 22 02:55 arthas-boot.jar

四、啟動

用java命令直接啟動

[root@localhost ~]# java -jar arthas-boot.jar --target-ip 10.45.105.248

[INFO] arthas-boot version: 3.3.3

[INFO] Can not find java process. Try to passin command line. Please select an available pid.

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)

透過瀏覽器訪問 http://10.45.105.248:8563/:

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)

透過dashboard命令可以檢視當前執行緒數和jvm記憶體情況:

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)

透過watch 命令檢視返回的結果

【星課堂】JAVA 工程師的線上診斷神器推薦——Arthas

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)


五、Arthas其它命令

Arthas還提供了很多用於監控的命令,比如監控執行時間,反編譯線上的class檔案,甚至在不重啟java應用的情況下直接替換某個類。官方的使用文件已經寫得太詳細了,這裡就不再一一介紹了,大家可以自己嘗試。

參考:https://www.cnblogs.com/spareyaya/p/13177513.html

https://arthas.aliyun.com/doc/


相關文章