2021-05-19 图片下载疑似内存泄露

现象:restTemplate大量下载图片 -> 内存占用持续上升达到最大堆内存 -> jstat -gcutil 4382 1000 发现应用 持续fullGC无法降低内存占用,cpu占用上升至100%

分析: jps -> jmap -histo:live pid | head -10 -> 发现最大占用为char[] -> 本地模拟使用jprofiler查看allocation tree发现存活的char[]多由cat拦截器分配

结论:由于restTemplate配置了cat监控拦截器,导致通过restTemplate下载的图片数据会发送至cat服务器,这个过程堆积导致图片数据持续驻留在内存并且无法被GC

解决:单独写图片下载的代码 不使用之前的restTemplate

jmap结果
jstat结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容