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排查的资料请关注脚本之家其它相关文章!
相关文章
SpringBoot中的@ControllerAdvice使用方法详细解析
这篇文章主要介绍了SpringBoot中的@ControllerAdvice使用方法详细解析, 加了@ControllerAdvice的类为那些声明了@ExceptionHandler、@InitBinder或@ModelAttribute注解修饰的 方法的类而提供的专业化的@Component,以供多个 Controller类所共享,需要的朋友可以参考下2024-01-01
Java concurrency之互斥锁_动力节点Java学院整理
本文通过示例代码给大家介绍了Java concurrency之互斥锁的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-06-06
InputStreamReader 和FileReader的区别及InputStream和Reader的区别
这篇文章主要介绍了InputStreamReader 和FileReader的区别及InputStream和Reader的区别的相关资料,需要的朋友可以参考下2015-12-12


最新评论