Arthas使用

簡介

官方文檔鏈接:https://arthas.aliyun.com/doc/quick-start.html

啟動(dòng)arthas

方式一:java -jar arthas-boot

方式二:java -jar arthas-boot pid

兩種方式都可以,方式二要預(yù)先知道JAVA進(jìn)程的PID

命令列表

控制面板

適用場景

場景一:查看當(dāng)前jvm的線程執(zhí)行狀態(tài),也可以使用thread命令

場景二:查看jvm的內(nèi)存使用

示例

1dashboard

image.png

查看class源碼

適用場景

場景一:測試/生產(chǎn)環(huán)境已經(jīng)發(fā)布,方法執(zhí)行與預(yù)期不符,無法確認(rèn)類文件是否發(fā)布成功

場景二:測試/生產(chǎn)環(huán)境代碼執(zhí)行報(bào)錯(cuò),暫時(shí)無法通過IDE工具查看源碼

示例

# eg. com.demo.MainClass

jad --``source``-only com.demo.MainClass

|

監(jiān)聽方法執(zhí)行

適用場景

場景一:代碼執(zhí)行異常,暫無法通過本地IDE工具進(jìn)行DEBUG,通過日志又無法定位問題

場景二:查看方法的參數(shù)、返回結(jié)果

場景三:統(tǒng)計(jì)方法的執(zhí)行耗時(shí)

示例

準(zhǔn)備監(jiān)聽方法

# eg. com.demo.MainClass.doAnyThing()

tt -t com.demo.MainClass doAnyThing

# 監(jiān)聽通用方法可以加參數(shù)以防止方法數(shù)量過多

tt -t com.demo.MainClass doAnyThing params[0].customerId==3

查看監(jiān)聽列表

查看監(jiān)聽的方法列表

# 查看監(jiān)聽的方法列表

tt -l

# 監(jiān)聽的方法太多,只查看入?yún)ustomerId=3的方法

tt -s params[0].customerId==3

查看監(jiān)聽方法的明細(xì)

# 通過index來查看監(jiān)聽方法的詳細(xì)信息

tt -i 1000

# 只想查看入?yún)⒅械哪硞€(gè)對象,不想全量查看,可以加-w參數(shù)

tt -i 1000 -w params[0].userVO

tt -i 1000 -w returnObj.response

熱更新class文件

適用場景

生產(chǎn)環(huán)境無法隨時(shí)重啟部署,通過retransform對運(yùn)行的jvm中的class文件進(jìn)行替換,以達(dá)到不發(fā)布即可更新代碼的目的

示例

# 指定絕對的class路徑加載到j(luò)vm內(nèi)存中

retransform ``/tmp/com/example/demo/arthas/user/UserController``.class

生產(chǎn)環(huán)境的服務(wù)器一般是多臺,手動(dòng)執(zhí)行風(fēng)險(xiǎn)極高,而且屬于奇技淫巧,不推薦當(dāng)作正常發(fā)布的流程

生成JVM火焰圖

適用場景

希望觀察jvm在一定時(shí)間內(nèi)的cpu負(fù)荷

示例

# 單位:秒,執(zhí)行300秒后結(jié)動(dòng)結(jié)束,默認(rèn)采集cpu,默認(rèn)生成svg格式

profiler start --duration 300

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Authas — 開源的java診斷工具 下載安裝 authas是一個(gè)jar包,可以直接下載后運(yùn)行 就可以啟動(dòng)起來...
    AlanKim閱讀 53,214評論 0 17
  • 系列 Arthas入門篇[http://m.itdecent.cn/p/068f67088b8b] Arth...
    晴天哥_王志閱讀 12,411評論 3 10
  • 下載arthas-boot.jar: 然后用java -jar的方式啟動(dòng): 選擇一個(gè)pid進(jìn)入(如1): 通過th...
    675ea0b3a47d閱讀 5,239評論 2 2
  • 1.Arthas是什么 Arthas是Alibaba開源的Java診斷工具他主要解決以下問題 1.這個(gè)類從哪個(gè) j...
    IT三明治閱讀 820評論 0 2
  • Arthas使用筆記 1、監(jiān)控方法:watch 1)-b 在方法調(diào)用前監(jiān)控,默認(rèn)false2)-e 當(dāng)方法發(fā)生異常...
    Mark1317閱讀 888評論 0 0

友情鏈接更多精彩內(nèi)容