阿里開源的Java診斷工具Arthas(阿爾薩斯)


作為大自然搬運工,只是為了幫助大家擴展視野.有興趣建議直奔官網.

官網       下載

當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:

  1. 這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
  2. 我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?
  3. 遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?
  4. 線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
  5. 是否有一個全局視角來查看系統的運行狀況?
  6. 有什么辦法可以監控到JVM的實時運行狀態?
  7. 怎么快速定位應用的熱點,生成火焰圖?

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

快速安裝啟動:

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

java -jar arthas-boot.jar

打印幫助參數

java -jar arthas-boot.jar -h

Arthas 支持在 Linux/Unix/Mac 等平台上一鍵安裝,請復制以下內容,並粘貼到命令行中,敲 回車 執行即可:

curl -L https://alibaba.github.io/arthas/install.sh | sh

上述命令會下載啟動腳本文件 as.sh 到當前目錄,你可以放在任何地方或將其加入到 $PATH 中。直接在shell下面執行./as.sh,就會進入交互界面。

以Java Agent的方式啟動

下載全量的arthas zip包,解壓之后以 -javaagent 的參數指定arthas-agent.jar來啟動:

java -javaagent:/tmp/test/arthas-agent.jar -jar arthas-demo.jar

Windows下安裝使用

arthas\arthas-packaging-3.1.4-bin\  下面有一個arthas-boot.jar包    

執行 (需要保證執行該程序的用戶需要和目標進程具有相同權限)java -jar arthas-boot.jar  

命令行會找到本機所有正在運行的Java進程並編號輸入編號進入相應的Java進程

 阿里提供了比較友好的WebConsole,可以在瀏覽器輸入127.0.0.1:8563 進行訪問

當我們進入這個界面之后,想了解我們的JAVA進程內部的任何信息,都可以找到相關命令去獲取信息,每個命令后都可加相關參數去查詢更精准的所需信息

dashboard   當前系統的實時數據面板,按 ctrl+c 退出。

thread       查看當前線程信息,查看線程的堆棧

jvm       查看當前JVM信息

sysprop     查看當前JVM的系統屬性(System Property)

sysenv    查看當前JVM的環境屬性(System Environment Variables)

vmoption      查看,更新VM診斷相關的參數

perfcounter  查看當前JVM的 Perf Counter信息

sc         查看JVM已加載類信息

sm          查看已加載類的方法信息

jad          反編譯指定已加載類的源碼

watch     讓你能方便的觀察到指定方法的調用情況。能觀察到的范圍為:返回值拋出異常入參,通過編寫 OGNL 表達式進行對應變量的查看

trace      方法內部調用路徑,並輸出方法路徑上的每個節點上耗時

命令還有很多,這里就不一一列舉,此處僅為拋磚引玉,欲知更多相關內容,請再次奔向官網,官網也有中文文檔,對於國人開發者也比較友好

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM