记录一次内存溢出

1、查看catalina相关日志,确定关键字相关行号 

文件:catalina.out

命令1:cat -n catalina.out |grep -a 'OutOfMemoryError'


与内存溢出相关的如上,每一个行号其实都对应到具体时间点。可以发现,这个范围相符合:

633851  Apr 11, 2024 9:59:02 AM  -- 4月11日
633879  Apr 11, 2024 10:33:20 AM -- 4月11日

2、分析起止行号的日志

命令2:cat -n catalina.out |tail -n +633500|head -n 400


633838  java.lang.OutOfMemoryError: Java heap space
633839  Dumping heap to /opt/web/oms.xxx.cn/java/java_pid17812.hprof ...

 

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/opt/web/oms.xxx.cn/java

3、jhat,分析获取的.hprof文件

jhat /Users/quanxin/Downloads/java_pid17812.hprof

jhat -J-mx10g /Users/quanxin/Downloads/java_pid17812.hprof

​​​​​​https://www.php.cn/faq/522972.html

4、关键字检索:Xobj$AttrXobj

内存溢出 org.apache.xmlbeans.impl.store.Xobj$AttrXobj

POI直接加载Excel文件导致的线上OOM问题_apache poi读取大的excle哪里容易产生oom-CSDN博客

5、安装mat 定位业务日志

参考5步,链接。使用MemoryAnalyzer加载dump文件, 查看Thread Stack线程栈信息

工具不行,太老了。eclipse下的插件。

安装一直失败,也许mac的原因。还需要对应jdk版本,太麻烦。

6、换个工具试试,JProfiler

如何使用,请自行百度,摸索半小时。

随便找几个看看,全部都定位到。

//      at com.xxx.web.oms.controllers.detection.insurance.InsuranceController.add() (line: 1624)

用户操作记录

跟内存溢出的时间,基本吻合。

633851  Apr 11, 2024 9:59:02 AM  -- 4月11日
633879  Apr 11, 2024 10:33:20 AM --

7、业务代码与结论

WFHttpServletRequestWrapper rw = (WFHttpServletRequestWrapper) BeatContext.current().getRequest();
String filename = rw.getFile("fileName").getOriginalFilename();
Workbook wb = FileUtil.getWorkbook(rw, "fileName");

结果:用户导入一个excel,大约40MB,复制了很多空行导致。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Harbor安装手册

安装Docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager \ --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i -e /mirrors.cloud.aliyuncs.com/d -e /mirrors.aliyuncs.com/d \ /etc/yum.repos.d/…

【御控物联】Java JSON结构转换(3):对象To对象——多层属性重组

文章目录 一、JSON结构转换是什么?二、案例之《JSON对象 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换,生成新的JS…

Centos Steam 8安装MariaDB报错

1:按照MariaDB的官网配置安装文件. 2 :使用安装命令安装出现下面错误。说“所有的匹配结果均已经被参数的模块化过滤条件除” 3:这个只需要禁用系统的安装模块即可。 yum module disable mariadb 4:再次安装就不会报错了。

C语言——内存函数的实现和模拟实现

1. memcpy 使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 这个函数在遇到 \0 的时候并不会停下来。 如果source和destination有任何的重叠&am…

2024“点点点”测试员如何上岸测试开发岗?附完整学习路线!

有很多人员会不断问自己,自己到底要不要学测试,或者要不要坚持做测试,测试的职业发展到底怎么样?如果你还在迷茫,在到处找各种大牛问类似的问题,我希望这篇文章,你看完能够结束你的这个烦恼&…

bugku-web-点login咋没反应

在页面源码中看到一个css文件 并看到构建的表是post请求 访问后看到一个注释,叫尝试?17026 在页面尝试 得到源码 这里让在cookie中添加参数BUGKU,并使参数为字符串类型ctf.bugku.com 这里有反序列化函数,先得到字符串ctf.bugku.com的序列号…

深度学习知识点:卷积神经网络(CNN)

深度学习知识点:卷积神经网络(CNN) 前言卷积神经网络(CNN)卷积神经网络的结构Keras搭建CNN经典网络分类LeNetAlexNetAlexNet 对比LeNet 的优势? VGGVGG使用2个33卷积的优势在哪里?每层卷积是否只…

