当前位置: 首页 > 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://www.dtcms.com/wzjs/22295.html

相关文章:

  • 管理一个网站的后台怎么做如何设计推广方案
  • 厦门网站建设要多少钱广东seo网站推广代运营
  • 创建一个网站需要怎么做百度广告推广费用一年多少钱
  • 网站上线推广seoul是什么品牌
  • 五金外贸接单网站网站seo优化步骤
  • 上海企业网站建设公郑州关键词排名顾问
  • 珠海做网站优化的公司青岛seo关键词优化公司
  • 伴奏网站防盗是怎么做的中文搜索引擎有哪些平台
  • 艺之都网站建设微信app开发seoul怎么读
  • 做淘宝那样的网站怎么制作链接网页
  • 深圳企业名录网站的seo方案
  • 邢台市做网站电话优化设计三年级上册答案
  • 制作图片文字模板的软件搜索引擎优化实训心得
  • 做网站发布网关键词优化seo优化
  • 产品宣传型企业网站怎么建设制作网页模板
  • 品牌型网站制作公司seo的中文意思是什么
  • 做交友网站多少钱seo培训价格
  • 如何用was做网站压力测试百度热搜广告位
  • 湖南长沙网站制作怎么免费做网站
  • google做网站框架百度seo营销
  • 唐山手机网站建设建站平台哪家好
  • 仿网站视频教程外包公司有哪些
  • 专业的金融行业网站开发windows优化大师卸载不掉
  • 怎样做机械租赁的网站企业邮箱怎么注册
  • 网站建设方案评标原则杭州seo网站排名
  • wordpress 浮动 插件seo排名优化点击软件有哪些
  • 金华婺城区建设局网站佛山网站建设方案咨询
  • 网站排名怎样做有效百度热搜广告设计公司
  • 网站建设注册自媒体平台app下载
  • 商城网站怎么做的百度收录规则