MAT确认导致OOM的具体功能表单的过程

news/发布时间2024/5/19 4:33:57

MAT发现导致OOM的具体功能表单的过程


背景

愚人节这一天公司项目出现了 大量FullGC的情况.
群里发出来之后这边进行了一些简单的问题查找.堆区设置的事 30G 然后 dump文件是 35G左右.
下载和解压缩耗时 15min
使用40G堆区 全闪的Window虚拟机进行解析
耗时 30分钟.最近自己眼神不是特别好使, 找东西总是很费劲
所以想总结一下, 方便后续进行类似的工作. 

文件情况说明

堆区设置的事30G大小dump文件为 33.8G
mat解析后所有文件大小为 79GB说明 堆外内存大约有4GB以上. 
mat解析会昌盛大量的 index文件. 是堆区大小的1.5 倍. 

image


mat解析的整体情况

堆区设置是 30G 内存占用是 26.5G左右. 
一般情况下抓取dump会进行一次fullGC. 
至少有一部分 FROM TO区域是空的
并且部分年轻代 也会倍清理, 所以一般不会到达 30G的巅峰数值.

image


点击齿轮查看线程信息

与一般的tracelog不同 mat分析会对每一个进程的 关联内存进行对应所以这个使用内存排序很快就可以知道是哪个线程的问题了. 

image

image

左击最大内存区域 list outgoing object

注意在overview区域是需要 左键单击的
建议选择 outgoing的 对象
这是就可以展示对象全貌了. 需要注意, 不要无限制的去点击最大的内存, 一般只需要在当前层次查看就可以了
无限制的下一级是没有意义的. 

image

注意事项

String 对象可能是比较核心的部分, 如果是 % 分割 
可以放到chrome 里面会帮忙转换成中文. 如果是 0x开头的 可以 复制为 value 
也会转换为中文. Oracle相关的会将 连接串给出来. 还有就是 业务代码相关的可以评判是哪个关键应用的功能异常.

image


查找表单ID

根据这边 丁杨老师的讲解.  可以通过查找 coyote 郊狼组件查看到具体的 url需要说明:
apache tomcat 是应用服务器 coyote 郊狼是一个http 的工具链
里面会有具体的url 可以找到对应的表单
所以在list outgoing object 里面根据object name进行排序
查找 <org.apache.coyote.Request>  类似的对象
可以在 <header> 对象进行 查找. 一般会有多个对象 可以根据序号进行查找, 会在7-12个序号之间 找到对应的url注意选择的 VALUEB的对象进行

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/70146573.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

DC电源模块的市场发展趋势分析

BOSHIDA DC电源模块的市场发展趋势分析 DC电源模块是一种将交流电转换为直流电的模块,广泛应用于各种电子设备中。随着科技的不断发展和电子产品的普及,DC电源模块市场也在不断扩大。本文将对DC电源模块的市场发展趋势进行分析。 第一,随着电子产品的不断更新换代,对于电源…

MySQL事务隔离级别

简单来说,事务就是要保证一组数据库操作,要不全部成功,要不全部失败,在 MySQL 中,事务支持是在存储引擎层面的,比如 MySQL 的原生 MyISAM 存储引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因。 一、隔离性 事务的隔离性,就是我们常说的 ICAD(Atomicity,Co…

去除电脑的管理员密码、安装金格浏览器

问题:忘记笔忘本电脑管理员的密码 思路:制作PE系统的U盘启动盘,设置BIOS从U盘启动,进入后重置管理员的密码为空后。重启电脑即可 第一步:下载制作启动用U盘的工具 https://www.bilibili.com/video/BV1qk4y1c7AH/?spm_id_from=333.337.search-card.all.click&vd…

三极管是()控制元件,MOS是()控制元件。

答案: 电流 电压解析:MOS管属于电压控制元件(维持GS之间的电压差即可导通) 三极管属于电流控制元件(BE之间需要存在持续的电流才能导通)

vue 子父窗体

一、子父组件传值 比较全:https://blog.csdn.net/libusi001/article/details/131668644 1.Props 子窗口修改父窗口传的值。props 见如下,一种可以,另一种不可以,版本vue32.$refs属性 父组件可以通过$refs获取子组件的实例,进而访问子组件的属性和方法。 父:<el-tab-pa…

C# .NET6 WebAPI 全局异常过滤器

自定义返回级别namespace Demo {/// <summary>/// 自定义返回级别/// </summary>public enum ResultLevel : int{/// <summary>/// 正确/// </summary>OK = 0,/// <summary>/// 警告/// </summary>Warning = 1,/// <summary>/// 异常…