netty 内存溢出的情况之一

原创 2017年01月03日 11:17:15

最近在优化以前的项目,主要是把之前自己写的发送接收模块用上netty,可能是对netty的不熟悉,出了两次问题。

第一次在排查了一遍代码后没发现什么问题,而且是在项目稳定运行了一段时间和出现的,就侥幸的以为是偶然因素导致的,加上其他项目耽误着时间就把这个优先级放低了。

没想到过了一段时间又出现了,这次就必须去解决了。下面是错误的日志


这两次问题发现了一个规律,就是隔一段时间就出现,所以怀疑是某个变量没有释放,长时间的累积导致的内存溢出,所以隔了一天再去服务器上查看资源,果然有增长,虽然不太明显。

于是开始检查各个变量,在一个大神的建议下把一个变量释放掉了。这个变量之前没有考虑,以为jvm回自动回收。

修改代码后重新部署,隔了3天去观察,内存没有增长,看来是有效果。那就先这么着吧,隔个长一点的时间再观察观察

这是增加的一句话


高并发下Netty4底层bug导致直接内存溢出分析

事故记录: 10点游戏开服,迅速冲破2300+单区同时在线 18点15分,运营反应玩家进不了,准备吃饭的人被抓回来排查故障 发现,由于直接内存被占满,一直在Full GC ,并且回收不掉,所以完全不处...

netty做Pipe一端快一端慢时防止内存溢出进行的操作

前段时间用netty3.x做了一个pipe的功能,读的速度很快,写的速度很慢,结果读总是把内存耗光(来不及写写到pipe的另一端),后面解决了这个问题。 原来的pipe的代码: public v...
  • cwjcsu
  • cwjcsu
  • 2013年07月01日 17:14
  • 790

追踪 Netty 异常占用堆外内存的经验分享

https://zhuanlan.zhihu.com/p/21741364 本文记述了定位 Netty 的一处漏洞的全过程。事情的起因是我们一个使用了 Netty 的服务,随着运行时间的...

Netty之Java堆外内存扫盲

Netty之Java堆外内存回收,Cleaner

Netty之堆外内存

堆外内存定义: Java.nio.DirectByteBuffer所占用的内存,我们常说的堆外内存溢出就是指Java.nio.DirectByteBuffer所需的内存超过了物理分配的堆外内存。显示设...

【Netty4 简单项目实践】七、上线前准备--内存泄漏监控、系统监控

一、内存泄漏 Netty4的内存泄漏监控默认是没有的,需要手动设置。 它的内存泄漏只是针对Bytebuf,这也暗示着使用Bytebuf能提高系统性能降低GC的影响。 配置很简单,就是设置运行变量...

Dubbo源代码实现四:Dubbo中的扩展点与SPI

SPI的全称是ServiceProviderInterface,即服务提供商接口。直白的说,它主要用来实现一个可扩展的Java应用。有人会觉得这就是建立在面向接口编程下的一种为了使组件可扩展或动态变更...

Tomcat多个域名指向同一个项目

有时候我们需要将多个域名指向同一个项目,那么在tomcat服务器下该如何实现呢? 之前查过有人说在 tomcat安装目录/conf/server.xml 中的server.xml配置文件中配置多个来实...

Tomcat内存溢出的三种情况及解决办法分析

Tomcat内存溢出的原因     在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。     这里根据平时遇到的情况和相关资料进行一个总结。...
  • kkid
  • kkid
  • 2013年10月16日 17:38
  • 416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:netty 内存溢出的情况之一
举报原因:
原因补充:

(最多只允许输入30个字)