Arthas 是阿里巴巴开源的监控jvm工具,功能强大并且非常简单。原理是通过JVM TI(Java 虚拟机提供的JVM监控的接口)实现,官网:https://arthas.gitee.io/
安装curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar常用 *** 作 仪表盘 dashboard
查看线程和JVM的基本信息
jvm类似jdk自带的jinfo,但是比jinfo更强大,可以显示垃圾回收算法
线程基本的信息查看
thread -b 查看线程死锁
安装成功界面
扫描加载的类
sc * sc *com.xxxsm
查询类中的方法
sm 包名.类名trace
获取方法的访问次数
反编译工具
使用场景:- 动态代理生成类的问题定位;
- 第三方的类(观察代码)
- 版本问题(确定自己最新提交的版本是不是被使用)
热替换,搭配jad一起使用,达到不重启服务器的情况下替换代码(很强)
目前有些限制条件:只能改方法实现(方法已经运行完成),不能改方法名, 不能改属性
The telnet port 3658 is used by process 1094 instead of target process 8649, you will connect to an unexpected process.
[ERROR] 1. Try to restart arthas-boot, select process 1094, shutdown it first with running the ‘stop’ command.
[ERROR] 2. Or try to stop the existing arthas instance: java -jar arthas-client.jar 127.0.0.1 3658 -c “stop”
[ERROR] 3. Or try to use different telnet port, for example: java -jar arthas-boot.jar --telnet-port 9998 --http-port -1
e: java -jar arthas-boot.jar --telnet-port 9998 --http-port -1
解决:重新启动arthas-boot.jar,输入stop命令,然后再重新启动即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)