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的内存分析