本文共 854 字,大约阅读时间需要 2 分钟。
1. 启动Demo
在dos窗口输入:
curl -O https://alibaba.github.io/arthas/arthas-demo.jarjava -jar arthas-demo.jar
arthas-demo是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。
2. 启动arthas
在命令行下面执行(使用和目标进程一致的用户启动,否则可能attach失败):
蓝线以左是java开的demo(质数分解),蓝线以右是启动arthas的窗口
- dashboard——当前系统的实时数据面板 输入dashboard,按回车/enter,会展示当前进程的信息.由下图最后一行重复内容可知,它会循环更新信息。按ctrl+c可以中断执行。
- thread——查看当前 JVM 的线程堆栈信息 通过thread命令来获取到arthas-demo进程的Main Class。输入“thread 1”会打印线程ID 1的栈,通常是main函数的线程。
- jvm——查看当前 JVM 的信息 主要消息由以下几部分组成:
- CLASS-LOADING 2. GARBAGE-COLLECTORS 3. MEMORY 4. OPERATING-SYSTEM 5. THREAD 局部图:
- watch——方法执行数据观测 通过watch命令来查看demo.MathGame#primeFactors函数的返回值: 从上图可看出,watch命令是通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件。
注monitor/watch/trace相关的命令还有:
monitor——方法执行监控
trace——方法内部调用路径,并输出方法路径上的每个节点上耗时
stack——输出当前方法被调用的调用路径
tt——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
转载地址:http://cbrsi.baihongyu.com/