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函式,主要監控乙...