SpringBoot内存泄露,排查竟这么难!堆内内存、Code 区域或者使用 unsafe.allocateMemory 和 DirectByteBuffer 申请的堆外内存。首先,使用了 gperftools 去定位问题,gperftools 的使用方法可以参考 gperftools:gperftools 的监控如下:然后,使用 strace 去追踪系统调用。因为使用 gperftools 没有追踪到这些内存,于是直接使用命令“strace -f -e”brk,mmap,munmap” -p
文章来源:http://suo.im/5MABXL目录背景排查过程总结背景为了更好地实现对项目的管理,我们将组内一个项目迁移到 MDP 框架(基于 SpringBoot),随后我们就发现系统会频繁报出 Swap 区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了 4G 堆内内存,但是实际使用的物理内存竟然高达 7G,确实不正常。JVM 参数配置是:“-XX:Meta...