本文為博主原創,未經允許不得轉載:
Arthas 是Alibaba開源的Java診斷工具,深受開發者喜愛。在線排查問題,無需重啟;動態跟蹤Java代碼;實時監控JVM狀態。
- Github: https://github.com/alibaba/arthas
- 文檔: https://arthas.aliyun.com/doc/
下載arthas-boot.jar,再用java -jar命令啟動:
wget https://arthas.aliyun.com/arthas-boot.jar ; java -jar arthas-boot.jar
arthas-boot是Arthas的啟動程序,它啟動后,會列出所有的Java進程,用戶可以選擇需要診斷的目標進程。

選擇需要監控進程前的序號,輸入 1 ,再Enter 回車,便會打印 arthas 的banner:

輸入 help 可以查看 arthas 的所有命令:

Dashboard
dashboard 命令可以查看當前系統的實時數據面板。分為三個部分:第一部分為cpu監控,第二部分為內存監控,第三部分為環境信息

輸入 q 或者 Ctrl+C 可以退出dashboard命令。
還可以使用指定的方式啟動,在瀏覽器web頁面進行訪問服務器的arthas 控制台:
指定arthas 服務所在的ip地址:--target-ip 112.25.26.68
指定arthas 服務訪問的端口及監聽的服務進程: --telnet-port 3658 19113
java -jar arthas-boot.jar --target-ip 112.25.26.68 --telnet-port 3658 19113
Thread
直接執行 thread ,查看所有的線程:

查看CPU使用率top n線程的棧 :thread -n 3

thread pid 命令會打印線程ID 的棧。

Sc
可以通過 sc 命令來查找JVM里已加載的類:

Jad
可以通過 jad 命令來反編譯代碼.查看當前jvm 中類的代碼。此命令在項目發布定位某個類信息有沒有更改過來時,使用這個命令可以很快定位代碼是否修改。

Watch
通過watch命令可以查看函數的參數/返回值/異常信息。
退出Arthas
用 exit 或者 quit 或者 stop 命令可以退出Arthas。
