Arthas Install
快速安裝
使用arthas-boot(推薦)
下載arthas-boot.jar,然后用java -jar的方式啟動:
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
Docker
通過Docker快速入門
刪除本地已有的arthas-demo docker container(非必要)
$ docker stop arthas-demo || true && docker rm arthas-demo || true
啟動arthas-demo
$ docker run --name arthas-demo -it hengyunabc/arthas:latest /bin/sh -c "java -jar /opt/arthas/arthas-demo.jar"
啟動arthas-boot來進行診斷
$ docker exec -it arthas-demo /bin/sh -c "java -jar /opt/arthas/arthas-boot.jar"
診斷Docker里的Java進程
docker exec -it ${containerId} /bin/bash -c "wget https://alibaba.github.io/arthas/arthas-boot.jar && java -jar arthas-boot.jar"
診斷k8s里容器里的Java進程
kubectl exec -it ${pod} --container ${containerId} -- /bin/bash -c "wget https://alibaba.github.io/arthas/arthas-boot.jar && java -jar arthas-boot.jar"
把Arthas安裝到基礎鏡像里
可以很簡單把Arthas安裝到你的Docker鏡像里。
FROM openjdk:8-jdk-alpine
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
進階使用
基礎命令
help——查看命令幫助信息
cls——清空當前屏幕區域
session——查看當前會話的信息
reset——重置增強類,將被 Arthas 增強過的類全部還原,Arthas 服務端關閉時會重置所有增強過的類
version——輸出當前目標 Java 進程所加載的 Arthas 版本號
history——打印命令歷史
quit——退出當前 Arthas 客戶端,其他 Arthas 客戶端不受影響
shutdown——關閉 Arthas 服務端,所有 Arthas 客戶端全部退出
keymap——Arthas快捷鍵列表及自定義快捷鍵
jvm相關
dashboard——當前系統的實時數據面板
thread——查看當前 JVM 的線程堆棧信息
jvm——查看當前 JVM 的信息
sysprop——查看和修改JVM的系統屬性
sysenv——查看JVM的環境變量
getstatic——查看類的靜態屬性
New! ognl——執行ognl表達式
class/classloader相關
sc——查看JVM已加載的類信息
sm——查看已加載類的方法信息
dump——dump 已加載類的 byte code 到特定目錄
redefine——加載外部的.class文件,redefine到JVM里
jad——反編譯指定已加載類的源碼
classloader——查看classloader的繼承樹,urls,類加載信息,使用classloader去getResource
monitor/watch/trace相關
monitor——方法執行監控
watch——方法執行數據觀測
trace——方法內部調用路徑,並輸出方法路徑上的每個節點上耗時
stack——輸出當前方法被調用的調用路徑
tt——方法執行數據的時空隧道,記錄下指定方法每次調用的入參和返回信息,並能對這些不同的時間下調用進行觀測