JVM:浅谈内存溢出的原因

1、java heap space

java.lang.OutOfMemoryError: ...java heap space... 堆栈溢出,代码问题的可能性极大。

2、GC over head limit exceeded

java.lang.OutOfMemoryError: GC over head limit exceeded 系统处于高频的GC状态,而且回收的效果依然不佳的情况,就会开始报这个错误。这种情况一般是产生了很多不可以被释放的对象,有可能是引用使用不当导致,或申请大对象导致。

3、PermGen space

java.lang.OutOfMemoryError: PermGen space jdk1.7之前才会出现的问题 ,原因是系统的代码非常多或引用的第三方包非常多、或代码中使用了大量的常量、或通过intern注入常量、或者通过动态代码加载等方法,导致常量池的膨胀。

4、Direct buffer memory

java.lang.OutOfMemoryError: Direct buffer memory 直接内存不足,因为jvm垃圾回收不会回收掉直接内存这部分的内存,所以可能原因是直接或间接使用了ByteBuffer中的allocateDirect方法的时候,而没有做clear。

5、StackOverflowError

java.lang.StackOverflowError - Xss设置的太小了。

6、unable to create new native thread

java.lang.OutOfMemoryError: unable to create new native thread 堆外内存不足,无法为线程分配内存区域。

7、request {} byte for {}out of swap

java.lang.OutOfMemoryError: request {} byte for {}out of swap 地址空间不够。

相关推荐
此时不提桶,更待何时1 天前
01-06-A-JVM排查实战详解
java·jvm
wuminyu2 天前
HotSpot的轻量锁与膨胀后的ObjectMonitor状态重建原理
java·linux·c语言·jvm·c++
需要8262 天前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
凤山老林2 天前
Spring Boot 应用 JVM 性能调优实战:GC 日志分析、堆内存规划与容器环境避坑
jvm·spring boot·gc·堆内存
需要8263 天前
Arthas 一个命令排查线上问题
java·jvm·spring·spring cloud
程序员阿鹏3 天前
简单介绍一下软引用
java·开发语言·jvm·数据结构·后端
lsylalalala4 天前
JVM(Java虚拟机)
jvm
xieliyu.4 天前
JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
java·jvm·笔记·java-ee
此时不提桶,更待何时4 天前
01-04-B-垃圾回收面试与生产事故实战
java·jvm·面试
kian.wqn5 天前
【JVM核心体系02】JVM 运行时内存区域:堆、栈、元空间、直接内存一次讲清
jvm