Arthas遠程監控+使用


遠程監控配置

  1. 目標服務器上傳arthas-boot.jar 包
  2. 本地運行java -jar arthas-tunnel-server.jar
  3. 遠程運行java -jar arthas-boot.jar --tunnel-server ws://192.168.10.16:7777/ws ip是步驟2中機器的ip地址

命令

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

  • dashboard -i 3000 -n 5 每隔3秒5次的打印

thread——查看當前 JVM 的線程堆棧信息

  • thread 打印當前線程信息
  • thread [id]
  • thread -b 找出當前阻塞其他線程的線程
  • thread -n 5 打印前五名最消耗CPU的線程,可以及時找到CPU過高的代碼位置
  • thread -n 3 -i 1000 列出1000ms內最忙的3個線程棧

jvm——查看當前 JVM 的信息

classloader——展示類加載器信息

heapdump——dump到指定文件

  • heapdump /tmp/dump.hprof
  • heapdump --live /tmp/dump.hprof 只dump live對象
  • heapdump dump到臨時文件

vmoption——查看,更新VM診斷相關的參數

  • vmoption 查看所有的option
  • vmoption PrintGC 查看指定的option
  • vmoption PrintGC true 更新指定的option

sysprop——查看和修改JVM的系統屬性

  • sysprop 查看所有屬性
  • sysprop java.version 查看單個屬性
  • sysprop user.country CN 修改單個屬性

sysenv——查看JVM的環境變量

  • sysenv 查看所有環境變量
  • sysenv USER 查看單個環境變量

getstatic——查看類的靜態屬性

getstatic class_name field_name

vmtool——強制GC

vmtool --action forceGc

classloader——展示類加載器信息

jad——反編譯類

jad java.lang.String 反編譯
jad --source-only demo.MathGame 反編譯時只顯示源代碼
jad demo.MathGame main 反編譯指定的函數
jad demo.MathGame main --lineNumber false 反編譯時不顯示行號

monitor——監控某個函數的調用統計數據,包括總調用次數,平均運行時間,成功率等信息

monitor [類權限定名] [方法名]

monitor com.isyscore.iios.dicp.os.security.filter.AuthenticationTokenFilter doFilterInternal

trace——查看某個函數的哪個子調用最慢【重點】,耗時最久的調用會標紅顯示,可以方便找出某個功能中最耗時的操作

trace [類權限定名] [方法名]
trace com.isyscore.iios.dicp.os.security.filter.AuthenticationTokenFilter doFilterInternal
trace demo.MathGame run -n 1 trace次數限制
trace --skipJDKMethod false demo.MathGame run 包含jdk的函數
trace demo.MathGame run '#cost > 10' 據調用耗時過濾

stack——查看某個函數的調用堆棧

stack [類權限定名] [方法名]
stack com.isyscore.iios.dicp.os.security.filter.AuthenticationTokenFilter doFilterInternal

logger——查看logger信息,更新logger level

  • logger --name ROOT --level debug 更新logger level


免責聲明!

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



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