实战分析:记录一下线上OOM排查(原创)

记录背景

公司仓库系统经常反馈出现系统使用不了503的情况,自动挂掉。

启动脚本添加命令

以为是程序发生OOM导致内存溢出,添加命令,发生内存溢出输出文件

 -XX:+HeapDumpOnOutOfMemoryError -XX:ErrorFile=./errorfile.log -XX:HeapDumpPath=./app.dump 

HeapDumpOnOutOfMemoryError 指示 JVM 在遇到 OutOfMemoryError 错误时将 heap 转储到物理文件中。
HeapDumpPath 表示要写入文件的路径; 可以给出任何文件名;

仓库再次反馈程序使用不了

登录机器发现没内存溢出的dump文件输出,查看日志输出也没有OutOfMemoryError错误。

发现一个新的可能被kill的原因

  1. java本身发生OOM,即日志中打印"java.lang.OutOfMemoryError: Java heap space"
  2. 被linxu操作系统执行OOM-Killer

排查linxu操作系统执行OOM-Killer

查看java进程数据

 dmesg | grep java

在这里插入图片描述
查看被系统杀死的进程

dmesg | egrep -i 'killed process'

在这里插入图片描述至此已经确定了程序挂掉的原因是触发了OOM Killer机制

解决方案(没有什么事钱解决不了的问题!!!)

在这里插入图片描述
在这里插入图片描述
阿里云出现OOM Killer的原因及解决方案
当然咱公司没加钱,内部系统,挂掉重启!!!

仓库又又又反馈程序使用不了

这次就不一样了,发现了有dump文件,也就是说明发生了内存溢出。
在这里插入图片描述

使用jvisualvm打开dump文件排查

在这里插入图片描述
定位具体方法
在这里插入图片描述

使用MAP打开dump文件排查

在这里插入图片描述
在这里插入图片描述
定位com.spire.doc.packages.sprjzp这个类

确定代码

inputStream = DocUtils.replaceContent(dataMap, "模版文件", false);

具体代码就不拉出来了

看一下启动脚本

最大堆内存只有1g
在这里插入图片描述

-Xms1024m -Xmx1024m

最后

问题确定了就行,咱们都是打工人,具体问题具体分析了!!!

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

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

相关文章

Windows无法安装到这个硬盘空间。选定的分区上启用了BitLocker驱动器加密。请在控制面板中暂停(也称为禁用)BitLocker,然后重新开始安装。

我们安装操作系统的时候,到了选择安装分区的地方,我们选中的分区提示“无法在驱动器的分区上安装Windows”,然后我们点击显示详细信息,提示如图下所示 分析原因,可能是之前的分区未进行格式化。但是这个时候我们无法格…

【Python预处理系列】深入理解过采样技术及其Python实现

目录 一、过采样简介 二、过采样的实现方法 三、过采样和欠采样是数据增强吗 四、Python实现SMOTE过采样 (一) 生成不平衡数据集 (二) 将数据集转换为DataFrame,便于展示 (三) 应用SMOTE算法进行过采样 &…

【Centos7】CentOS 7下的PyTorch安装策略:高效实践指南

【Centos7】CentOS 7下的PyTorch安装策略:高效实践指南 大家好 我是寸铁👊 总结了一篇【Centos7】CentOS 7下的PyTorch安装策略:高效实践指南✨ 喜欢的小伙伴可以点点关注 💝 前言 由于需要跑深度学习,要用到pytorch&a…

重塑楼宇管理:智慧管控可视化开启高效新篇章

借助图扑智慧楼宇管控可视化技术,实现实时监控与智能化管理,快速响应潜在问题,确保楼宇安全、节能和高效运行。

