4、JVM OOM

79 阅读1分钟

1.MetaSpace

MetaSpace区域会OOM

什么样的类会被回收?这个类的类加载器先要被回收,这个类的所有对象实例都要被回收。

什么情况会出现MetaSpace出现OOM?设置的太小,或者没有设置使用的是默认几十M的大小;cglib动态生成类,出现的问题,导致MetaSpace占满。

2.虚拟机栈

每个线程的虚拟机栈会OOM 什么时候出现?无限制的方法递归,会出现虚拟机栈的OOM。

3.堆内存空间

堆内存空间会OOM

什么时候出现?系统承载高并发请求,因为请求量过大,导致大量对象都是存活的,所以要继续放入新的对象实在是不行了,此时就会引发OOM系统崩溃。

系统有内存泄露的问题,有很多对象,无法被GC回收。

4.处理措施

保存案发现场

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/app/oom

进行MAT的内存分析