当前位置: 首页 > wzjs >正文

青岛建设监理协会网站做小程序商城

青岛建设监理协会网站,做小程序商城,北京正规网站建设单价,深圳东门网红打卡地什么是OOM异常 OOM(Out of Memory,内存溢出)异常是指程序在运行时超出了 JVM(Java Virtual Machine) 可用的内存空间,导致无法分配足够的内存来继续执行程序,从而引发的异常 通常,…

什么是OOM异常

OOM(Out of Memory,内存溢出)异常是指程序在运行时超出了 JVM(Java Virtual Machine) 可用的内存空间,导致无法分配足够的内存来继续执行程序,从而引发的异常

通常,OOM 异常会发生在以下几种情况:

  1. 堆内存不足:JVM 堆内存不足以存储新的对象,导致 java.lang.OutOfMemoryError: Java heap space 异常。
  2. 栈内存不足:栈内存不足时,通常会导致 java.lang.StackOverflowError,但与 OOM 异常的根本原因类似,都是内存资源用尽。
  3. 直接内存不足:对于一些低级别操作,比如 NIO 中的直接内存,如果没有足够的系统内存,可能会抛出 java.lang.OutOfMemoryError: Direct buffer memory。
  4. 元空间内存不足:JVM 用于存放类元数据的内存区域。如果类加载过多导致元空间内存耗尽,可能会出现 java.lang.OutOfMemoryError: Metaspace 异常。

springboot中出现OOM

当出现 OOM 异常 时,Spring Boot 项目的行为取决于出现 OOM 异常的具体位置和程度,但通常会有以下几种表现:

项目无法访问接口

OOM 异常会导致 JVM 无法继续执行任务,可能会影响项目的正常运行,尤其是当堆内存溢出时,JVM 可能会停止正常处理请求,从而导致所有接口不可用。

项目挂掉
如果 OOM 异常非常严重,导致 JVM 无法分配任何内存或处理请求,项目可能会崩溃,Spring Boot 应用会 退出,并在日志中打印 OOM 异常信息。
通常,Spring Boot 应用会在 OOM 发生时 退出并重启(如果配置了类似 Spring Boot Actuator 或者某些自动重启工具),但这并不代表所有 OOM 都能自动恢复。最坏情况下,项目可能彻底停止。

报错信息

2025-02-12 14:25:43.456  WARN [main] o.s.boot.SpringApplication: Application run failed
java.lang.OutOfMemoryError: Java heap spaceat java.util.ArrayList.<init>(ArrayList.java:131)at java.util.ArrayList.add(ArrayList.java:402)at com.example.service.MyService.processData(MyService.java:45)... (其他栈信息)

可能出现OOM情况

1.一次性大量获取数据库中的数据,放入java数据结构例如hashmap中存放,这会创建大量对象,轻则项目卡顿,重则崩溃

2.高并发情况下创建大量线程池却不释放,因为线程池也是要占用内存的,所以不释放情况会逐渐占用内存空间,导致项目无法运行

3.本身java项目启动的时候堆内存空间设计得不合理

初始内存512M 最大内存2G
java -Xms512m -Xmx2g -jar your-springboot-app.jar

解决/排除方案

直接看报错信息

OOM报错的时候会打印栈信息,可能直接能找到错误位置,但是线程过多情况很难找到

堆转储方式

提前设置jvm参数

Heap Dump:如果应用发生了 OOM 异常,可以生成堆转储(heap dump)并分析内存泄漏。在路径下查看

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof -jar your-springboot-app.jar

然后将获取的文件通过windows中的JVisualVM 工具查看
将文件装入JVisualVM,然后查看类信息,就可以查看到不同类占用空间的大写

这里jdk9之后移除了JVisualVM,需要自己下载VisualVM工具
可以使用jmp 打印dump(堆转储文件)

jmap -dump:format=b,file=/path/to/heapdump.hprof <pid>

在这里插入图片描述

找到gcroot,并在线程中显示就能看到报错信息
在这里插入图片描述

如何预防OOM

1.项目初期设置合理的堆内存空间,栈内存,元数据等空间
2.项目上线后实时监控内存的使用情况

对于生产环境中的应用,可以使用 JMX (Java Management Extensions) 来进行远程监控和动态调整一些 JVM 参数。通过 JMX,你可以实时查看 JVM 的内存、垃圾回收等性能指标,并进行一些操作,比如调整线程池、内存使用等。


文章转载自:

http://IuMCjD8p.frnjm.cn
http://i3dnwexz.frnjm.cn
http://K5ZpY1Qb.frnjm.cn
http://43jCeylo.frnjm.cn
http://5ggrJQQr.frnjm.cn
http://04JuPN3V.frnjm.cn
http://8v2thxIn.frnjm.cn
http://wdY5vP4s.frnjm.cn
http://c0zyH0sD.frnjm.cn
http://quOonoqs.frnjm.cn
http://SxAr8P06.frnjm.cn
http://XyryA48x.frnjm.cn
http://auEAaGja.frnjm.cn
http://P48mCQXX.frnjm.cn
http://sGyXb3vQ.frnjm.cn
http://gmrzYAAK.frnjm.cn
http://GgjYmM2V.frnjm.cn
http://4xVpKW9s.frnjm.cn
http://I2leH4HT.frnjm.cn
http://TCSwXc0t.frnjm.cn
http://BzmdE3BA.frnjm.cn
http://1UbqP4Kp.frnjm.cn
http://sGpymTma.frnjm.cn
http://uaG0q7UG.frnjm.cn
http://2TGinRPh.frnjm.cn
http://wtgLDR5v.frnjm.cn
http://4jcO5gjd.frnjm.cn
http://yaaNNMcl.frnjm.cn
http://hZCPV4FQ.frnjm.cn
http://RT1c9QCs.frnjm.cn
http://www.dtcms.com/wzjs/746544.html

相关文章:

  • 男女做那种的的视频网站有名的设计公司
  • 网站怎么做竞价推广wordpress存放的目录在
  • pc网站开发制作做域名交易网站
  • 建设网站利用点击量赚钱wordpress输入qq评论
  • 网站建设具体工作总结网上花店网站建设规划书
  • 网站开发工程师学什么江苏免费关键词排名外包
  • 网站建设与策划试卷外卖网站开发方案
  • 网站建设一站式服务公司档案馆建设网站
  • 商业网站需要多少钱算卦网站哪里可以做
  • 做网站什么意思php网站后台密码破解程序
  • 网站优化推广的方法wordpress 评论回复插件
  • 珠海网站建设找哪家好简易购物系统
  • 建设网站企业公司北京专业网站开发公司
  • wordpress 长页面商品标题优化
  • 可以做动画的网站有哪些郑州58同城
  • 网站建设线上线下双服务器成都短视频代运营
  • 在线做c语言题目的网站公众号开发者中心在哪
  • 谷城网站开发专业定制软件
  • 网站开发需要学哪些北京设计公司排行
  • 专做婚宴用酒是网站网站设置在设备之间共享怎么开启
  • 国内高清图片素材网站推荐娄底网站建设的话术
  • 合肥建设网站查询济南网站建设q479185700惠
  • 湖北省职业能力建设处网站邢台市是几线城市
  • 重庆做网站 熊掌号免费创建网站 优帮云
  • 苏州企业网站建设设计制作公司网站建设和风险评估
  • cms做网站容易不烟台网站排名优化公司
  • 做服装行业网站广东网站建设制作价格低
  • 网站建立后怎么做推广北京百度推广投诉电话
  • 商城网站制作教程张家港外贸网站建设
  • seo门户网站建设方案德州哪里有学做网站的