一次因生产事故与chatGpt的对话_天天热头条
一次因生产事故与chatGpt的对话前言:生产出现了一个内存溢出的事故,记录错误信息。错误日志如下org springframework web util NestedServletExcepti
2023-03-29
【资料图】
一次因生产事故与chatGpt的对话
前言:生产出现了一个内存溢出的事故,记录错误信息。错误日志如下org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap spaceat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055) ~[spring-webmvc-5.2.11.RELEASE.jar!/:5.2.11.RELEASE]..........一问答二问答三问答四问答五问答六问答七问答八问答九问答十问答知识小结:1. Java运行参数堆 :是JVM 运行时一块内存区域,用于存储创建的对象和数组。当需要创建新对象时,JVM 会在堆空间中分配一块连续的空闲区域,用于存储该对象。
-Xms :用于指定堆空间的初始值-Xmx :用于指定堆空间的最大值,过小容易出现OutOfMemoryError,-Xmn :设置新生代堆的大小,在整个堆大小(包括新生代堆和老年代堆)已经被设置的情况下。它的默认值通常是整个堆大小的 1/4 或者 1/8。-XX:+UseG1GC :使用 G1 垃圾回收器。G1 垃圾回收器是 Java 7 中引入的一种新的垃圾回收器,适用于大内存应用程序,并且能够在较短的停顿时间内处理大型堆。2. 监控与计算服务器内存free 静态显示内存使用情况,可直接用于计算内存使用率。
top 可动态监控,且可查看某些进程的使用情况
3. 内存使用率的计算公式,若内存使用率超过 70%,就容易发生内存溢出
Memory Usage = (MemTotal - MemFree - Buffers - Cached) / MemTotal * 1003. 事故解决方案加大最大堆值Xmx ,原是512m 后增之1024m。内存使用率超过 70%(约为75%),建议增加内存。
标签: