java.lang.OutOfMemoryError: GC overhead limit exceeded
2017-02-10 14:47
495 查看
如果GC效率太低,Stop the world的时间太长,业务系统的性能将会受到严重影响。根据GC占用系统的时间,以及释放内存的大小,虚拟机会评估GC的效率,一旦虚拟机认为GC的效率过低,就可能直接抛出OOM异常。需要达到以下条件:
1.GC的时间是否超过98%;
2.老年代释放的内存是否小于2%;
3.eden区释放内存是否小于2%;
4.是否连续最近5次GC都出现上述三种情况(指的是同时出现)
满足上述所有条件就会抛出:java.lang.OutOfMemoryError: GC overhead limit exceeded
可以通过配置参数禁止这个错误:-XX:-UseGCOverheadLimit ,但我认为没有必要,如果出现这种问题必然是系统出问题了,如果产生了dump文件,用MAT分析即可;如果当前正在报这个错,且没有产生dump文件,就使用命令手工产生,jmap -dump:format=b,file=/mnt/oom.hprof [pid] .
1.GC的时间是否超过98%;
2.老年代释放的内存是否小于2%;
3.eden区释放内存是否小于2%;
4.是否连续最近5次GC都出现上述三种情况(指的是同时出现)
满足上述所有条件就会抛出:java.lang.OutOfMemoryError: GC overhead limit exceeded
可以通过配置参数禁止这个错误:-XX:-UseGCOverheadLimit ,但我认为没有必要,如果出现这种问题必然是系统出问题了,如果产生了dump文件,用MAT分析即可;如果当前正在报这个错,且没有产生dump文件,就使用命令手工产生,jmap -dump:format=b,file=/mnt/oom.hprof [pid] .
相关文章推荐
- 【exception】android编译ANT打包异常java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError:GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- tomcat java.lang.OutOfMemoryError: GC overhead limit exceeded
- 【问题集】 java.lang.OutOfMemoryError: GC overhead limit exceeded
- AndroidStudio 编译异常java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- Android Studio2.0遇到Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
- Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded ECLIPSE解决方法
- 解决android在mvn打包的时候,包java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError:GC overhead limit exceeded