有关Arthas基本介绍、安装部署、arthas idea插件在上篇文章已经介绍过,这里就不在重述。

文章地址:Java诊断工具Arthas:开篇之watch实战

上篇重点讲了 watch 命令。这篇把剩余一些重要命令讲解演示下。

一、trace命令

作用:展示方法内部调用路径,并输出方法路径上的每个节点上耗时

命令示例

trace com.zhuangpo.event.service.impl.ArthasTestServiceImpl getPassCheck  -n 5 --skipJDKMethod false

参数解释如下:

trace:命令本身,用于启动追踪。

com.zhuangpo.event.service.impl.ArthasTestServiceImpl:要追踪的类的全限定名

getPassCheck:要追踪的方法名

-n 5:执行追踪的次数,这里设置为 5 次。

--skipJDKMethod false:是否跳过 JDK 自带方法的追踪

执行结果

从执行结果可以看到这个方法的总耗时,还有调用链路各个方法和它们的耗时,最耗时的链路会有红色标注,看去一目了然。

二、stack命令

作用: 就是将一个方法的被调用的链路展示出来。调用链路是自下而上

命令示例

stack com.zhuangpo.event.service.impl.ArthasTestServiceImpl getPassCheck  -n 5

执行结果

很多时候我们都知道一个方法被执行了,但这个方法被执行的路径非常多,或者你根本就不知道这个方法是从那里被执行了,此时你需要的是 stack 命令。

三、jad命令

作用: 是反编译指定已加载类的源码

命令示例

jad --source-only com.zhuangpo.event.service.impl.ArthasTestServiceImpl

执行结果

这个还是蛮实用的, 因为有时我们经常会不确定线上的代码包否是最新的,这时候就可以通过jad反编译来看下,是否是最新的代码。

四、dashboard命令

作用: 当前系统的实时数据面板

以下是 dashboard 命令的一些常见作用:

  1. 监控应用程序的实时指标: 可以显示应用程序的实时CPU使用率、内存使用情况、线程数等指标,帮助开发人员了解应用程序的运行状态。

  2. 查看应用程序的线程信息: 可以显示当前应用程序的线程列表,包括线程ID、线程状态、线程堆栈等信息,方便开发人员进行线程分析和问题排查。

  3. 显示应用程序的GC情况:可以展示应用程序的垃圾回收(GC)情况,包括GC次数、GC时间、GC类型等信息,帮助开发人员进行GC性能优化和内存泄漏排查。

命令示例

dashboard

执行结果

五、heapdump命令

作用: 可以在应用程序运行时动态生成堆转储文件,而无需停止应用程序。生成的堆转储文件可以使用其他工具(如MAT、VisualVM等)进行进一步分析和诊断。

生成堆转储文件可以帮助开发人员分析应用程序的内存使用情况,包括对象的数量、大小、引用关系等。

通过分析堆转储文件,开发人员可以了解到应用程序中存在的内存泄漏、对象过多或过大等问题,从而进行优化和调试。

命令示例

heapdump /tmp/dump.hprof

相关文件就会生存在/tmp/dump.hprof,可以导入到MAT进行分析

其它的就不一一演示了,具体的可以看官方文档。

相关文档

Arthas官方文档地址:

arthas idea插件GitHub地址

