Arthas介绍

Arhtas是阿里巴巴开源的java调式工具, 应用诊断工具,性能分析工具

什么时候要使用到Arthas

  • 线上问题无法在本地调式,获取入参和返回参数
  • 接口性能优化
  • 检测问题出现的原因
  • 检测整个应用的运行情况

Arthas的常用的几个命令

1. dashboard

dashboard是一个性能监视面板,其中包括了线程,jvm内存信息,运行环境,默认每隔500毫秒会自动刷新 如下图,
dashboard命令

  • 启动命令
dashboard
  • dashboard中的命令参数
-h # 查看全部参数介绍以及使用方法
-n # 后面跟着数字,代表刷新几次例如 dashboard -n 5 就是刷新5次
-i # 刷新的时间间隔,单位为毫秒 dashboard -i 1000 就代表一秒

2. trace

trace渲染和统计整个调用链路上的所有性能开销和追踪调用链路,只能针对某个方法,可以进行对接口耗时的监控,并且可以查看时那行报的错,如图
trace命令

  • trace命令使用
trace class method # trace 类路径 方法名 如 trace java.util.List add
  • trace命令常用参数
-h # 查看全部参数介绍以及使用方法
-n # 表示监听几次 
-E # 使用正则表达式匹配类和路径

3. watch

watch 可以查看入参,返回参数,包括异常信息
watch

  • watch命令使用
watch 类名 方法名 '{params,returnObj,throwExp}'
# 例如 watch java.util.List add '{params,returnObj,throwExp}'
  • watch常用参数
-h # 查看全部参数介绍以及使用方法
-n # 表示监听几次
-x # 表示返回参数和入参可以被解析到几层,需要根据情况进行设置
-E # 正则匹配类名方法名

4. thread

thread查看java程序的应用线程堆栈信息
Snipaste_2022-02-22_11-16-14

  • 使用命令
thread # 打印信息线程列表
  • 常用参数
-all # 打印全部线程堆栈
-n # 根据cpu信息进行降序 后面跟着数字表示打印前几条例如 thread -n 10 就打印前10条cpu占用高的线程
-b # 找出阻塞的线程
id #线程id,线程列表上面第一个列就是线程id,可以查看线程的详细信息
  • thrad 线程id 展示
    Snipaste_2022-02-22_11-13-27

arthas安装以及其他使用参考官方文档

arthas官方文档:https://arthas.aliyun.com/doc/