工具 | 详解 |
---|---|
GCEasy | 免费GC日志可视化分析Web工具 |
MAT:Memory Analyzer Tool | 可视化内存分析工具 |
GCViewer | 开源的GC日志分析工具 |
Arthas | 线上java程序诊断工具,功能非常强大 |
业界首先采用机器学习算法解决GC日志分析问题,GCeasy内置机器智能可以自动检测jvm和android GC日志中的问题,并推荐解决方案。
GC日志分析是免费的,Machine Learning 收费
默认英文,切换语言成中文,上传日志文件,即可分析
MAT是一个强大的可视化内存分析工具,可以快捷、有效的帮助找到内存泄露、减少内存消耗的分析工具。MAT是(Memory Analyzer Tool) 的缩写,是一种快速,功能丰富的java堆分析工具。
功能:
MAT安装有两种方式,一种是以eclipse插件方式安装,一种是独立安装。
注意: 可能有bug,更新版本即可。
找到 jvm
中最大的对象,是解决内存泄漏与内存溢出关键点。
Dominator Tree 对象的支配树;帮助快速的发现占用内存最大的块,也能帮助分析对象的依赖关系。
GCViewer是一款开源的GC日志分析工具。项目的GitHub主页对各个指标提供了完整的描述信息,需要安装jdk才能使用。借助GCViewer日志分析工具,可以非常直观的分析出待调优点。
可从以下几方面来分析:
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常、监测方法执行耗时,类加载信息等,大大提升线上问题的排查效率。
Arthas支持jdk1.6+,支持Linux、Mac、Windows,采用命令行交互模式,则是提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。
# 不行
/data/soft/jdk-17.0.9/bin/java -jar arthas-boot.jar
#
/data/soft/jdk-11.0.20/bin/java -jar math-game.jar
/data/soft/jdk-11.0.20/bin/java -jar arthas-boot.jar
没有问题
/data/soft/jdk-11.0.20/bin/java -jar math-game.jar
/data/soft/jdk-11.0.20/bin/java -jar arthas-boot.jar
/data/soft/jdk-17.0.9/bin/java -jar math-game.jar
/data/soft/jdk-17.0.9/bin/java -jar arthas-boot.jar
自己写的jdk17的spring boot 不行。
展示当前进程的信息,按 ctrl+c
可以中断执行
dashboard
通过 thread
命令来获取到应用进程的线程信息。thread -1
会打印线程统计信息。
TIMED_WAITING(超时等待) 状态相当于在等待状态的基础上增加了超时限制。
thread -1
运行期通过jad来反编译项目代码。
jad com.fun.demo.controller.JMeterController
jvm第三方工具使用实践
至此就结束了,如有疑问,欢迎评论区留言。