Java线上诊断神器Arthas:常用命令详解!的更多相关文章

  1. 线上诊断神器-arthas基本应用

    Arthas基本应用 一.Arthas作用 什么是Arthas呢? ​ Arthas 是一款阿里推出的线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用 ...

  2. Linux常用命令详解上

    Linux常用命令详解上 目录 一.shell 二.Linux命令 2.1.内部命令与外部命令的区别 2.2.Linux命令行的格式 2.3.编辑Linux命令行的辅助操作 2.4.获得命令帮助的方法 ...

  3. hbase shell基础和常用命令详解(转)

    HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...

  4. samtools常用命令详解(转)

    转自:samtools常用命令详解 samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和ba ...

  5. cisco常用命令详解

    cisco常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用命令用法展示 1.命令行模式的来回切换 yinzhengjie>enable #从用户模式切换到 ...

  6. hbase shell基础和常用命令详解

    HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...

  7. Tmux 的常用命令详解

    Tmux 的常用命令详解  常用命令: tmux #开启tmux tmux ls #显示已有tmux列表(C-b s) tmux attach-session -t 数字 #选择tmux C-b c ...

  8. 【转载】windbg 常用命令详解

    windbg 常用命令详解 https://blog.csdn.net/chenyujing1234/article/details/7743460 vertarget 显示当前进程的大致信息 lmv ...

  9. DOS常用命令详解

    DOS常用命令详解 dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 del 删除文件 format 格式化磁盘 edit ...

  10. Kubernetes,kubectl常用命令详解

    kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...

随机推荐

  1. 关于ASP.NET WEB API(OWIN WEBAPI)的几个编码最佳实践总结

    近期工作比较忙,确实没太多精力与时间写博文,博文写得少,但并不代表没有研究与总结,也不会停止我继续分享的节奏,最多有可能发博文间隔时间稍长一点.废话不多说,直接上干货,虽不是主流的ASP.NET CO ...

  2. .NET 云原生架构师训练营(模块二 基础巩固 Scrum 简介)--学习笔记

    2.7.2 Scrum 简介 SCRUM 是什么 SCRUM 精髓 SCRUM 框架 角色 SCRUM 是什么 SCRUM 是迄今为止最著名的敏捷方法,主要用于开发.交付和持续支持复杂产品的一个框架, ...

  3. Java基础综合测试

    Java版基础练习题: 输入练习: [问题描述] 任务很简单: 给定若干个整数,请编程输出它们的和. [输入形式] 输入包含多组测试用例. 每组测试数据首先是一个正整数N,表示本组数据有N个整数. 请 ...

  4. 使用V2R做反向代理内网穿透

    环境 内网服务器Prob1位于内网LAN1, 内网服务器Prob2位于内网LAN2, 外网服务器Serv1位于IP 123.123.123.123 内网节点配置 内网节点没有inbound,只需要配置 ...

  5. Laravel入坑指南(6)——Redis缓存

    写在前面: Redis是常用nosql服务之一,在Redis官网上最新的稳定版本是6.0.6.这里不讨论Redis服务如何编译,如何使用.在Redis官网有很健全的文档. 这里要讨论的是无论在cent ...

  6. 数据抽取平台pydatax介绍

       缘起一:         公司现有数据仓库,是通过kettle从mysql抽取到目标库,运行多年,主要有以下问题, 1,效率低:kettle抽取行数少 2,容错性差:一个表抽取出错就导致后续计算 ...

  7. 代码+案例,实战解析BeautifulSoup4

    本文分享自华为云社区<从HTML到实战:深入解析BeautifulSoup4的爬虫奇妙世界>,作者:柠檬味拥抱. 网络上的信息浩如烟海,而爬虫技术正是帮助我们从中获取有用信息的重要工具.在 ...

  8. yolo7检测学习Bubbliiiing的视频有感——(1)no model named 'cv2'

    我一直以来也是喜欢用vscode,就跟随B导安装了vscode 下载完B导提供的代码后如果想直接跟着视频B导的操作运行predict.py文件是不可能的,需要按照readme文档中的所有提示按照步骤放 ...

  9. Linux的这些命令你需要掌握

    查看进程: 查看所有进程:ps -ef 查看指定的进程: ps -ef|grep pid(进程号) 查看前40个内存占用的进程: ps auxw|head -1;ps auxw|sort -rn -k ...

  10. 【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中

    问题描述 是否可以将Swagger 的API定义导入导Azure API Management中? 操作步骤 是的,可以通过APIM门户导入单个的API Swagger定义文件.具体步骤如下: 第一步 ...