阿里 Arthas 3.5.0入门 jvm监控测试操作

阿里文档地址

https://arthas.aliyun.com/doc/web-console.html

一、demo:用来测试的java程序(jvm)

curl -O https://arthas.aliyun.com/math-game.jar
java -jar math-game.jar

math-game是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。

正文:

 第一步:启动程序

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
  • 执行该程序的用户需要和目标进程具有相同的权限。比如以admin用户来执行:sudo su admin && java -jar arthas-boot.jar 或 sudo -u admin -EH java -jar arthas-boot.jar

  • 如果attach不上目标进程,可以查看~/logs/arthas/ 目录下的日志。

  • 如果下载速度比较慢,可以使用aliyun的镜像:java -jar arthas-boot.jar --repo-mirror aliyun --use-http

  • java -jar arthas-boot.jar -h 打印更多参数信息

 

第二步:选择java进程

$ $ java -jar arthas-boot.jar
* [1]: 35542
  [2]: 71560 math-game.jar
math-game进程是第2个,则输入2,再输入回车/enter。Arthas会attach到目标进程上,并输出日志:

  

第三步: 查看dashboard

 

输入dashboard,按回车/enter,会展示当前进程的信息,按ctrl+c可以中断执行。

第四步:通过thread命令来获取到math-game进程的Main Class

thread 1会打印线程ID 1的栈,通常是main函数的线程。

$ thread 1 | grep 'main('
    at demo.MathGame.main(MathGame.java:17)

二、反编译文档

demo. 通过jad来反编译Main Class

命令:jad demo.MathGame

退出arthas

如果只是退出当前的连接,可以用quit或者exit命令。Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。

如果想完全退出arthas,可以执行stop命令。

posted @ 2021-04-20 14:22  逝年的我们  阅读(258)  评论(0编辑  收藏  举报