jvm oom排查记录剖析
命令
| 命令 | 作用 |
|---|---|
| jmap -dump:live,format=b,file=java.hprof {pid} | dump内存 |
| jhat -refs true dump.hprof | 分析 |
| -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof | oomdump |
| 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排查的资料请关注脚本之家其它相关文章!
相关文章
Spring Cloud 中自定义外部化扩展机制原理及实战记录
这篇文章主要介绍了Spring Cloud 中自定义外部化扩展机制原理及实战,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-02-02
SpringBoot中通过实现WebMvcConfigurer参数校验的方法示例
这篇文章主要介绍了SpringBoot中通过实现WebMvcConfigurer参数校验的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11
springBoot+dubbo+zookeeper实现分布式开发应用的项目实践
本文主要介绍了springBoot+dubbo+zookeeper实现分布式开发应用的项目实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-03-03
详解Java并发编程中的优先级队列PriorityBlockingQueue
PriorityBlockingQueue是Java中实现了堆数据结构的线程安全的有界阻塞队列。本文将会深入解读PriorityBlockingQueue的源码实现,感兴趣的可以了解一下2023-05-05
cmd中javac命令无法运行(java指令能运行)解决步骤
这篇文章主要介绍了在安装JDK后,执行javac命令没有返回值的问题,可能是由于命令提示符窗口缓存问题、系统路径优先级问题、文件权限问题或命令行输入问题,文中通过代码将解决的步骤介绍的非常详细,需要的朋友可以参考下2025-02-02
Spring gateway配置Spring Security实现统一权限验证与授权示例源码
这篇文章主要介绍了Spring gateway配置Spring Security实现统一权限验证与授权,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-07-07


最新评论