最近项目在做压力测试得时候,发现性能快速劣化,tps很低,到最后系统挂死。
通过查看cpu情况,发现cpu占用非常高,找到暂用cpu的线程是gc线程
同时查看系统内存gc情况,发现频繁gc,并且内存不能够回收,
明显是有了内存泄漏的现象,再dump内存工具,发现com.alibaba.fastjson.util.IdentityHashMap产生了大量
org.springframework.core.ResolvableType
通过分析代码
主要原因是IdentityHashMap 使用 System.identityHashCode作为key,而没有使用 ResolvableType的hash值

主要的出现场景就是json解析的时候,采用了泛型类,泛型类又没有直接指定具体的类型

在进行压力测试时,发现系统性能迅速下降,TPS降低,最终导致系统崩溃。进一步调查发现,CPU占用率极高,GC线程过度活跃,且存在内存泄漏问题。深入分析后,确认内存泄漏与FastJSON中IdentityHashMap处理ResolvableType类型有关。
3275

被折叠的 条评论
为什么被折叠?



