Arthas 基础教程
1. 创建实验资源
开始实验之前,您需要先创建实验相关资源。
- 在实验室页面,单击创建资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、子用户信息等)。
说明:资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。
实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
资源创建成功,可在左侧的资源卡片中查看相关资源信息以及RAM子账号信息
2. 启动arthas-demo
本步骤指导您如何下载并启动jar包。
- 执行如下命令,下载arthas-demo.jar,再用java -jar命令启动。
wget https://arthas.aliyun.com/arthas-demo.jar java -jar arthas-demo.jar
arthas-demo是一个很简单的程序,它随机生成整数,再执行因式分解,把结果打印出来。如果生成的随机数是负数,则会打印提示信息。
3. 启动arthas-boot
本步骤指导您如何启动arthas-boot。
- 点击页面右上角 号,新建终端。
- 执行如下命令,在新终端里,下载arthas-boot.jar,再用java -jar命令启动。
wget https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar
arthas-boot是Arthas的启动程序,它启动后,会列出所有的Java进程,用户可以选择需要诊断的目标进程。
- 选择第一个进程,输入 1 ,再按Enter/回车:
1
- Attach成功之后,会打印Arthas LOGO。输入 help 可以获取到更多的帮助信息。
help
4. 基础名命令使用
本步骤指导您基础名命令使用。
- Dashboard。
- dashboard命令可以查看当前系统的实时数据面板。
dashboard
- 输入 q 或者 Ctrl+C 可以退出dashboard命令。
q
- Thread。
- thread 1 命令会打印线程ID 1的栈。
thread 1
- Arthas支持管道,可以用 thread 1 | grep 'main(' 查找到main class。
thread 1 | grep 'main('
可以看到main class是demo.MathGame:
$ thread 1 | grep 'main(' at demo.MathGame.main(MathGame.java:17)
- Sc。
- 可以通过 sc 命令来查找JVM里已加载的类。
sc -d *MathGame
- Jad。
- 可以通过 jad 命令来反编译代码。
jad demo.MathGame
- Watch。
- 通过watch命令可以查看函数的参数/返回值/异常信息。
watch demo.MathGame primeFactors returnObj
- 输入 q 或者 Ctrl+C 退出watch命令。
q
- Exit/Stop。
- 退出Arthas。
- 用 exit 或者 quit 命令可以退出Arthas。
exit
- 退出Arthas之后,还可以再次用 java -jar arthas-boot.jar 来连接。
java -jar arthas-boot.jar
- 彻底退出Arthas。
- exit/quit命令只是退出当前session,arthas server还在目标进程中运行。
想完全退出Arthas,可以执行 stop 命令。
stop
实验链接:https://developer.aliyun.com/adc/scenario/4d36dc8a1d42405c854dbc53050b0e92