线上系统内存溢出分析方法
我是本际云服务器推荐网的小编小本本,今天为大家介绍一下线上系统内存溢出分析的方法。

事件起因
系统前台应用节点告警“URL连接超时”,使用jstat命令—JVM统计监测工具对堆内存进行分析,发现JVM堆内存的年轻代和老年代使用率达到100%。
分析方法
首先,生成HeapDump文件,HeapDump是Java进程所使用的内存情况在某一时间的一次快照,以文件的形式持久化到磁盘中。获取方式有三种,可以使用jmap命令生成dump文件、使用jcmd命令生成dump文件,也可以使用JVM参数获取dump文件。本次dump文件为jmap命令手动生成。
其次,上传至内网分析服务器,使用MAT检查内存泄漏。打开MemoryAnalyzer软件,选择对应的进程,等待MAT加载完成,即可进入MAT分析页面的首页。使用MAT的DominatorTree视图,定位到内存溢出源,通过DominatorTree视图可以很容易地找出占用内存最多的几个对象(根据RetainedHeap或Percentage排序)。通过分析可疑线程,找到导致内存溢出的原因。
以上就是本次线上系统内存溢出分析方法的详细步骤,希望能对大家有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6015.html
