作者:微信小助手
发布时间:2024-01-12T08:43:07
Arthas原理和使用,大概说下吧? Arthas 也是大家定位和解决线上问题,非常常用的一个工具。 所以,这个题目如果答不上来, 说明平时没怎么解决过线上问题, 面试基本就挂。 所以,这道题目,非常重要。 这里,尼恩吧这道面试题以及参考答案,做了详细的梳理。 大家可以收藏起来, 是不是看看,做到温故而知新。 同时,也收入咱们的 《尼恩Java面试宝典PDF》V159版本,供后面的小伙伴参考,提升大家的 3高 架构、设计、开发水平。 最新《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》的PDF,请关注本公众号【技术自由圈】获取,后台回复:领电子书 - 尼恩说在前面 - Arthas 在线排错工具的巨大价值 - Arthas快速开始 - 方式一:使用 arthas-boot 启动arthas - 方式二:使用 as.sh 脚本启动arthas - Arthas官方使用案例 - 1、启动 math-game - 2、启动 arthas - 3、dashboard 展示当前进程的信息 - 4、thread 命令Main Class - 5、jad命令 来反编译 Main Class - 6、watch - 7、退出 arthas - Arthas的核心命令详解 - 1、基础命令 - 2、类操作命令 - 2.1 sc 命令 - sc 命令 使用参考 - 2.2 sm 命令 - 参数说明 - 使用参考 - 2.3 jad命令 - 参数说明参数说明 - 2.4 mc命令 - 2.6 retransform命令 - 2.7 dump命令 - 参数说明 - 使用参考 - 2.8 classloader命令 - 使用参考 - 3、JVM操作的命令 - 3.1 dashboard命令 - 参数说明 - 使用参考 - 数据说明 - JVM 内部线程 - 3.2 thread命令 - cpu 使用率是如何统计出来的? - eg:支持一键展示当前最忙的前 N 个线程并打印堆栈 - thread --all, 显示所有匹配的线程 - 3.3 jvm命令 - 3.4 sysprop命令 - 3.5 sysenv命令 - 3.6 vmoption命令 - 3.7 getstatic命令 - 3.8 ognl命令 - 3.9 heapdump命令 - 3.10 mbean命令 - 3.11 memory命令 - 4、字节码增强命令 - 4.1 watch命令 - 4.2 tt 命令 - 4.3 monitor命令 - 4.4 stack命令 - 4.5 trace命令 - 5、OGNL表达式 - 基本语法 - 参数说明 - ①、调用静态属性 - ②、调用静态方法 - ③、调用构造方法 - ④、读取不同类型的值 - Arthas线上常用场景 - 1、排查CPU占用过高问题 - 2、排查线程阻塞问题 - 3、排查死锁问题 - 4、排查方法执行过慢问题 - 5、动态修改线上代码 - Arthas底层原理 - 参考文献 - 说在最后: “offer自由” 很容易的 - 部分历史案例 通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。 更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。 Arthas 旨在解决这些问题。开发人员可以通过Arthas 在线解决生产问题。通过Arthas ,无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。 Arthas中集成了大部分JDK工具的功能实现,因此,在线上情况时,可以通过它快速的帮助我们解决问题,如CPU占用过高、线程阻塞、死锁、代码动态修改、方法执行缓慢、排查 Arthas 官方文档(https://arthas.aliyun.com/doc/) 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图? 怎样直接从JVM内查找某个类的实例? 阿里提供的在线的 推荐使用 打印帮助信息: arthas-boot启动过程中, 会下载一些依赖包,如果下载速度比较慢,可以使用aliyun的镜像: arthas-boot 完成依赖下载,并且启动。 启动之后,这时候,arthas会列出当前检测到的java进程,
本文目录
Arthas 在线排错工具的巨大价值
Arthas
是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。
404
等。
Arthas
支持JDK6+
,支持Linux/Mac/Winodws
,采用命令行交互模式,同时提供丰富的Tab
自动补全功能,进一步方便进行问题的定位和诊断。Arthas Terminal
学习方式(Arthas Tutorials (aliyun.com)(https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn)),帮助大家快速上手。Arthas快速开始
方式一:使用
arthas-boot
启动arthasarthas-boot
(推荐),下载arthas-boot.jar
,然后用java -jar
的方式启动:curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jarjava -jar arthas-boot.jar -h
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
Arthas
会将本机中所有的Java进程查询出来,类似于jps/ps
的作用: