首页 > 系统相关 >偶发的系统卡顿内存飙升导致OOM

偶发的系统卡顿内存飙升导致OOM

时间:2024-02-22 14:57:03浏览次数:26  
标签:调用 快照 dump OOM 偶发 XX 内存 卡顿

线上有个小程序,客户反馈的现象是偶发性的卡主没响应,前端失去连接,点其他菜单都没响应。通过查看配置的dump目录有很多的GC日志,以及生成的一个堆内存快照。

JVM的配置参数大概为: -Xms512M -Xmx512M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\dump\ -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:D:\logs\gc-t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=100 -XX:GCLogFileSize=20M
由于添加了-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\dump\ 所以产生OOM时会自动生成对快照存储方便分析定位问题。

得到了dump文件,使用mat分析:
·查看支配树“Dominator Tree”>>找到最靠前的也就是占用内存最多的前两个。

·进而再继续追踪线程栈,也就是谁在持有它,它从哪里来的。选中然后右键即可。找到Thread Overview and Stacks

·看到具体堆栈信息,类似下面

·然后筛选找到自己业务相关的方法,查看具体的调用路径、实际入参值等信息

·或者在预览界面,直接点击泄露分析,也能一次找到

最终都会到同一个分析页面。
最终发现是有个SQL执行的时候,由于未传入任何条件,导致查询出来的数据很多,之后又去序列化得时候就导致内存溢出了。正确姿势是修改SQL条件,必须至少传入一个有效查询条件,否则不给数据

另外如果业务方法是直接调用而非用反射的话,查询定位可能相对更方便。我们这里使用的是反射调用,通过入参去分析具体调用的方法和实际入参值。

标签:调用,快照,dump,OOM,偶发,XX,内存,卡顿
From: https://www.cnblogs.com/Nuwa/p/18027331

相关文章

  • 阿里面试:Java开发中,应如何避免OOM
    Java内存管理:避免OOM的10个实用小技巧引言在Java开发中,OutOfMemoryError(OOM)错误一直是令开发者头疼的问题,也是Java面试中出现核心频率很高的问题。那么我们究竟怎么样才能够有效正确的管理内存,日常开发中究竟要注意哪些核心技巧来避免OOM错误。本文将带大家一起学习10个避免OO......
  • bug记录:输入框延迟、卡顿
    问题场景离开本页签时(即点击其他页签时),存储查询数据。导致bug:首次打开页签,或者点击浏览器按钮刷新时后,页面上的输入框输入后,会出现无法输入、延迟显示、输入卡顿。代码如下:/*===initDataMixin.js===*/beforeRouteLeave(to,from,next){//跳转路由之前,存储滚......
  • Pygame 播放背景音乐卡顿
    Pygame是常用的游戏开发库之一。然而在使用Pygame的过程中,却出现了播放背景音乐卡顿的问题。表现为咯咯咯的噪音。检查Pygame版本,为2.5.2。降级至1.9.6,此时代码报错:Traceback(mostrecentcalllast):File"D:\MyWork\Code_Learning\PythonLearning\Pygame\test2.py",line......
  • OOM内存泄露速查备忘录
    本文整理了一份OOM内存泄露问题速查备忘录,详细见下文。1、核心步骤top、free、df三连,查看CPU、内存、磁盘的大致情况。netstat-lp查看端口占用情况。导出内存dump文件:#保存了堆内存现场jmap-dump:format=b,file=heap.dumppid#强制保存了堆内存现场jmap-F-dump:......
  • CF1428D Bouncing Boomerangs 题解
    解题思路很简单的贪心。观察发现以下性质:当\(a_i=2\)时,这一行一定只有两个目标,且第二个目标一定位于一个\(a_j=1\)的格子内;当\(a_i=3\),那么当前列右边某一列发生转向的地方,\(a_j\not=0\);那么这道题就基本已经做出来了。因为\(a_i=3\)的格子转向格可以在任意非\(0\)......
  • 【Unity】记一次卡顿优化(由3D资源面数过多引起)
    这个优化方法可能仅对我有效,我只是做一个记录条件:模型很大,并且shader中使用了Smoothness优化方法打开Mesh引用的模型修改模型Normal为calculate修改SmoothnessSource为fromAngle修改SmoothingAngle降到你可以接收的值,我设置的是20。在unity文档中说的是,通常SmoothingAn......
  • RTSS 降帧 减少游戏卡顿
    原理:降低帧数,减少CPU/GPU的负担,让GPU可以比较平均地产出视频帧,均匀的帧数可以减少卡顿感。使用方法:下载安装MSIAfterburnerhttps://www.msi.com/Landing/afterburner/graphics-cards(会附带RTSS)打开MSIAfterburner,设置监控功能,对应想要监控的勾选OSD选项,方便查看效果......
  • [UOD2021]虚幻引擎中Groom毛发系统的流程和应用 | Epic Games 孙丹璐
    传送门:[UOD2021]虚幻引擎中Groom毛发系统的流程和应用|EpicGames孙丹璐_哔哩哔哩_bilibili   一.资产与导入1.1Groom毛发系统中常见名词Strand:生成的最终视觉上看到的毛发人类的毛发尺寸大约在0.0017-0.0018cm,建议控制在0.008cm发际线、鬓角、碎发......
  • OOM实战演练
    1.实战:OutOfMemoryError异常在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能,并且将初步介绍若干最基本的与自动内存管理子系统相关的HotSpot虚拟机参数。本节实战的目的有两个:第一,通过代码验证《Jav......
  • c# 数据放入excel导出,卡顿
    前言:导出数据到Excel,导出的时候特别卡顿原代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceIPC.Helper{classExcelExportUtil{publicstatic......