Java开发从入门到精通(九):Java的面向对象OOP:成员变量,局部变量,实体类的案例

Java大数据开发和安全开发 (一)Java的变量1.1 成员变量和局部变量的区别1.2 成员变量1.3 局部变量1.4 实体类的案例 (一)Java的变量 1.1 成员变量和局部变量的区别 1、类中位置不同:成员变量(类中,方法外)、局部变量(常见于方法中)2、初始化…

多模态AnyGPT——整合图像、语音和文本多模态大规模语言模型算法原理与实践

概述 大规模语言模型在理解和生成人类语言方面具有非凡的能力,但迄今为止,它们的能力主要局限于文本处理。然而,现实世界是一个多模式的环境,信息通过视觉、听觉和触觉等多种感官进行交换。融入这种多样性是开发下一代系统的主要…

高效求解最长回文子序列:动态规划方法与C语言实现

高效求解最长回文子序列:动态规划方法与C语言实现 问题描述解决方案伪代码C代码示例算法分析进一步讨论 在计算机科学中,回文是一种有趣的字符串,它在正序和逆序下是相同的。例如,“civic”、"racecar"和"aibohpho…

解决Qt中文乱码

解决Qt中文乱码 编程环境解决方法设置编辑器的文件编码每个源文件中增加设置增加转码代码有中文的源文件添加UTF-8 BOM 编程环境 WindowsQCreatorQtMSVC 解决方法 设置编辑器的文件编码 项目->Project Settings->编辑器->文件编码: 1.设置默认编码为&a…

吴恩达机器学习:均值聚类法(K-means Clustering)

在本练习中,您将实现K-means算法并将其用于图像压缩。 您将从一个样本数据集开始,该数据集将帮助您直观地了解K-means算法的工作原理。之后,您将使用K-means算法进行图像压缩,将图像中出现的颜色数量减少到该图像中最常见的颜色。…

树--排序二叉树的删除

一、二叉排序树的删除 二叉排序树的删除情况比较复杂,有以下三种情况需要考虑。 删除叶子节点 (比如:2,5,9,10)删除只有一个子树的节点(比如:1)删除有两个子树的节点 (比如&#x…

【测试思考】当我给互联网姐妹解读电商大促规则

20年初,疫情开始,我和同事好不容易回家过年了,但是无法返沪,只能远程上班。 远程上班的效率比我想象的高很多,上班时间也比我想象的拉长很多,抛开这些扯远了,我们当时在做一个优惠券的项目。 下…

java学习——消息队列MQ

上一篇传送门:点我 目前只学习了RabbitMQ,后续学习了其他MQ后会继续补充。 MQ有了解过吗?说说什么是MQ? MQ是Message Queue的缩写,也就是消息队列的意思。它是一种应用程序对应用程序的通信方法,使得应用…

【解决】Spring Boot创建项目常见问题

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 idea无maven选项 无效发行版17 类⽂件具有错误的版本 61.0, 应为 …

基于PyAutoGUI图片定位的自动化截图工具--完成了

1、计划 压测完成后需要编写性能测试报告,报告中所需数据截图较多,使用自动化操作方便快捷,就编写一个界面工具以便后续复用。 基于PyAutoGUI图片定位的自动化截图工具–jmeter部分 基于PyAutoGUI图片定位的自动化截图工具–jmeter部分&#…

js纯前端实现语音播报,朗读功能(2024-04-15)

实现语音播报要有两个原生API 分别是【window.speechSynthesis】【SpeechSynthesisUtterance】 项目代码 // 执行函数 initVoice({text: 项目介绍,vol: 1,rate: 1 })// 函数 export function initVoice(config) {window.speechSynthesis.cancel();//播报前建议调用取消的函数…

HCIP【ospf综合实验】

目录 实验要求: 实验拓扑图: 实验思路: 实验步骤: 一、划分网段 二、配置IP地址 三、搞通私网和公网 (1)先搞通私网(基于OSPF协议,在各个路由器上进行网段的宣告&#xff0c…

使用icpc tool进行滚榜操作

前言 参加ACM的同学都知道,比赛非常有趣的环节就是赛后的滚榜环节,所以为了一个比赛的完整性,自己办比赛时也想要加入滚榜的操作,经过一段时间的研究学习,已经可以将滚榜程序与domjudege程序成功完成融合,…