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