当前位置: 首页 > news >正文

记一次内存泄漏

项目在运行过程中,平均隔两天内存就满,导致服务崩溃。用jconsole对内存进行监测,发现内存在不停地长,然后用MAT分析详细堆栈信息,定位到内存泄漏的代码。

报错信息:

ERROR|nioEventLoopGroup...|LEAK:ByteBuf.release() was not called before  its garbage-collected

Recent access records:

Create at:

io.netty.buffer.AbstractByteBufAllocator.compositeHeapBuffer(AbstractByteBufAllocator.java:xxx)

io.netty.buffer.AbstractByteBufAllocator.compositeHeapBuffer(AbstractByteBufAllocator.java:xxx)

io.netty.buffer.AbstractByteBufAllocator.compositeBuffer(AbstractByteBufAllocator.java:xxx)

 ...

原因:异步线程里边Netty的webSocket连接部分没有释放

解决办法:在websocket里边捕获异常、writeAndFlush时将TextWebSocketFrame.release()一下

相关文章:

  • 如何在 .NET 环境中使用 Npgsql 驱动连接 KaiwuDB
  • 深入探究 TCP 与 UDP 协议:原理、特性及应用
  • java CountDownLatch用法简介
  • 华为纯血 卓易通 使用记录
  • 【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(二)
  • Yakit的免配置浏览器不是内置浏览器
  • 【MySQL】前缀索引、索引下推、访问方法,自适应哈希索引
  • API平台(API网关)的API安全保障机制
  • 在云服务器的 Linux 系统中安装 Python 的步骤(以常见发行版 Ubuntu/CentOS 为例)
  • Linux的应用领域,Linux的介绍,VirtualBox和Ubuntu的安装,VMware的安装和打开虚拟机CentOS
  • 李宏毅NLP-4-语音识别part3-CTC
  • C 语言结构体中的函数指针与 Kotlin 高阶函数的对比
  • 语音合成(TTS)从零搭建一个完整的TTS系统-第一节-效果演示
  • AIGC-十款知识付费类智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)
  • 《MAmmoTH2: Scaling Instructions from the Web》全文翻译
  • 智慧城市像一张无形大网,如何紧密连接你我他?
  • HOJ PZ
  • 【玩转全栈】—— Django+vue3+讯飞星火API 实现前端页面实时AI答复
  • Mac屏幕共享怎么使用?
  • 【MAUI】IOS保活
  • 做网站贵不贵/seo哪家公司好
  • 非经营性网站个人可以备案吗/seo快速排名软件网站
  • 泰安网站开发哪家便宜/免费发广告的平台有哪些
  • 网站的优化是什么意思/shopify seo
  • 潍坊网站开发招生信息/学计算机哪个培训机构好
  • 网站如何设置默认首页/win10优化软件