Arthas 服務監控


Arthas

Arthas是阿里巴巴中間件團隊開源的Java診斷工具。它在阿里巴巴內部的開發者中被廣泛采用和流行。Arthas幫助開發人員在基於Java的應用程序的生產環境中排除問題,而無需修改代碼或重新啟動服務器

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

1.這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?

2.我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?

3.遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?

4.線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!

5.是否有一個全局視角來查看系統的運行狀況?

6.有什么辦法可以監控到JVM的實時運行狀態?

7.怎么快速定位應用的熱點,生成火焰圖?

8.怎樣直接從JVM內查找某個類的實例?

 

提供性能看板,包括線程、cpu、內存等信息,並且會定時的刷新。

根據各種條件查看線程快照。比如找出cpu占用率最高的n個線程等

輸出jvm的各種信息,如gc算法、jdk版本、ClassPath

查看/設置syspropsysenv

查看某個類的靜態屬性,也可以通過ognl語法執行一些語句

查看已加載的類的詳細信息,比如這個類從哪個jar包加載的。也可以查看類的方法的信息

dump某個類的字節碼到指定目錄

直接反編譯指定的類

查看類加載器的一些信息

可以讓jvm重新加載某個類

監控方法的執行,同時可以獲取到執行的入參、出參以及拋出的異常

追蹤方法執行的調用棧,以及各個方法的調用時間

 

Arthas Install

快速安裝

推薦使用 arthas-boot

下載arthas-boot.jar,然后用java -jar的方式啟動

curl -O https://arthas.aliyun.com/arthas-boot.jar

java -jar arthas-boot.jar

如果下載速度比較慢,可以使用aliyun的鏡像:

curl -L https://arthas.aliyun.com/install.sh | sh

啟動命令:

java -jar arthas-boot.jar

輸入想要診斷的項目對應數字1

Arthas啟動成功

 

一.dashboard命令

 

輸入dashboard回車/enter,會展示當前進程的信息,按ctrl+c可以中斷執行。

 

進入當前系統的實時數據面板,按 ctrl+c 退出。這個面板會實時刷新,其中包括線程信息、內存信息、gc信息、還有一些運行時的數據。
另外,當運行在Ali-tomcat時,會顯示當前tomcat的實時信息,如HTTP請求的qps, rt, 錯誤數, 線程池信息等等。

 

 

 

 

二.thread命令

 

通過thread命令可以查看當前jvm進程的線程詳情。可以查看線程的cpu使用時間占比,通過指定各種參數可以找出最忙的幾個線程,以及阻塞其他線程的線程。具體如何使用這里不多做介紹,大家可以去看arthas的官方文檔。

 

thread命令查看全部線程信息

 

thread1 指定查看線程id

 

thread-n 3 展示當前最忙的3個線程展示堆棧

 

thread-b  找出當前阻塞其他線程的線程

 

thread--state WAITING 查看所有等待的線程

 獲取指定線程的詳細信息

 

 

 三.jad命令

 

Arthas jad 命令指定反編譯類

jad com.xxx.xxx.xxx.entity.StartAppImg

jad 路徑.類名


免責聲明!

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



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