Java进阶(JVM调优)——阿里云的Arthas的使用 & 安装和使用 & 死锁查找案例,重新加载案例

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

【合集】Java进阶——Java深入学习的笔记汇总 & 再论面向对象、数据结构和算法、JVM底层、多线程、类加载 …

目录

引出


1.JVM调优的工具阿里云的Arthas的使用,安装和使用;
2.命令的使用案例,dashboard,heapdump,jvm,sm,jad;
3.死锁查询的案例;重新加载一个类信息的案例;调用慢的分析案例。

Arthas的使用

官网和初识

阿尔萨斯官网:https://arthas.aliyun.com/doc/

在这里插入图片描述

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  5. 是否有一个全局视角来查看系统的运行状况?
  6. 有什么办法可以监控到 JVM 的实时运行状态?
  7. 怎么快速定位应用的热点,生成火焰图?
  8. 怎样直接从 JVM 内查找某个类的实例?

在这里插入图片描述

安装和使用

curl -O https://arthas.aliyun.com/arthas-boot.jar #下载arthas

java -jar arthas-boot.jar #启动阿尔萨斯

1.启动自己的jar包
java -jar -Xms200m -Xmx200M -XX:+PrintGC  -XX:-UseParallelGC spring-gc-demo-1.0-SNAPSHOT.jar

在这里插入图片描述

2.然后启动阿尔萨斯

在这里插入图片描述

在这里插入图片描述

3.命令参考

https://arthas.aliyun.com/doc/commands.html

在这里插入图片描述

命令的使用案例

1.dashboard

通过这个命令,可以查看哪根线程是最吃CPU的!替代:top -p 进程 -H

得到进程仪表盘,当前系统的实时数据面板,按 ctrl+c 退出

在这里插入图片描述

2.heapdump

替代jmap命令,dump java heap, 类似 jmap 命令的 heap dump 功能

3.jvm

查看当前 JVM 信息,替代jinfo命令

在这里插入图片描述

4.sm

查看已加载类的方法信息

在这里插入图片描述

5.jad

jad 反编译看一下

在这里插入图片描述

6.help

arthas 的帮助命令

7.memory

查看 JVM 内存信息

在这里插入图片描述

8.watch

让你能方便的观察到指定函数的调用情况。能观察到的范围为:返回值抛出异常入参

死锁的场景

thread 线程信息

查看当前线程信息,查看线程的堆栈

thread -h 查看帮助

在这里插入图片描述

在这里插入图片描述

检测死锁

thread -b 

在这里插入图片描述

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

oIXM-1715271191460)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,JVM是为了Java程序的性能和内存管理。为了JVM,可以采取以下几个步骤: 1. JVM参数: 可以通过修改JVM启动参数来JVM的堆大小、永久代空间大小等。例如,通过设置"-Xmx"参数来增堆大小,通过设置"-XX:MaxPermSize"参数来整永久代空间大小。这可以帮助程序更有效地使用内存资源。 2. 化垃圾回收: JVM使用垃圾回收机制来自动管理内存。可以通过整垃圾回收算法和参数来改善垃圾回收性能。例如,可以使用并行垃圾回收器(Parallel GC)或CMS垃圾回收器(Concurrent Mark-Sweep GC)来提高垃圾回收的效率。 3. 检查类器和重复类: 当运行Java应用程序时,可能会出现类器和重复类的问题。可以使用工具如jmap和Eclipse MAT来检查并解决这些问题。通过分析较慢或重复的类,可以减少不必要的内存开销和提高性能。 4. 分析内存分配和使用情况: 可以使用工具如jmap、jstat和VisualVM来监视和分析Java应用程序的内存分配和使用情况。这些工具可以提供有关堆、永久代和线程等方面的详细信息,帮助定位内存泄漏和性能瓶颈。 通过以上方法,可以JavaJVM,以提高程序的性能和效率。注意,在过程中,应该根据具体情况整,并行有效的测试和验证,以确保策略的有效性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java JVM](https://blog.csdn.net/weixin_40213018/article/details/116602377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [javaJVM](https://blog.csdn.net/qq_39291929/article/details/80874097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值