最近在优化以前的项目,主要是把之前自己写的发送接收模块用上netty,可能是对netty的不熟悉,出了两次问题。
第一次在排查了一遍代码后没发现什么问题,而且是在项目稳定运行了一段时间和出现的,就侥幸的以为是偶然因素导致的,加上其他项目耽误着时间就把这个优先级放低了。
没想到过了一段时间又出现了,这次就必须去解决了。下面是错误的日志
这两次问题发现了一个规律,就是隔一段时间就出现,所以怀疑是某个变量没有释放,长时间的累积导致的内存溢出,所以隔了一天再去服务器上查看资源,果然有增长,虽然不太明显。
于是开始检查各个变量,在一个大神的建议下把一个变量释放掉了。这个变量之前没有考虑,以为jvm回自动回收。
修改代码后重新部署,隔了3天去观察,内存没有增长,看来是有效果。那就先这么着吧,隔个长一点的时间再观察观察
这是增加的一句话