JVM调优--04---dump文件分析 、arthas在线排查工具
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- dump文件
- java堆转储快照
- 1. dump文件内容
- 2. 获取dump文件的方法
- 指令
- jvisualvm 工具
- 3. dump文件分析工具
- 3.1 jhat 命令
- 3.2 使用 jvisualvm 工具
- 3.3 使用 MAT 工具
- arthas在线排查工具
- 官网
- https://arthas.aliyun.com/doc/
- 在线排查工具----arthas
- 启动:
- arthas 常用命令
dump文件
java堆转储快照
1. dump文件内容
2. 获取dump文件的方法
指令
jvisualvm 工具
3. dump文件分析工具
- 使用 jhat 命令
- 使用 jvisualvm 工具
- 使用 MAT 工具
3.1 jhat 命令
- jdk自带,jdk9以后就取消了
- 访问端口 7000
- 使用OQL查找特定问题对象
3.2 使用 jvisualvm 工具
3.3 使用 MAT 工具
arthas在线排查工具
- Arthas 是Alibaba开源的Java诊断工具
官网
https://arthas.aliyun.com/doc/
在线排查工具----arthas
为什么需要在线排查?
- 在生产上我们经常会碰到一些不好排查的问题,例如线程安全问题,用最简单的threaddump或者heapdump不好查到问题原因。为了排查这些问题,有时我们会临时加一些日志,比如在一些关键的函数里打印出入参,然后重新打包发布,如果打了日志还是没找到问题,继续加日志,重新打包发布。对于上线流程复杂而且审核比较严的公司,从改代码到上线需要层层的流转,会大大影响问题排查的进度
启动:
arthas 常用命令
- jvm观察jvm信息
- thread定位线程问题
- dashboard 观察系统情况
- heapdump + jhat分析
- jad反编译
动态代理生成类的问题定位 第三方的类(观察代码)版本问题(确定自己最新提交的版本是不是被使用) - redefine 热替换
目前有些限制条件:只能改方法实现(方法已经运行完成),不能改方法名, 不能改属性 m() -> mm() - sc - search class
- watch - watch method
- 没有包含的功能:jmap
CSDN-Ada助手: SpringBoot的注解方式IOC,是否可以看成是一种语言而不用理解它是怎么实现的?
CSDN-Ada助手: 不知道 Java 技能树是否可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java
征途黯然.: The knowledge in Linux07查看CPU内存磁盘 is admirable, and the article is highly valuable.
CSDN-Ada助手: 哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)使用更多的站内链接;(2)提升标题与正文的相关性。
普通网友: 这篇文章真是一篇佳作!作者运用了生动有趣的语言,将枯燥的理论知识娓娓道来,让人如沐春风。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】