Jvm内存排查
Posted acker-ploy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jvm内存排查相关的知识,希望对你有一定的参考价值。
最近公司项目经常出现OOM,dump出堆栈信息发现User对象占了80%的内存,
检查代码未发现有查询全量用户信息的地方,该现象连续出现了一个星期,都是User对象引起的,
仔细查看日志发现有一个接口调用异常频繁,再结合代码分析发现在接口层上一级有一个拦截器,校验session里面的用户信息,
可以断定问题基本上就在此处,每次请求接口时将查询的用户信息放入session,并且未设置session超时时间(默认半小时),
当访问量大是会出现内存暴增,
修复方案:下session信息存入Redis缓存,做session共享
以上是关于Jvm内存排查的主要内容,如果未能解决你的问题,请参考以下文章
JVM故障问题排查心得「内存诊断系列」JVM内存与Kubernetes中pod的内存容器的内存不一致所引发的OOMKilled问题总结(下)