什麼是Arthas(阿爾薩斯)
環境說明
Arthas
支援 JDK 6+,支援 Linux/Mac/Windows,採用命令列互動模式,同時提供豐富的 Tab
自動補全功能,進一步方便進行問題的定位和診斷。
安裝&下載
方式一
curl -O https://arthas.aliyun.com/math-game.jar
java -jar math-game.jar
方式二
官網地址:https://arthas.aliyun.com/
- 執行紀錄檔路徑
~/logs/arthas/arthas.log
-
退出 arthas
- 如果只是退出當前的連線,其他使用者端不受影響,可以用 quit或者exit命令
- 目標程序上的 arthas 還會繼續執行,埠保持開放,下次連線時執行
java -jar arthas-boot.jar
可以直接連線上
- 如果想完全退出 arthas,可以執行stop命令
- 生產環境中,推薦使用:stop
常用基礎命令實戰
- base64 - base64 編碼轉換,和 linux 裡的 base64 命令類似
- cat - 列印檔案內容,和 linux 裡的 cat 命令類似
- cls - 清空當前螢幕區域
- echo - 列印引數,和 linux 裡的 echo 命令類似
- grep - 匹配查詢,和 linux 裡的 grep 命令類似
- help - 檢視命令幫助資訊
- history - 列印命令歷史
- keymap - Arthas 快捷鍵列表及自定義快捷鍵
- pwd - 返回當前的工作目錄,和 linux 命令類似
- quit - 退出當前 Arthas 使用者端,其他 Arthas 使用者端不受影響
- reset - 重置增強類,將被 Arthas 增強過的類全部還原,Arthas 伺服器端關閉時會重置所有增強過的類
- session - 檢視當前對談的資訊
- stop - 關閉 Arthas 伺服器端,所有 Arthas 使用者端全部退出
- tee - 複製標準輸入到標準輸出和指定的檔案,和 linux 裡的 tee 命令類似
- version - 輸出當前目標 Java 程序所載入的 Arthas 版本號
其他命令:https://arthas.aliyun.com/doc/commands.html
heapdump
- 生成堆疊快照
heapdump/Users/chenyanbin/Desktop/1.hprof
class/classloader 相關
- classloader - 檢視 classloader 的繼承樹,urls,類載入資訊,使用 classloader 去 getResource
- dump - dump 已載入類的 byte code 到特定目錄
- jad - 反編譯指定已載入類的原始碼
- mc - 記憶體編譯器,記憶體編譯
.java
檔案為.class
檔案
- redefine - 載入外部的
.class
檔案,redefine 到 JVM 裡
- retransform - 載入外部的
.class
檔案,retransform 到 JVM 裡
- sc - 檢視 JVM 已載入的類資訊
- sm - 檢視已載入類的方法資訊
monitor/watch/trace 相關
- monitor - 方法執行監控
- stack - 輸出當前方法被呼叫的呼叫路徑
- trace - 方法內部呼叫路徑,並輸出方法路徑上的每個節點上耗時
- tt - 方法執行資料的時空隧道,記錄下指定方法每次呼叫的入參和返回資訊,並能對這些不同的時間下呼叫進行觀測
- watch - 方法執行資料觀測