jvm oom排查记录剖析

 更新时间:2023年08月17日 09:09:51   作者:outwar  
这篇文章主要为大家介绍了jvm oom排查记录剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

命令

命令作用
jmap -dump:live,format=b,file=java.hprof {pid}dump内存
jhat -refs true dump.hprof分析
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprofoomdump
jstat -gc {pid}内存和gc
jmap -histo:live {pid}摘要

jProfile

使用jProfile对大对象进行分析, 查看其引用链路

static class Cache {
    private final ClientFinalizer clientFinalizer = new ClientFinalizer();
    // 就是这个map
    private final Map<Key, FileSystem> map = new HashMap<Key, FileSystem>();
    private final Set<Key> toAutoClose = new HashSet<Key>();
}

最大的对象是FileSystem的缓存, 分析代码可知使用完FileSystem后没有调用close, 导致没有被回收.

第二个大对象定位为org.apache.logging.log4j.core.layout.StringBuilderEncoder#threadLocal, 该项目中由于需要根据业务id路由日志文件, 查看log4j RoutingAppender文档发现其需要配置清理回收策略IdlePurgePolicy.

<IdlePurgePolicy timeToLive="15" timeUnit="minutes"/>

以上就是jvm oom排查记录的详细内容,更多关于jvm oom排查的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot基于Redis实现生成全局唯一ID的方法

    SpringBoot基于Redis实现生成全局唯一ID的方法

    在项目中生成全局唯一ID有很多好处,生成全局唯一ID有助于提高系统的可用性、数据的完整性和安全性,同时也方便数据的管理和分析,所以本文给大家介绍了SpringBoot基于Redis实现生成全局唯一ID的方法,文中有详细的代码讲解,需要的朋友可以参考下
    2023-12-12
  • SpringBoot限制文件或图片上传大小的两种配置方法

    SpringBoot限制文件或图片上传大小的两种配置方法

    这篇文章主要介绍了SpringBoot限制文件或图片上传大小的两种配置方法,一种是配置在启动类中,一种是配置在application.yml或者application.properties中,需要的朋友可以参考下
    2018-03-03
  • java日期时间格式化@JsonFormat与@DateTimeFormat的使用

    java日期时间格式化@JsonFormat与@DateTimeFormat的使用

    本文主要介绍了java日期时间格式化@JsonFormat与@DateTimeFormat的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Servlet从入门到精通(超级详细!)

    Servlet从入门到精通(超级详细!)

    在JavaWeb项目中,处理请求和发送响应的过程是由一种叫做Servlet 的程序来完成的,并且 Servlet 是为了解决实现动态页面而衍生的东西,下面这篇文章主要给大家介绍了关于Servlet从入门到精通的相关资料,需要的朋友可以参考下
    2022-03-03
  • rabbitmq五种模式详解(含实现代码)

    rabbitmq五种模式详解(含实现代码)

    这篇文章主要介绍了rabbitmq五种模式详解(含实现代码),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java日期时间处理问题(从Date、Calendar到SimpleDateFormat)

    Java日期时间处理问题(从Date、Calendar到SimpleDateFormat)

    这篇文章主要介绍了Java日期时间处理深度解析(从Date、Calendar到SimpleDateFormat),我们详细讨论了Java中的日期和时间处理,包括Date、Calendar和SimpleDateFormat类的使用,以及Java 8引入的新的日期时间API的优势,需要的朋友可以参考下
    2024-08-08
  • IDEA设置JVM可分配内存大小和其他参数的教程

    IDEA设置JVM可分配内存大小和其他参数的教程

    这篇文章主要介绍了IDEA设置JVM可分配内存大小和其他参数的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SpringBoot设置默认主页的方法步骤

    SpringBoot设置默认主页的方法步骤

    这篇文章主要介绍了SpringBoot设置默认主页的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • idea创建包含多个springboot module的maven project的方法

    idea创建包含多个springboot module的maven project的方法

    这篇文章主要介绍了idea创建包含多个springboot module的maven project的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Struts2学习教程之输入校验示例详解

    Struts2学习教程之输入校验示例详解

    这篇文章主要给大家介绍了关于Struts2学习教程之输入校验的相关资料,文中通过示例介绍的非常详细,对大家学习或者使用struts2具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05

最新评论