1、问题描述
过完5.1,回来发现实例分发的服务日志不打印了,进程还在,jstack后没有发现问题在哪,查看错误日志和没有发现问题,然后重启服务,重启发现几分钟后内存暴增,内存在查耗尽。
由于没有定位到具体原因,猜测是入库时间长导致数据入库堆积引起内存溢出,所以就着手优化数据入库。优化完成后部署上去问题依然存在。排查了3天,依然没有定位到问题。
后面在大神的指导下才定位到了问题:
定位步骤如下:
jsp 查询出java的pid
netstat -tuanp|grep java的pid
查询java程序调用其他服务的情况了
发现java一致在调用redis,而且字节数特别大
突然恍然大悟。是实例分发服务在读取备份在redis的数据进行入库操作
然后查询的一下redis list的数量发现有300多万条数据,而且是一次性读取300多万条数据批量入库的,难怪会突然内存爆掉
一次小小的失误让我排查了好几天,谨记教训。