arthas工具

217 阅读1分钟

下载

  • 官网:快速入门 | arthas
  • 下载:curl -O https://arthas.aliyun.com/arthas-boot.jar
  • 启动:java -Dfile.encoding=UTF-8 -jar arthas-boot.jar
  • 卸载:直接删除.arthaslogs文件夹就行
  • IDEA插件:arthas idea

命令

  • dashboard:查看大盘
  • jad 包名.类名:反编译.class
  • stack 包名.类名 方法名:查看当前方法的被调用路径
  • trace 包名.类名 方法名:查看方法内部调用路径,并输出每个节点上的耗时
  • trace 包名.类名 方法名 #cost>2000 :只查看方法内耗时超过2000毫秒的链路
  • watch 包名.类名 方法名 {params,returnObj,throwExp} -x 2 -n 5:查看入参、返回值、异常信息,-n表示只监测5次 ,-x表示返回变量的属性深度
  • tt -t 包名.类名 方法名 -n 5 :监听指定的方法,并记录此次请求
  • tt -l:查看tt命令记录的所有请求
  • tt -p -i 索引id:重放请求, -p表示play
  • thread:查看所有线程
  • thread -n 3:查看最繁忙的3个线程
  • thread 线程id:查看线程1信息
  • thread -b:查看死锁的线程
  • stop:退出

其他

如果arthas已经attach了一个进程A,再次去attach另一个进程B就会报端口号被占用,解决方案:

  • 方案1:在arthas进程选择界面,选择进程A,然后stop,之后重新启动arthas-boot.jar去attach进程B
  • 方案2:使用另一个端口号去attach进程B:java -jar arthas-boot.jar --telnet-port 9998 --http-port -1

相关文章: