Arthas-Java的線上問題定位工具

Arthas(阿爾薩斯) 能爲你做什麼?

_images/arthas.png

Arthas 是Alibaba開源的Java診斷工具,深受開發者喜愛。

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

  1. 這個類從哪個 jar 包加載的?爲什麼會報各種類相關的 Exception?

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

  3. 遇到問題無法在線上 debug,難道只能通過加日誌再重新發布嗎?

  4. 線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!

  5. 是否有一個全局視角來查看系統的運行狀況?

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

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

Arthas支持JDK 6+,支持Linux/Mac/Winodws,採用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

一、準備程序包

官方地址:https://alibaba.github.io/arthas/

下載地址:阿里雲鏡像:https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.2.0/arthas-packaging-3.2.0-bin.zip。這個比較快,其他我就不列入了。

配置遠程連接服務:arthas-tunnel-server-3.2.0.jar

上面是準備工作。

二、部署

現在開始配置和部署服務:

將下載下來的arthas-packaging-3.2.0放到linux服務器上。我使用的是centos 7 ,解壓,

並將遠程監控服務arthas-tunnel-server-3.2.0.jar放到此文件夾,這塊沒有要求,我是爲了方便。

 下面就是啓動了!

三、啓動

我總結爲兩種方式:

1.有一種簡單不安全的方式:

 java -jar arthas-boot.jar  --target-ip '192.168.232.100'

完事!如果你覺得這樣你能接受那你就不用往下看了。

 

2.使用arthas tunnel server連接遠程arthas

下面具體將操作方式!

啓動遠程連接服務:

端口默認爲8080.我這邊做了調整。arthas agent連接的端口是7777。

 java -jar  -Dserver.port=8081  arthas-tunnel-server-3.2.0.jar &

 啓動arthas:

 java -jar arthas-boot.jar --tunnel-server 'ws://192.168.232.100:7777/ws'

注意上面的接口中的紅線框部分是agentId。後面連接會用到。

在瀏覽器輸入訪問地址:

http://192.168.232.100:8081/   

192.168.232.100:是我啓動服務是配合的ip地址也就是服務器的地址。端口8081是我自定義的。

最終連接頁面:

至此服務已經配置完成。

四、常用命令

Arthas 基礎命令:

help 查看命令幫助信息

cls 清空當前屏幕區域

session 查看當前會話的信息

reset 重置增強類,將被 Arthas 增強過的類全部還原,Arthas 服務端關閉時會重置所有增強過的類

version 輸出當前目標 Java 進程所加載的 Arthas 版本號

history 打印命令歷史

quit 退出當前 Arthas 客戶端,其他 Arthas 客戶端不受影響

stop 關閉 Arthas 服務端,所有 Arthas 客戶端全部退出

keymap Arthas快捷鍵列表及自定義快捷鍵

dashboard 當前系統的實時數據面板

thread 查看當前 JVM 的線程堆棧信息
watch 方法執行數據觀測
trace 方法內部調用路徑,並輸出方法路徑上的每個節點上耗時
stack 輸出當前方法被調用的調用路徑
tt 方法執行數據的時空隧道,記錄下指定方法每次調用的入參和返回信息,並能對這些不同的時間下調用進行觀測
monitor 方法執行監控
jvm 查看當前 JVM 信息
vmoption 查看,更新 JVM 診斷相關的參數
sc 查看 JVM 已加載的類信息
sm 查看已加載類的方法信息
jad 反編譯指定已加載類的源碼
classloader 查看 classloader 的繼承樹,urls,類加載信息
heapdump 類似 jmap 命令的 heap dump 功能

完整命令:https://alibaba.github.io/arthas/commands.html 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章