记一次JProfiler生产实战内存分析(三)

122 阅读1分钟

本篇文章是JProfiler生产实战分析第三篇

记一次JProfiler生产实战内存分析(二)

记一次JProfiler生产实战内存分析(一)

背景

近期线上又有个服务频繁重启告警,我预感这个服务又内存爆了,赶紧看一下监控。

分析过程

先上grafana上看一下整体的内存使用情况

堆使用整体比较正常,看看非堆的情况

谁家的类加载这么多啊。。。

找运维dump一下堆内存,导入JProfiler进行内存分析

查看一下类加载情况

实例数996(手动狗头),看来是fastjson导致的某个问题

打开一个类看看详情

找下相关的业务类,应该就是HuaweiPushApi这个类里面导致的,打开代码看看

感觉这块代码有问题,点进去SerializeConfig的构造方法,里面有一个ASMSerializerFactory

这个类会动态的生成class文件。

解决方案

将这个配置类对象定义成静态常量

改动上线,查看监控

问题解决,over。。。