Arthas 服務監控

2022-09-07 11:12:13 字數 2534 閱讀 3261

arthas是阿里巴巴中介軟體團隊開源的

j**a

診斷工具。

它在阿里巴巴內部的開發者中被廣泛採用和流行。

arthas

幫助開發人員在基於

j**a

的應用程式的生產環境中排除問題,而無需修改**或重新啟動伺服器

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

1.這個類從哪個 jar 包載入的?為什麼會報各種類相關的 exception?

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

3.4.

線上遇到某個使用者的資料處理有問題,但線上同樣無法 debug,線下無法重現!

5.是否有乙個全域性視角來檢視系統的執行狀況?

6.有什麼辦法可以監控到jvm的實時執行狀態?

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

8.怎樣直接從jvm內查詢某個類的例項?

提供效能看板,包括執行緒、

cpu、記憶體等資訊,並且會定時的重新整理。

根據各種條件檢視執行緒快照。比如找出

cpu佔用率最高的

n個執行緒等

輸出jvm

的各種資訊,如

gc演算法、

jdk版本、

classpath等檢視

/設定sysprop

和sysenv

檢視某個類的靜態屬性,也可以通過

ognl

語法執行一些語句

檢視已載入的類的詳細資訊,比如這個類從哪個

jar包載入的。也可以檢視類的方法的資訊

dump某個類的位元組碼到指定目錄

直接反編譯指定的類

檢視類載入器的一些資訊

可以讓jvm

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

追蹤方法執行的呼叫棧,以及各個方法的呼叫時間

快速安裝

推薦使用

啟動命令:

輸入想要診斷的專案對應數字

啟動成功

一.dashboard命令

輸入dashboard

,按回車/enter,會展示當前程序的資訊,按ctrl+c可以中斷執行。

進入當前系統的實時資料面板,按

ctrl+c

退出。這個面板會實時重新整理,其中包括執行緒資訊、記憶體資訊、

gc資訊、還有一些執行時的資料。

另外,當執行在

ali-tomcat

時,會顯示當前

tomcat

的實時資訊,如

請求的qps, rt,

錯誤數,

執行緒池資訊等等。

二.thread命令

通過thread

命令可以檢視當前

jvm程序的執行緒詳情。可以檢視執行緒的

cpu使用時間佔比,通過指定各種引數可以找出最忙的幾個執行緒,以及阻塞其他執行緒的執行緒。具體如何使用這裡不多做介紹,大家可以去看

arthas

的官方文件。

thread

命令檢視全部執行緒資訊

thread1

指定檢視執行緒

idthread-n 3

展示當前最忙的

3個執行緒展示堆疊

thread-b  

找出當前阻塞其他執行緒的執行緒

thread--state waiting

檢視所有等待的執行緒

獲取指定執行緒的詳細資訊

三.jad命令

arthas jad

命令指定反編譯類

jad 路徑.

類名

Arthas實用案例

經常不知道mysql執行的什麼語句,可以用如下語句去監控mysql的執行語句。注意update 即代表 更新。select 同理。這裡returnobj是觀察了返回值 如需要呼叫dubbo方法,呼叫jedisclient去請求redis等等。這裡推薦idea arthas idea外掛程式 使用方法...

arthas基礎命令

當執行在ali tomcat時,會顯示當前tomcat的實時資訊,如http請求的qps,rt,錯誤數,執行緒池資訊等等。引數說明 引數名稱 引數說明 i 重新整理實時資料的時間間隔 ms 預設5000ms n 重新整理實時資料的次數 dashboard i 10000 n 2重新整理資料時間是10...

python監控 python 監控服務

最近寫了乙個web測試程式,因為部署在其他地方,所以想弄個監控的程序去看服務是不是還在,要是不在好發郵件,就用python簡單的寫了乙個。當然,有的時候也要考慮到監控程序本身就掛了,或者不想監控了。首先監控指令碼是這樣,很簡單 monitor.py coding 簡單的monitor函式,主要監控乙...