一.现象分析 上篇博客说到,Java服务假死的原因是使用了Guava缓存,30分钟的有效期导致Full GC无法回收内存.经过优化后,已经不再使用Guava缓存,实时查询数据.从短期效果来看,确实解决了无法回收内存的问题,但是服务运行几天后,发现内存又逐渐被占满,Full GC后只能回收一小部分. 从上图可以看出,一次Full GC后,老年代基本上没有回收多少内存,占比从99.86%降到99.70%. 二.原因排查 到底是什么对象占据这么大的内存,并且无法被JVM垃圾回收呢.在上一篇博客中已经移…