线上环境内存溢出-OutofMemoryError

简介: 公司线上环境,出现内存溢出异常,发生时,cpu占用360%。系统可用内存不足。

线上环境内存溢出-OutofMemoryError


前言

公司线上环境,出现内存溢出异常,发生时,cpu占用360%。系统可用内存不足。


一、OutOfMemoryError是什么?

当 JVM 内存严重不足时,当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMemoryError 错误。

二、实际情况(参考)

解决方案

针对大部分情况,通常只需要通过 -Xmx 参数调高 JVM 堆内存空间即可。


如果仍然没有解决,可以参考以下情况做进一步处理:

  • 如果是超大对象,可以检查其合理性,比如是否一次性查询了数据库全部结果,而没有做结果数限制。
  • 如果是业务峰值压力,可以考虑添加机器资源,或者做限流降级
  • 如果是内存泄漏,需要找到持有的对象,修改代码设计,比如关闭没有释放的连接

1.实战

当数据量过大时,发现页面响应过慢,卡住
后台执行命令

top
键盘按(排序)
Shift + M

发现java程序 cpu 360% , 内存严重不足

立即查看日志
在这里插入图片描述
发现异常:OutOfMemoryError,仔细阅读,其中使用fastJson 方法parse解析数组发生内存溢出,并且指出异常发生的代码行,找到代码,根据经验,发现fastJson 解析的数组过大,导致内存溢出。需要优化代码

总结

工作中我们经常遇上类似的错误,解决方案根据情况而定,这里我们选择优化代码。因为代码是手里面的一个新人写的,逻辑可能欠缺一些考虑。这里做个记录

目录
相关文章
|
4月前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
71 0
|
缓存 Java 大数据
深入解析JVM调优:解决OutOfMemoryError、内存泄露、线程死锁、锁争用和高CPU消耗问题
深入解析JVM调优:解决OutOfMemoryError、内存泄露、线程死锁、锁争用和高CPU消耗问题
221 0
|
SQL 存储 Java
【问题处理】—— 一次内存溢出(OutOfMemoryError)实战排查
【问题处理】—— 一次内存溢出(OutOfMemoryError)实战排查
292 0
|
IDE Java 开发工具
JVM-03内存区域与内存溢出异常(下)【OutOfMemoryError案例】
JVM-03内存区域与内存溢出异常(下)【OutOfMemoryError案例】
115 0
|
存储 Java 数据库连接
JVM之常见内存溢出(OutOfMemoryError)异常 ✨ 每日积累
JVM之常见内存溢出(OutOfMemoryError)异常 ✨ 每日积累
JVM之常见内存溢出(OutOfMemoryError)异常 ✨ 每日积累
|
Java
Java内存溢出OutOfMemoryError的产生与排查
在java的虚拟机异常中,有两个异常是大家比较关心的,一个是StackOverflowError,另一个是OutOfMemoryError。今天我们就来看看OutOfMemoryError是怎么产生的,以及如何去排查这个异常。
778 0
Java内存溢出OutOfMemoryError的产生与排查
|
新零售 Java 程序员
Android中使用web3j时出现内存溢出错误:OutOfMemoryError
在使用Android和web3j开发时出现了内存溢出错误的异常情况即OutOfMemoryError。 我正在试着在Android应用程序中集成web3j。
2216 0
|
存储 Java Android开发
查找并修复Android中的内存泄露—OutOfMemoryError
本文作者为来自南非约翰内斯堡的女程序员 Rebecca Franks,Rebecca 热衷于安卓开发,拥有4年安卓应用开发经验。有点完美主义者,喜爱美食。
4459 0