当前位置: 首页 > Java > 正文

Java OOM示例、原因查找和解决(七)

关键字:
1 星2 星3 星4 星5 星 (1 次投票, 评分: 5.00, 总分: 5)
Loading ... Loading ...
baidu_share

PermGen空间满造成OOM的情况通常采取的解决方法是简单的扩大PermSize。

总结上面的例子来看,对于OOM的情况,最重要的是根据OOM的种类查找到底是代码中的什么部分造成的消耗。

对于Java Heap Space OOM和GC overhead limit exceeded这两种类型,可通过heap dump文件以及jmap –histo来进行分析,多数情况下可通过heap dump分析出原因,但也有少数情况会出现heap dump分析不出原因,而jmap –histo看到某原生类型占据了大部分的内存,这种情况就非常复杂了,只能是仔细查看代码,并捕捉OutOfMemoryError,从而来逐渐定位到代码中哪部分抛出的。

对于Out of swap这种类型,其主要是地址空间超过了限制或者对外内存不够用了造成的,首先需要查看Java Heap设置是否过大,然后可结合google-perftools来查看到底是哪些代码调用了malloc,在堆外分配内存。

本文固定链接: http://www.chepoo.com/java-oom-demo-error-solution-7.html | IT技术精华网

Java OOM示例、原因查找和解决(七):等您坐沙发呢!

发表评论