Analyzer tool(MAT)分析JVM内存泄露案例
1、监控目的
2、常用分析工具
3、分析案例-MAT
MAT 介绍及分析:
启动MAT, 然后选择菜单项 File- Open Heap Dump 来加载需要分析的堆转储文件。文件加载完后,可以看到如图 1所示的界面:
从图1可以看到他的大部分功能:
Histogram 可以列出内存中的对象,对象的个数及大小
Dominator Tree 可以列出哪个线程以及线程执行的哪些对象占用空间
Top consumers 通过图形列出最大的object
Leak Suspects 通过MA自动分析泄漏的原因。
Histogram 如图2:
Objects:类的对象数量
Shallow size:对象本身占用内存的大小,不包含对其他对象的引用,也就是对象头加成员变量(不是成员变量的值)和总和。:
Retained size:是该对象自己的shallow size+ 从该对象直接或间接访问到对象的shallow size之和。换句话说,retained size 是该对象被GC之后所能回收到内存的总和。
从图2 可以发现,java.util.HashMap 类的对象占用的很多的空间。
Dominator Tree 如图3:
从图3 中可以发现com.csii.ibs.lc.ClusterOnlineUserRegistry 占了很多内存空间
Top Comsumers 如图4:
显示内存中最大的对象有哪些,及其对应的类是哪些,类加载器classloader是哪些。有些时候我们在这里可以看到代码泄漏的位置。
4、案例一则:
今天线上业务JVM监控出现有内存泄露情况
选择 Path To GC Roots ->exclude weak references,过滤
然后就很直观的分析出什么导致的了,然后优化。
Analyzer tool(MAT)分析JVM内存泄露案例相关推荐
- 使用Memory Analyzer tool(MAT)分析内存泄漏(一)
使用Memory Analyzer tool(MAT)分析内存泄漏(一) (2010年05月21日) 发表于 Java博客 前言的前言 :本文是自 2005 年 8 月以来,首次在一个月之内发布三篇文 ...
- 使用Memory Analyzer tool(MAT)分析内存泄漏
http://www.blogjava.net/rosen/archive/2010/05/21/321575.html http://www.blogjava.net/rosen/archive/2 ...
- 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
前言 在 使用Memory Analyzer tool(MAT)分析内存泄漏(一)中,我介绍了内存泄漏的前因后果.在本文中,将介绍MAT如何根据heap dump分析泄漏根源.由于测试范例可能过于简单 ...
- 如何使用MAT进行JVM内存泄露分析
转载自 如何使用MAT进行JVM内存泄露分析 在<Java Agent的隔离实现以及卸载时一些坑>中,卸载Agent之后,使用 jmap-histo:live pid命令验证执行FGC, ...
- jvm性能分析工具之-- Eclipse Memory Analyzer tool(MAT)
性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(一) 前言 性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(一)中介绍了 ...
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...
- linux分析mat使用教程,使用MAT(Memory Analyzer Tool)工具分析dump文件
<使用MAT(Memory Analyzer Tool)工具分析dump文件> 前言 生产环境中,尤其是吃大内存的JVM,一旦出现内存泄露等问题是非常容易引发OutofMemory的,如果 ...
- 记录一次生产环境下的jvm内存泄露问题和分析解决过程!
作者:未完成交响曲,资深Java工程师!目前在某一线互联网公司任职,架构师社区合伙人! 发现异常 首先通过我们内部搭建的日志平台发现我们线上环境一个java应用有大量的http接口请求超时,登录lin ...
- videocapture.read()解决内存泄露_只需4个步骤,分析解决在生产环境下JVM内存泄露问题...
作者:未完成交响曲 发现异常 首先通过我们内部搭建的日志平台发现我们线上环境一个java应用有大量的http接口请求超时,登录linux服务器查看网络环境没有问题,判断是应用自身运行异常,重启应用后发 ...
最新文章
- 2020年度“中国神经科学重大进展”获奖名单【附成果介绍】
- 聚合函数的计算机控件,使用Kendo UI MVC Grid包装器的聚合函数
- 入门Leaflet之小Demo
- AbstractQueuedSynchronizer浅析——同步
- 如果把去掉数组里面重复的项
- 为什么网上都推荐下载jdk8和jdk11,而没有人推荐最新的15
- @开发者 争抢技术红利,百度自研 4 款人脸硬件要和大家见面了!
- 关于SSH使用的一些经验
- 书单|VR开发内功修炼书单
- 省级面板数据(1990-2019):能源消费(煤炭、焦炭、石油、原油等)excel或stata版本
- 2020-2022 抗疫营销案例合集(共17份)
- Sniffer数据报文解码详解
- 每个客户看待期货开户公司的角度不一样
- android opencv hu 不变矩,图像的矩(含hu不变矩)
- 不看后悔!圈内老手总结的18条嵌入式 C 实战经验
- vue 项目使用 Clipboard-复制文本或图片到剪贴板
- teradata查看正在运行的进程_一种基于greenplum数据库的状态检查及性能监控工具.doc...
- [笔记]Class.forName 时static代码的运行
- 竞品分析——崩坏3 战双帕弥什
- 深圳荣耀Java后端一面
热门文章
- 取消大小周的第一个周末,我吃了顿烤串
- 一位职场老鸟的 10 年复盘,帮你避坑不吃亏!
- “拒绝在 iPad 上运行 Xcode!”
- 马斯克,带动大盘的男人:财报一出市值飙升 840 亿!
- IDEA坑爹跟新的小BUG解决之道
- Android 文件操作
- Android 7.0 出现 ”FileUriExposedException“ 和 ”解析包出现错误“ 异常的解决办法...
- PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆...
- Bzoj3730 震波
- AC日记——热浪 codevs 1557 (最短路模板题)