Arthas实战

已经熟悉Arthas操作命令来排查线上问题的同学可以直接跳过。观看下边的文章:

arthas源码分析
Arthas源码分析

Arthas是什么

Arthas实战_第1张图片

Arthas 是Alibaba开源的Java诊断工具,方便开发者进行问题的定位和诊断。
更详细的文档,请戳这里:Arthas 用户文档

巨人的肩膀

  • greys-anatomy: Arthas代码基于Greys二次开发而来
  • termd: Arthas的命令行实现基于termd开发,termd是一款优秀的命令行程序开发框架
  • crash: Arthas的文本渲染功能基于crash中的文本渲染功能开发
  • cli: Arthas的命令行界面基于vert.x提供的cli库进行开发

可以做什么

  1. 查看方法调用情况
  2. 查看方法入参
  3. 反编译源码
  4. 查看系统的运行状况
  5. 监控到JVM的实时运行状态
  6. more..

安装

  • 方法一,使用arthas-boot(推荐):

      wget https://alibaba.github.io/arthas/arthas-boot.jar  
      java -jar arthas-boot.jar
    
  • 方法二,使用as.sh:

      curl -L https://alibaba.github.io/arthas/install.sh | sh
    

启动

在上一步安装完成之后,会下载启动脚本文件 as.sh 到当前目录,直接在shell下面执行./as.sh,此时会出现当前运行着的Java程序,输入你想诊断的程序的序号,就会进入交互界面,然后可以在交互界面执行各种arthas命令来帮我们诊断程序。

Arthas实战_第2张图片

命令实例

  • Dashboard
    查看当前系统和jvm的信息:dashboard
Arthas实战_第3张图片
dashboard
  • Jad

    • 此命令可以查看线上运行的代码是否和你预期的一样

反编译WmsCarInsAOImpl类源码:jad com.mhc.mclaren.ao.impl.WmsCarInsAOImpl

Arthas实战_第4张图片
  • Stack

    • 运行此命令之后需要即时触发方法才会有响应的信息打印在控制台上

查看方法 com.mhc.mclaren.ao.impl.WmsCarInsAOImpl#setInsInfo 的调用堆栈

  • Trace

    • 运行此命令之后需要即时触发方法才会有响应的信息打印在控制台上
    • 只能看到下一级的子调用

观察方法 com.mhc.mclaren.ao.impl.WmsCarInsAOImpl#setInsInfo 执行的时候每个子调用的运行时长,可以找到最耗时的子调用。

  • Watch

    • 运行此命令之后需要即时触发方法才会有响应的信息打印在控制台上

观察方法 com.mhc.mclaren.ao.impl.WmsCarInsAOImpl#setInsInfo 执行的入参

Arthas实战_第5张图片
  • github地址介绍
  • 我的java问题排查工具单

特别感谢:慕轩

原文地址:https://www.cnblogs.com/muxuanchan/p/10097639.html

Arthas实战_第6张图片

详情介绍:

更新主题详情

420天以来,Java架构更新了 888个主题,已经有156+位同学加入。微信扫码关注java架构,获取Java面试题和架构师相关题目和视频。上述相关面试题答案,尽在Java架构中。

你可能感兴趣的:(Arthas实战)