Arthas 超簡單離線使用教程


簡介

  • Arthas 是阿里巴巴開源的一套監控java應用的工具
  • 官網的文檔地址: https://arthas.aliyun.com/doc/
  • 官方的簡介說明:
  • Arthas 是Alibaba開源的Java診斷工具,深受開發者喜愛。
當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:
這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?
遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?
線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
是否有一個全局視角來查看系統的運行狀況?
有什么辦法可以監控到JVM的實時運行狀態?
怎么快速定位應用的熱點,生成火焰圖?
怎樣直接從JVM內查找某個類的實例?

下載

  • 建議下載全量包,避免僅下載boot無網絡情況下無法使用
    https://arthas.aliyun.com/download/latest_version?mirror=aliyun
  • 2022.3.22時最新的版本是 3.5.6

簡單使用

  • 注意這里僅介紹一些基本的使用(復雜的我還沒學習)
  • 第一次安裝和啟動
打開命令
注意1: 需要使用一個安裝比較完整的jdk, 如果僅是jre可能無法運行
比如我這邊的jdk的安裝路徑為
/myapp/server/runtime/java/x86_64linux/bin/java
那么我就可以如此運行
1. 將壓縮包上傳到某一個路徑,並且解壓縮: 
比如我這邊上傳到了 /arthas/目錄.
2. 執行命令為:
/myapp/server/runtime/java/x86_64linux/bin/java  -jar /arthas/arthas-boot.jar --target-ip 10.110.83.xx 
注意: 可以直接使用jdk全路徑的java 二進制文件執行 -jar 命令
注意: 可以直接使用 --target-ip 的方式暴露一下 arthas的端口出來. 默認為 3658 
注意: 打開 3658的防火牆(建議僅打開部分,不要全部打開,避免安全問題)

簡單使用

  • 啟動命令的效果
[root@centos7ver2009 ~]# /myapp/server/runtime/java/x86_64-linux/bin/java -jar arthas-boot.jar --target-ip 10.110.83.113
[INFO] arthas-boot version: 3.5.3
[INFO] Process 4318 already using port 3658
[INFO] Process 4318 already using port 8563
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 4318 ./server/runtime/caf-bootstrap.jar
  [2]: 8034 sun.tools.jconsole.JConsole
  [3]: 4406 ./dmp-datafactory.jar
  [4]: 4615 ./runtime/rtf-operations-management-bootstrap.jar
  [5]: 4317 ./runtime/rtf-operations-management-bootstrap.jar
1
[INFO] arthas home: /root/.arthas/lib/3.5.6/arthas
[INFO] The target process already listen port 3658, skip attach.
[INFO] arthas-client connect 10.110.83.113 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                          
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                         
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          

wiki       https://arthas.aliyun.com/doc                                        
tutorials  https://arthas.aliyun.com/doc/arthas-tutorials.html                  
version    3.5.6                                                                
main_class                                                                      
pid        4318                                                                 
time       2022-03-22 08:08:40 

簡單使用

  • 注意可以使用網頁端也可以實名 shell 進行處理. 如果有堡壘機比較復雜,建議可以打開端口使用網頁進行監控
  • 注意arthas監控會造成一定程度的性能下降.強烈不建議用於高壓力的高峰時段生產環境
  • 打開網頁 比如我這邊就是 http://10.110.83.xx:3658
  • 效果圖為:
    image
  • 可以直接在黑框里面輸入命令進行調試

重要命令介紹

help
打印命令幫助
dashboard 
會展示 線程和內存信息.
cls
清空已有的內容
thread 
顯示所有的進程信息
thread -b 
打印被鎖的進程
thread -n 10 
打印占用CPU最多的十個進程
jvm
打印java的信息
profiler start / profiler stop
打印火焰圖, 有一個默認轉儲的路徑.
sysprop
打印jvm相關參數信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM