欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OOM和*Error 笔记

程序员文章站 2022-07-12 20:08:55
...

SOFE之*Error

OOM和*Error 笔记

栈溢出  调大jvm参数

-Xss=1024k

 OOM之Java heap space

OOM和*Error 笔记

OOM和*Error 笔记

 

OOM和*Error 笔记

在JVM中如果98%的时间是用于GC(Garbage Collection)且可用的 Heap size 不足2%的时候将抛出异常信息,java.lang.OutOfMemoryError: Java heap space。 
所以产生这个异样的原因通常有两种:
    1.程序中出现了死循环
    2.程序占用内存太多,超过了JVM堆设置的最大值。

对于第一种情况,需要自己查看程序代码,这里不再多说。
第二种情况,我们手工扩大JVM堆的参数设置。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。在JVM启动时,JVM堆会自动设置heap size值。通常情况下,初始空间(即-Xms)默认值是物理内存的1/64,最大空间是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置    
 

OOM之GC overhead limit exceeded

“并行/并发回收器在GC回收时间过长时会抛出OutOfMemroyError。过长的定义是,超过98%的时间用来做GC并且回收 了不到2%的堆内存。用来避免内存过小造成应用不能正常工作

 

OOM之Direct buffer memory

OOM和*Error 笔记

 篮筐以外黑框以内是本地内存

OOM和*Error 笔记

OOM和*Error 笔记

OOM和*Error 笔记

NIO程序时 经常出现

OOM之unable to create new native thread

OOM和*Error 笔记

OOM之Metaspace

元空间默认大小为21m  jdk89 ,设置固定的元空间大小  并且类信息不断地加载进去就会出现这种情况,解决方法是增加元空间的大小

-XX:MetaSpaceSize = xx m

-XX:MaxMetaSpaceSize=xx m