有关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. XPath从入门到精通:基础和高级用法完整指南,附美团APP匹配示例

    XPath 通常用来进行网站.XML (APP )和数据挖掘,通过元素和属性的方式来获取指定的节点,然后抓取需要的信息. 学习 XPath 语法之前,首先了解一下一些概念. 概念介绍 节点之间的关系 ...

  2. System.SysUtils.TStringHelper 详解,注意事项

    大小写转换: function ToLower: string; function ToLower(LocaleID: TLocaleID): string; function ToLowerInva ...

  3. 《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(中)

    第 5 章 使用 Entity Framework Core 5.3 重构仓储类 创建一个通用仓储接口 namespace Library.API.Services { public interfac ...

  4. OGG-Postgres实时同步到MySQL

    (一)数据库信息 名称 源端数据库 目标端数据库 数据库类型 Postgresql 12.4 MySQL 5.7 IP地址 20.2.127.23 20.2.127.24 端口 5432 3306 数 ...

  5. Zookeeper-ZKFC的原理和功能

    一.前言 HADOOP2 HA架构引入了ZKFC.Journalnode组件,本篇文章主要介绍ZKFC的功能和原理.HA架构支持两种切换方式: 手动切换:  通过命令实现主备之间的切换,可以用HDFS ...

  6. 云计算 - 负载均衡SLB方案全解与实战

    云计算 - 负载均衡SLB方案全解与实战,介绍SLB的核心技术.用户最佳实践.阿里云 SLB产品举例.应用场景. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有1 ...

  7. C语言,变长数组的用法

    在我的<C语言,结构体成员的地址>文章中,定义了一个demo_node结构体,其中用到变长数组char addr[0].本文以此为例,对C语言变长数组的基本用法展开介绍. typedef ...

  8. Swoole从入门到入土(18)——WebSocket服务器[心跳ping]

    由于 WebSocket 是长连接,如果一定时间内没有通讯,连接可能会断开.这时候需要心跳机制,WebSocket 协议包含了 Ping 和 Pong 两个帧,可以定时发送 Ping 帧来保持长连接. ...

  9. C++ std::move 的一些问题

    看 SO 上有一个比较奇怪的问题, When does an rvalue reference result in a move vs copy constructor and why? 问题代码: ...

  10. 细说Spring框架之核心01-概述

    官网:https://spring.io/projects/spring-framework 文档:https://docs.spring.io/spring-framework/docs/curre ...