Git之解决重复输入用户名和密码(三十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

快速入门Linux及使用VSCode远程连接Linux服务器

在当前的技术环境中,Linux操作系统因其强大的功能和灵活性而广受欢迎。无论你是开发人员、系统管理员还是技术爱好者,学习Linux都是提升技术技能的重要一步。本文将介绍如何快速入门Linux,并使用Visual Studio Code(VSCode&#x…

时光正好保剑锋的抱治百病与成年人的世界

《时光正好》:保剑锋的“抱治百病”与成年人的世界在繁忙的都市里,每个角落上演着各自的人生戏码。而在这些戏码中,由保剑锋主演的《时光正好》无疑成为了近期引人注目的焦点。这部电视剧以其真实而深刻的剧情,让我们看到了成年人…

SpringBoot+Vue实现前后端分离基本的环境搭建

目录 一、Vue项目的搭建 (1)基于vite创建vue项目 (2)引入elementplus (3)启动后端服务,并测试 二、SpringBoot项目的搭建 (1)通过idea创建SpringBoot项目 &#x…

有效的括号(oj题)

一、题目链接 https://leetcode.cn/problems/valid-parentheses/submissions/538110206 二、题目思路 利用栈的性质,后进先出 1.依次读取字符串,判断是否为左括号,如果是,就将其入栈。 2.如果读取的不是左括号,就说…

【网络教程】Iptables官方教程-学习笔记7-简单理解IPTABLES规则的作用流程

前面学习了IPTABLES的所有功能介绍后,一个Linux设备里的IPTABLES规则集是如何运行的,这里简单做个介绍。 在Linux设备里输入"iptables -nvl",得到该设备的所有防火墙规则,得到的结果中可以看到这个设备防火墙里所有的链以及链里的…

Git从入门到放弃

由于我的Git学的不太好,所以为了能够将以后我的学习笔记能够整理的更好,我先要系统的学习一下git,文章由此产生。 文章笔记源自尚硅谷Git入门到精通全套教程视频内容 1 进入官网 学习新技术的第一步需要熟悉官网,Git也不例外。ht…

【Python报错】已解决AttributeError: ‘Series’ object has no attribute ‘columns’

成功解决“AttributeError: ‘Series’ object has no attribute ‘columns’”错误的全面指南 一、引言 在Python的数据处理和分析中,Pandas库是一个不可或缺的工具。然而,在使用Pandas时,可能会遇到各种错误,其中之一就是“Att…

HTML静态网页成品作业(HTML+CSS)—— 24节气立夏介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

使用Python创建Word文档

使用Python创建Word文档 安装python-docx库创建Word文档代码效果 在这篇文章中,我们将介绍如何使用 Python创建一个Word文档。首先,我们需要安装python-docx库,然后通过一段简单的代码示例展示如何创建和编辑Word文档。 安装python-docx库 …

RPA影刀 | 变量的使用

1.什么是变量 2.变量的作用 作用1:方便后续流程调用 这里在后续流程“点击元素”中,就可以选中这个变量 作用2:区分相同属性的变量 如果要打开两个网页,总不能都叫web_page吧。 所以这里一个叫百度web_page,一个叫…

C++期末复习总结(2)

目录 1.运算符重载 2.四种运算符重载 (1)关系运算符的重载 (2) 左移运算符的重载 (3)下标运算符的重载 (4)赋值运算符的重载 3.继承的方式 4.继承的对象模型 5.基类的构造 6…

易飞销货单出货时审核库存检查

公司接到一客户因品种多而数量少,单一出货计划行比较多,而只上了生产ERP易飞,审核时经常会出现倒催货,提前做销售单,行数有时超30行以上,审核跳窗报错时也不方便查找,特写一外挂程序&#xff0c…

How to: Build a Custom End-User Skin Selector

This section explains how to populate a ComboBoxEdit control with DevExpress skin items. 本节介绍如何使用DevExpress皮肤项填充ComboBoxEdit控件。 To populate a combo box editor, iterate through the SkinManager.Skins collection, which returns all currently a…

【c语言】自定义类型----结构体

结构体是c语言的一种自定义类型,自定义类型对于开发者及其重要的类型,它可以随意由开发者进行谱写功能,而今天的结构体可以用来表示一种变量的单个或多种具体属性,再编写代码时有着不可替代的作用!!&#x…

一个简单的消息队列

目录 原理 实现代码 示例 原理 消息队列是一个先进先出栈,每次都处理第一项,处理完了过后会删除这个消息,这是一个简单的消息队列图: 实现代码 首先消息队列需要一个队列,我们用Python里的列表: self.…