阿里開源Java動態追蹤工具-Arthas的使用

本文僅測試及學習Arthas命令的使用方式,對原理不作探討,有興趣的胖友能夠戳下方美團博客的連接,講解的十分不錯.html

相關連接

arthas中文官方網站java

美團博客關於java動態追蹤的一篇文章,講解了部分原理,推薦閱讀git

官方的命令參考手冊github

介紹

arthas是什麼?能作什麼?web

這裏copy官方文檔的一段話來告訴你們.瀏覽器

Arthas 是Alibaba開源的Java診斷工具,深受開發者喜好。bash

當你遇到如下相似問題而一籌莫展時,Arthas能夠幫助你解決:工具

  1. 這個類從哪一個 jar 包加載的?爲何會報各類類相關的 Exception?
  2. 我改的代碼爲何沒有執行到?難道是我沒 commit?分支搞錯了?
  3. 遇到問題沒法在線上 debug,難道只能經過加日誌再從新發布嗎?
  4. 線上遇到某個用戶的數據處理有問題,但線上一樣沒法 debug,線下沒法重現!
  5. 是否有一個全局視角來查看系統的運行情況?
  6. 有什麼辦法能夠監控到JVM的實時運行狀態?

Arthas支持JDK 6+,支持Linux/Mac/Winodws,採用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。學習

安裝

推薦使用:測試

wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
複製代碼

選擇已經運行的java進程便可.

以後會進入arthas命令行,也能夠選擇在瀏覽器打開127.0.0.1:8563,經過webUI來操做.

功能

dashboard

能夠查看當前JVM的內存信息以及線程信息.

thread

直接使用能夠列出全部的線程,也可使用thread 1,來查看具體某個線程的堆棧信息.(後面的數字爲線程ID).

jad

反編譯某個class,jad demo.MathGame,會在命令行打印出反編譯以後的源碼.

watch

經過watch命令來持續觀測某一個方法的返回值.

watch demo.MathGame primeFactors returnObj
複製代碼

退出

使用exit/quit命令,暫時退出,後續能夠繼續鏈接.

使用shutdown命令完全斷開鏈接並reset class文件.

sc,sm

查看對應的類加載信息,方法加載信息.

trace

查看方法的內部調用路徑,並返回每一個節點的耗時狀況.

stack

輸出當前方法被調用的調用路徑

完.





ChangeLog

2019-03-07 完成

以上皆爲我的所思所得,若有錯誤歡迎評論區指正。

歡迎轉載,煩請署名並保留原文連接。

聯繫郵箱:huyanshi2580@gmail.com

更多學習筆記見我的博客------><a href="http://huyan.couplecoders.tech" }}/">呼延十

相關文章
相關標籤/搜索