美文网首页
45.出现OOM如何解决

45.出现OOM如何解决

作者: 鱼仔_1625 | 来源:发表于2017-09-08 13:54 被阅读0次

一. 可通过命令定期抓取heap dump或者启动参数OOM时自动抓取heap dump文件。

二. 通过对比多个heap dump,以及heap dump的内容,分析代码找出内存占用最多的地方。

三. 分析占用的内存对象,是否是因为错误导致的内存未及时释放,或者数据过多导致的内存溢出。

heap dump:

heap dump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况。HeapDump文件是指定时刻的Java堆栈的快照,是一种镜像文件。Heap Analyzer工具通过分析HeapDump文件,哪些对象占用了太多的堆栈空间,来发现导致内存泄露或者可能引起内存泄露的对象。

thread dump:

thread dump文件主要保存的是java应用中各线程在某一时刻的运行的位置,即执行到哪一个类的哪一个方法哪一个行上。thread dump是一个文本文件,打开后可以看到每一个线程的执行栈,以stacktrace的方式显示。通过对thread dump的分析可以得到应用是否“卡”在某一点上,即在某一点运行的时间太长,如数据库查询,长期得不到响应,最终导致系统崩溃。单个的thread dump文件一般来说是没有什么用处的,因为它只是记录了某一个绝对时间点的情况。比较有用的是,线程在一个时间段内的执行情况。两个thread dump文件在分析时特别有效,困为它可以看出在先后两个时间点上,线程执行的位置,如果发现先后两组数据中同一线程都执行在同一位置,则说明此处可能有问题,因为程序运行是极快的,如果两次均在某一点上,说明这一点的耗时是很大的。通过对这两个文件进行分析,查出原因,进而解决问题。

相关文章

  • 45.出现OOM如何解决

    一. 可通过命令定期抓取heap dump或者启动参数OOM时自动抓取heap dump文件。 二. 通过对比多个...

  • 一分钟,教你如何迅速定位OOM

    如何迅速定位OOM 某Java服务(假设PID=10765)出现了OOM,如何快速定位? OOM常见原因分析 Ja...

  • 为什么会出现OOM?如何解决OOM

    一 堆内存溢出 堆内存溢出太常见,大部分人都应该能想得到这一点,堆内存用来存储对象实例,我们只要不停的创建对象,并...

  • Java服务,内存OOM问题如何快速定位

    Java服务,内存OOM问题如何快速定位 Java服务出现了OOM(Out Of Memory)问题,总结了一些相...

  • 五分钟快速了解各种OOM代码样例及解决方法

    针对目前大家对OOM的类型不太熟悉,那么来总结一下各种OOM出现的情况以及解决方法。把各种OOM的情况列出来,然后...

  • 图片选择KSelectImages

    通常android中展示大量图片的时候,容易出现OOM,这个图片框架包括除了有效的解决了图片的OOM问题,还提供了...

  • Android内存溢出

    如何避免OOM 1. 图片过大导致OOM(解决方法) 方法1: 等比例缩小图片方法2:对图片采用软引用,及时地进行...

  • 爱奇艺面试题

    JMM,高并发高吞吐各自适应使用的GC方法,如何造成OOM,解决OOM手动回收对象栈中new的对象生存时间聊聊集合...

  • Android动画

    帧动画 帧动画在使用时需要注意什么?问题解释或者解决方案OOM问题当图片数量较多且图片较大时就容易出现OOM,这个...

  • (12)Redis大KEY定位及优化

    问题:出现OOM报错: OOM command not allowed when used memory > ‘m...

网友评论

      本文标题:45.出现OOM如何解决

      本文链接:https://www.haomeiwen.com/subject/dkigjxtx.html