当前位置: 首页 > 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()一下

http://www.dtcms.com/a/135794.html

相关文章:

  • 如何在 .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保活
  • 【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(二)
  • windows下使用nginx + waitress 部署django
  • ERROR: Unknown host CPU architecture: arm64
  • 使用HTML + CSS + JS,编写一个台球追分计分器
  • Qemu-STM32(十五):STM32F103加入Flash控制器
  • 深度学习与 Flask 应用常见问题解析
  • 用微信小程序制作一个性行为同意协议系统
  • 云数据库:核心分类、技术优势与创新、应用场景、挑战应对和前沿趋势
  • 小程序返回按钮,兼容所有机型的高度办法
  • 使用KeilAssistant代替keil的UI界面