工具-Arthas
文章平均质量分 67
九师兄
可免费问问题,可以一次订阅,终身免费问问题。工作多年遇到的问题,与一些总结,注意事项等,有些是源码级别的讲解,同时整个博客是成体系的,里面有很多连接互相连接,问题都是拆开的,能让大家遇到问题的时候方便的解决问题,或者提供思路。也可以单独找我解决问题。
展开
-
【Flink】Flink 使用Arthas的trace命令排查问题 不打印方法栈
Flink 使用Arthas的trace命令排查问题,不打印方法栈,只打印了如下 Affect class count 1 method count 1。后面突然想我们这个流任务是没开启规则是不消费数据的,如果不消费数据,那么方法就不会执行,然后这里就无法监控到。开始遇到这个问题,我第一眼以为是我打错字了,然后来来回回排查了好几次都是正常的。然后有的迷糊了,后面我尝试其他pipline的类,执行发现是可以的。然后我尝试把所有的机器都测试一遍,发现结果是一样的。再次确认了,我找的机器确实是对的呀。原创 2024-03-19 23:30:00 · 200 阅读 · 0 评论 -
【Arthas】Arthas Command处理流程
1.概述转载:Arthas Command处理流程2.开篇这篇文章主要是为了分析Arthas的命令的执行过程,整体过程包括任务的创建和任务的执行。arthas的命令都是实现统一的接口,对外通过process方法进行调用。public abstract class AnnotatedCommand { // 不同的命令又不同的process实现 public abstract void process(CommandProcess process);}├── Abstract.转载 2022-04-18 23:00:59 · 854 阅读 · 0 评论 -
【Arthas】Arthas 类查找和反编译原理
1.概述转载:Arthas 类查找和反编译原理2.开篇Arthas支持通过类相关的操作命令,包括sc、sm、jad等。sc(Search-Class)命令搜索出所有已经加载到 JVM 中的 Class 信息。sm(Search-Method)命令搜索出所有已经加载了 Class 信息的方法信息。jad命令将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码。这篇文章是分析上述类相关操作的底层实现原理包含Instrumentation和CFR。3.SC实现原.转载 2022-04-05 21:24:04 · 3856 阅读 · 0 评论 -
【Arthas】Arthas mc内存动态编译原理
1.概述转载:Arthas mc内存动态编译原理2.开篇Arthas支持通过mc命令进行java文件的内存动态编译,mc = Memory Compiler/内存编译器,编译.java文件生成.class。从JDK1.6开始引入了Java代码重写过的编译器接口,使得我们可以在运行时编译Java源代码,然后再通过类加载器将编译好的类加载进JVM,这种在运行时编译代码的操作就叫做动态编译。动态编译即支持从源码文件编译得到字节码文件(输入一个Java源文件,编译成字节码文件),又支持从源码字符串编译得.转载 2022-04-05 21:18:13 · 1151 阅读 · 0 评论 -
【Arthas】Arthas retransform动态重新加载类
1.概述转载:Arthas retransform动态重新加载类2.开篇Arthas提供retransform命令来重新加载已加载的类,通过该命令可以在有限制的反编译已加载的类重新修改后生成class文件重新加载。在测试环境中可以尝试着去使用这个命令,毕竟这个原理也是基于Instrumentation来达成的。Instrumentation提供retransformClasses来实现上述的功能。想操作字节码,Instrumentation基本上是逃不过的基础技术。3.基础知识点在 Java.转载 2022-04-05 21:13:58 · 2018 阅读 · 0 评论 -
【Arthas】Arthas classloader类加载器
1.概述转载:Arthas classloader类加载器2.开篇Arthas通过classloader 命令将 JVM 中所有的classloader的信息统计出来,并可以展示继承树,urls等。可以让指定的classloader去getResources,打印出所有查找到的resources的url。对于ResourceNotFoundException比较有用。Arthas的classloader的查找本质也是通过Instrumentation获取所有的加载的class,然后通过class的.转载 2022-04-05 19:42:43 · 1696 阅读 · 0 评论 -
【Arthas】Arthas thread查看线程信息
1.概述转载:Arthas thread查看线程信息2.开篇Arthas提供thread命令获取当前thread的信息,包括查询指定最忙的前N个线程并打印堆栈,找出当前阻塞其他线程的线程,显示所有匹配的线程等。线程相关信息的获取是通过ThreadMXBean来进行获取。3.ThreadMXBean的APIThreadMXBean是Java 虚拟机线程系统的管理接口。Java 虚拟机具有此接口的实现类的单一实例。实现此接口的实例是一个 MXBean,可以通过调用ManagementFactor.转载 2022-04-05 19:29:31 · 8894 阅读 · 0 评论 -
【Arthas】Arthas dump导出加载类
1.概述转载:Arthas dump导出加载类2.开篇Arthas提供dump命令来导出已加载类的 byte code 到特定目录,可以考虑用来排查线上代码是否是最新的,这个命令的原理和Arthas的jad命令基本一致的,唯一的差别就是dump会到导出原始字节码,jad命令返回反编译的字节码。dump命令的关键点在于Instrumentation的addTransformer方法,通过指定ClassFileTransformer来导出指定类的字节码。Instrumentationpublic .转载 2022-04-05 19:24:48 · 2389 阅读 · 0 评论 -
【Arthas】Arthas 导出堆栈信息
1.概述转载:Arthas 导出堆栈信息2. 开篇arthas提供heapdump命令导出栈信息, 类似jmap命令的heap dump功能。3.原理介绍通过通过HotSpotDiagnosticMXBean的dumpHeap来导出栈参数。public interface HotSpotDiagnosticMXBean extends PlatformManagedObject { void dumpHeap(String var1, boolean var2) throws IOEx.转载 2022-04-05 19:21:17 · 2784 阅读 · 0 评论 -
【arthas】Arthas 查看 Mbean 的信息
1.概述转载:Arthas 查看 Mbean 的信息2.开篇arthas提供Mbean命令查看或监控 Mbean 的属性信息。3.原理介绍MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.3.源码分析.转载 2022-04-05 19:18:54 · 1254 阅读 · 0 评论 -
【Arthas】Arthas使用watch命令(生产上查看方法出入参和出参)
如果需要捕捉异常的话,使用throwExp,如{params,returnObj,throwExp}观察getOrderInfo的出参和返回值,出参就是方法结束后的入参。有些问题线上会出现,本地重现不了,这时这个命令就有用了。观察getOrderInfo的入参和返回值。watch可以监测一个方法的入参和返回值。原创 2021-07-04 11:30:23 · 3576 阅读 · 0 评论 -
Arthas - Java 线上问题定位处理的终极利器
好文章:Arthas - Java 线上问题定位处理的终极利器原创 2020-03-11 10:59:49 · 575 阅读 · 0 评论 -
Arthas : 在线分析诊断工具Arthas(阿尔萨斯)
1.美图2.背景想学JDK自带的工具,BTrace然后,同事说这个过时了,但是我不是很相信,因为是JDK自带的工具,他推荐这个,于是我就来看看这个到底是什么东西。Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。开源地址:git地址官方文档:官方当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的...原创 2020-07-04 12:04:02 · 4519 阅读 · 2 评论