实战分析:记录一下线上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,一经查实,立即删除!

相关文章

计算文件md5

在开发过程中,经常要验证文件是否是同一个文件,或者文件是否被修改,可以通过计算md5值来比对文件是否改变。 使用方法 md5sum 文件名 # 67ed5ca4a19a2d9682b680cb30c9be64 *aaa.mp4## 67ed5ca4a19a2d9682b680cb30c9be64 就是aaa.mp4的MD5值…

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

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

Maven的安装与配置要点和难点常见报错和解决方案

Maven的安装与配置过程可以概括为以下几个步骤: 1. 安装前提 安装JDK:Maven需要Java环境,因此首先需要安装JDK。通常建议使用与Maven兼容的JDK版本,如JDK 1.8或更高版本。 2. 下载Maven 访问Maven官网:从Maven的官方网站下载最新版本的Maven。确保选择与操作系统兼容的…

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

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

JavaScript html css 字符串对象

字符串对象 字符串所有的方法&#xff0c;都不会修改字符串本身&#xff08;字符串是不可变的&#xff09;&#xff0c;操作完成会返回一个新的字符串。 length属性 作用&#xff1a; 获取字符串长度 示例&#xff1a; <span style"background-color:#f8f8f8&qu…

阿里云ECS服务器部署javaweb项目实操

在阿里云ECS实例上部署Java Web项目涉及几个主要步骤&#xff1a;创建和配置ECS实例、安装必要的软件&#xff08;JDK、Web服务器、数据库等&#xff09;、部署Java Web应用程序以及配置防火墙和安全组。以下是详细的步骤&#xff1a; 步骤1&#xff1a;创建ECS实例 登录阿里云…

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

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

java的序列化与反序列化

一、定义 Java序列化和反序列化&#xff1a;序列化就是指把Java对象转换为字节序列的过程。&#xff08;例如将一个类转化为json类型&#xff09;反序列化就是指把字节序列恢复为Java对象的过程。 在Java实际运用中&#xff0c;,许多方面应用序列化反序列化——持久化、通信、…

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

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

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

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

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

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

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

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

深入了解Linux中的db_dump185命令

深入了解Linux中的db_dump185命令 在Linux系统中&#xff0c;db_dump185可能不是一个广为人知的命令&#xff0c;但它对于某些特定的数据库或文件系统任务来说却是一个非常有价值的工具。特别是当你与旧版的Berkeley DB数据库或类似的存储机制打交道时&#xff0c;db_dump185可…

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

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

有效的括号(oj题)

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

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

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

Git从入门到放弃

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

【区分vue2和vue3下的element UI ¶Upload 上传组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中&#xff0c;我们通常使用 Element UI 的 el-upload 组件来实现文件上传功能。然而&#xff0c;在 Vue 3 中&#xff0c;由于 Element UI 没有官方支持 Vue 3 的版本&#xff0c;我们通常会使用 Element Plus&#xff08;Element UI 的 Vue 3 版本&#xff09;的 el…

海豚调度器调用api接口启动工作流(亲试可用)

一、前言 在大数据时代,工作流调度器成为了数据管道和ETL任务中不可或缺的工具。DolphinScheduler作为一款强大的工作流调度器,支持多种任务类型和工作流的可视化管理。除了通过Web界面操作外,DolphinScheduler也提供了API接口,使得第三方系统集成和自动化脚本调用成为可能…

理论学习-自动控制

自动控制 前馈控制简介表现形式前馈 - 反馈 结合使用 前馈控制 简介 前馈控制 什么&#xff1f;作用 &#xff1f;条件&#xff1f; 没有表达形式&#xff08;具体的&#xff09;&#xff0c;控制方法。提高响应速度&#xff0c;减小误差&#xff0c;增加带宽而不改变稳定性…