本文為博主原創,未經允許不得轉載:
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。