记录一次Netty java.lang.OutOfMemoryError: Java heap space
线上跑差不多半天,其中一个应用程序会报错OOM
其他应用程序会跟这个OOM挂掉的应用程序进行每隔5秒的心跳通信。但是很有意思的是,总共布了四台机器,其余两台不会出现问题。所以我个人认为不是代码层面上的问题。四台布置的应用个数也是一样的。
错误信息
2019-08-14 09:16:01.148 [epollEventLoopGroup-3-5] INFO c.s.p.c.n.s.h.ServerIdleHandler -[服务端
进程][服务端空闲检查器] [id: 0x0f5b7167, L:/127.0.0.1:10001 ! R:/127.0.0.1:58708] 下线了!
2019-08-14 09:16:07.940 [epollEventLoopGroup-3-6] WARN io.netty.channel.ChannelInitializer -Failed to initialize a channel. Closing: [id: 0x8137a093, L:/127.0.0.1:10001 - R:/127.0.0.1:58710]
java.lang.OutOfMemoryError: Java heap space
2019-08-14 09:16:08.126 [epollEventLoopGroup-3-6] INFO c.s.p.c.n.s.h.ServerIdleHandler -[服务端
进程][服务端空闲检查器] [id: 0x8137a093, L:/127.0.0.1:10001 ! R:/127.0.0.1:58710] 下线了!
2019-08-14 09:16:12.772 [epollEventLoopGroup-3-7] WARN io.netty.channel.ChannelInitializer -Failed to initialize a channel. Closing: [id: 0xf3ea6fc5, L:/127.0.0.1:10001 - R:/127.0.0.1:58716]
java.lang.OutOfMemoryError: Java heap space
使用visualVM分析dump文件
是管道频繁断开,频繁注册引起的?
后面发现在/etc/hosts里面,正常的两台是有这两句的,而不正常的没有这两句。我现在加上去,再观察下。
127.0.0.1 sunsharing-74 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 sunsharing-74 localhost localhost.localdomain localhost6 localhost6.localdomain6
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实验证明确实是那两行导致,增加之后运行两天没有出现OOM。
Centos7环境按理说这两行注释掉,也没有关系才对
管道不断断开,重连,导致 被重连的这个应用服务OOM。
不太明白的是,断开动作是执行channle.close。 这样难道不能保证资源释放吗?
有没有netty的高手帮忙解释下这个现象~