Java线上诊断神器Arthas:常用命令详解!

有关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 命令的一些常见作用:
监控应用程序的实时指标: 可以显示应用程序的实时CPU使用率、内存使用情况、线程数等指标,帮助开发人员了解应用程序的运行状态。
查看应用程序的线程信息: 可以显示当前应用程序的线程列表,包括线程ID、线程状态、线程堆栈等信息,方便开发人员进行线程分析和问题排查。
显示应用程序的GC情况:可以展示应用程序的垃圾回收(GC)情况,包括GC次数、GC时间、GC类型等信息,帮助开发人员进行GC性能优化和内存泄漏排查。
命令示例
dashboard
执行结果

五、heapdump命令
作用: 可以在应用程序运行时动态生成堆转储文件,而无需停止应用程序。生成的堆转储文件可以使用其他工具(如MAT、VisualVM等)进行进一步分析和诊断。
生成堆转储文件可以帮助开发人员分析应用程序的内存使用情况,包括对象的数量、大小、引用关系等。
通过分析堆转储文件,开发人员可以了解到应用程序中存在的内存泄漏、对象过多或过大等问题,从而进行优化和调试。
命令示例
heapdump /tmp/dump.hprof
相关文件就会生存在/tmp/dump.hprof,可以导入到MAT进行分析
其它的就不一一演示了,具体的可以看官方文档。
相关文档
Arthas官方文档地址:
arthas idea插件GitHub地址
Java线上诊断神器Arthas:常用命令详解!的更多相关文章
- 线上诊断神器-arthas基本应用
Arthas基本应用 一.Arthas作用 什么是Arthas呢? Arthas 是一款阿里推出的线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用 ...
- Linux常用命令详解上
Linux常用命令详解上 目录 一.shell 二.Linux命令 2.1.内部命令与外部命令的区别 2.2.Linux命令行的格式 2.3.编辑Linux命令行的辅助操作 2.4.获得命令帮助的方法 ...
- hbase shell基础和常用命令详解(转)
HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...
- samtools常用命令详解(转)
转自:samtools常用命令详解 samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和ba ...
- cisco常用命令详解
cisco常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用命令用法展示 1.命令行模式的来回切换 yinzhengjie>enable #从用户模式切换到 ...
- hbase shell基础和常用命令详解
HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...
- Tmux 的常用命令详解
Tmux 的常用命令详解 常用命令: tmux #开启tmux tmux ls #显示已有tmux列表(C-b s) tmux attach-session -t 数字 #选择tmux C-b c ...
- 【转载】windbg 常用命令详解
windbg 常用命令详解 https://blog.csdn.net/chenyujing1234/article/details/7743460 vertarget 显示当前进程的大致信息 lmv ...
- DOS常用命令详解
DOS常用命令详解 dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 del 删除文件 format 格式化磁盘 edit ...
- Kubernetes,kubectl常用命令详解
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...
随机推荐
- 从零开始教你手动搭建幻兽帕鲁私服( CentOS 版)
哈喽大家好,我是咸鱼. 想必上网冲浪的小伙伴最近都被<幻兽帕鲁>这款游戏刷屏了. (文中图片均来自网络,侵删) 幻兽帕鲁是 Pocketpair 打造的一款开放世界的生存建造游戏.在游戏中 ...
- C++遴选出特定类型的文件或文件名符合要求的文件
本文介绍基于C++语言,遍历文件夹中的全部文件,并从中获取指定类型的文件的方法. 首先,我们来明确一下本文所需实现的需求.现在有一个文件夹,其中包含了很多文件,如下图所示:我们如果想获取其中所 ...
- MySQL 联合索引、复合索引
复合索引也叫联合索引,经常使用,遇到问题,可以看下 这3篇文章: 1. https://www.jb51.net/article/229580.htm 2. https://blog.csdn.net ...
- 《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(中)
第 5 章 使用 Entity Framework Core 5.3 重构仓储类 创建一个通用仓储接口 namespace Library.API.Services { public interfac ...
- MySQL查询语句的执行顺序
一.编写查询SQL顺序 1.select 2.from 3.join on 4.where 5.group by 6.having 7.order by 8.limit 二.MySQL执行顺序 1.f ...
- 2023年多校联训NOIP层测试5
2023年多校联训NOIP层测试5 T1 糖果 \(10pts\) 首先考虑一些异或的性质: 归零率:\(a \bigoplus a=0\) 恒等律:\(a \bigoplus 0=a\) 交换律:\ ...
- The Missing Semester - 第五讲 学习笔记
第五讲 命令行环境 课程视频地址:https://www.bilibili.com/video/BV1Dy4y1a7BW 课程讲义地址:https://missing-semester-cn.gith ...
- AsyncHttpClient And Download Speed Limit
AsyncHttpClient Official repository and docs: https://github.com/AsyncHttpClient/async-http-client M ...
- win32改变静态控件的文本大小
HWND static_ = CreateWindow(L"STATIC", NULL, WS_CHILD | WS_VISIBLE | SS_LEFT, 100, 100, 10 ...
- win32- 使用WM_NCPAINT在非客户区域绘制边框
#pragma comment(lib, "UxTheme") #include <windows.h> #include <uxtheme.h> LRES ...