診斷工具--arthas使用教程


1.背景

 Arthas 是 Alibaba 在 2018 年 9 月開源的 Java 診斷 工具。

2.解決問題

得益於 Arthas 強大且豐富的功能,讓 Arthas 能做的事情超乎想象。下面僅僅列舉幾項常見的使用情況,更多的使用場景可以在熟悉了 Arthas 之后自行探索。

  1. 是否有一個全局視角來查看系統的運行狀況?
  2. 為什么 CPU 又升高了,到底是哪里占用了 CPU ?
  3. 運行的多線程有死鎖嗎?有阻塞嗎?
  4. 程序運行耗時很長,是哪里耗時比較長呢?如何監測呢?
  5. 這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
  6. 我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?
  7. 遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?
  8. 有什么辦法可以監控到 JVM 的實時運行狀態?

3.常用命令

cls: 清屏命令

dashboard會展示當前進程的信息,包含了進程信息,堆棧信息,系統信息,jdk版本信息;退出命令: ctrl+c可以中斷執行。

jad來反編譯: jad  類全路徑

 

退出arthas: 可以用 quit 或者 exit 命令。完全退出arthas,可以執行 stop 命令。

 

4.常見問題使用

1. 遠程聯調:在日常開發中,我們在聯調階段,發現在我們程序代碼上沒有任何異常,但是就是結果不對。一定是程序沒有按照我們編寫流程走。由於某些場景有難以復現,所以調試很麻煩。此刻我們可以使用 Arthas + Remote 遠程調用方式。

 Remote工具

remote是一個xdebug工具,它有一個強大的功能,就是鏈接遠程服務代碼,但是一定要保證本地代碼和遠程服務器代碼一致。如此強大的功能卻有一個致命的問題,稍后在說。

 

 

 

 

 具體做法:https://blog.csdn.net/lbh199466/article/details/105661739

缺點:

  a. 未知問題:

 

 

引用

https://arthas.aliyun.com/doc/spring-boot-starter.html


免責聲明!

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



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