自己工作那么久很少接触到内存调整方面的问题,很巧的是最近两个系统频繁出现了GC回收始终高于75%同时长久不触发OC的回收。自己看到这些很是开心啊,终于有了机会来体验面试中常问的是否有过内存调优方面的经验,哈哈,我再也不空白了。。。。。。。
1、WebLogic中间件频繁告警GC回收率高于75%。自己首先打出hrof的heapdump然后通过mat工具查看内存使用情况。
从mat中可以看到内存有620M都被MemorySessionContext占用,当时按网上说的点击Detail查看后发现有个char[]很大,不是太清楚Shallow Heap的意思,就直接和开发确认看是哪个地方用了这个char,是否存了较大的数据。开发确认没有大的数据存到session中。
能够肯定的是session这块肯定有问题,自己又继续研究mat分析日志的方式,通过Dominator Tree处看这里看的很清楚MemorySessionContext占用内存86.98%,点开session类可以看到有27000多个ha