1,java.lang.OutOfMemoryError:Java heap space
堆空间内存溢出
常见原因:
- 堆空间不足(根本原因)
- 数据量峰值,某个时间段数据量突然达到峰值,大于设计时的阈值
- 内存泄漏,不能回收的内存一直累积(比如局部变量一直增多)
2,java.lang.OutOfMemoryError:GC overhead limit exceeded
应用程序花费超过80%的时间用来做GC并且回收了不到2%的堆内存
常见原因:
堆内存一直增加,GC一直在工作,占用100%CPU
3,java.lang.OutOfMemoryError:Permgen space
持久代内存被耗尽(JDK8已经移除永久代)
常见原因:
- 加载了太多的类(因为持久代中主要存储每个类信息例如:类加载器引用、运行时常量池(所有常量、字段引用、方法引用、属性)、字段(Field)数据、方法(Method)数据、方法代码、方法字节码等等)
- 重新部署时没有完全清除上次永久代残留
4,