美文网首页
OOM问题排查

OOM问题排查

作者: 莫失莫忘X3 | 来源:发表于2020-10-22 15:40 被阅读0次

JVM参数设置

在JAVA_OPTIONS变量中增加参数

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}

说明:

  • -XX:+HeapDumpOnOutOfMemoryError

当JVM发生OOM时,自动生成DUMP文件

  • -XX:HeapDumpPath= ${目录}

存放DUMP文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_<pid><date><time>.hprof

所以在jvm启动参数加上以上配置是为了在项目发生oom时,输出堆的内存快照,用于后续分析定位

hprof文件分析

hprof文件需要用内存分析工具分析,如mat、jdk自带的jvisualvm.exe
本人习惯用mat工具 mat下载

  • 载入hprof文件


    image.png
  • Histogram
    可以右键某一项查看类实例并通过Path to GC Roots快速找到某个对象的 GC Root


    image.png
  • Leak Suspects
    通过分析线程堆栈信息,可以很好定位内存泄漏的位置


    image.png
  • Dominator Tree
    以实例对象的维度展示当前堆内存中Retained Heap占用最大的对象,以及依赖这些对象存活的对象的树状结构


    image.png
  • Thread Overview
    可以查看线程对象/线程栈信息、线程名、Shallow Heap、Retained Heap、类加载器、是否Daemon线程等信息


    image.png
    image.png

相关文章

  • OOM问题排查

    JVM参数设置 在JAVA_OPTIONS变量中增加参数 说明: -XX:+HeapDumpOnOutOfMemo...

  • zookeeper oom

    一:问题: zookeeper oom挂掉之后重启及选举失败 二:排查: 2.1 oom信息: 其中,FileTx...

  • Redis OOM问题排查

    1. 问题描述 看到Redis报了OOM的错误,而且服务响应速度非常慢,页面上丢了很多数据,赶紧起来查看问题。 2...

  • OOM问题排查方法

    根据日志确定发生OOM的原因和区域,以下几个内存区域都可能发生OOM,先找到打印出的OOM错误日志和dump文件(...

  • [Redis] OOM 问题排查

    发现 在 jedis 写入 key 时发现了以下异常日志(部分) 排查 服务器内存是否满了 redis 内存限制是...

  • OOM排查

    http://ifeve.com/one-java-oom/

  • OOM排查

    一般CPU100%疯狂GC,都是死循环的锅,那怎么排查呢? 1):先进服务器,用top -c 命令找出当前进程的运...

  • 再一次oom的记录

    上一次oom的记录在一次排查OOM的总结,这次oom的排查大概花了一天不到,和leader一起,我这边主要是根据后...

  • JVM dump启动参数

    为了业务更快的恢复以及OOM后排查问题,建议JVM添加如下默认参数: -XX:+ExitOnOutOfMemory...

  • OOM问题

    OOM是开发中会经常遇见的一类问题,其中很多原因是可以在写代码阶段就可以排查出来的,本文结合之前解决的OOM的问题...

网友评论

      本文标题:OOM问题排查

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