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

开发避坑指南(24):RocketMQ磁盘空间告急异常处理,CODE 14 “service not available“解决方案

异常信息

Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 14  
DESC: service not available now, maybe disk full, CL:  0.94 CQ:  0.94 INDEX:  0.94, maybe your broker machine memory too small.

异常背景

一个项目里面用到了rocketmq,往rocketmq里面发送数据的时候报错。

异常分析

该异常表明 RocketMQ Broker 服务不可用,主要与磁盘空间和内存资源相关。从异常信息里面看,mq服务不可用了,报错的可能原因是磁盘满了或者内存不足。

报错中的 CL: 0.94 CQ: 0.94 INDEX: 0.94 表示 CommitLog、ConsumeQueue 和索引文件的磁盘使用率已达94%。

CommitLog是消息的物理存储核心组件,所有消息按顺序追加写入CommitLog文件持久化(固定大小,通常1GB)。

ConsumeQueue 是逻辑消费队列,按Topic和队列维度构建索引文件,存储指向CommitLog的指针(含消息物理偏移量、大小等)。

解决办法

临时方法1:

清理磁盘空间,给RocketMQ 腾出足够的磁盘空间,博主这里就是因为C盘的空间满了。删除RocketMQ安装目录/logs/下的历史日志文件和清理RocketMQ安装目录/store/中已消费的消息文件,清理这两个大文件后释放了很多空间。

临时方法2:

修改 runbroker.cmd文件,文件最后增加一行:

JAVA_OPT="$JAVA_OPT -Drocketmq.broker.diskSpaceWarningLevelRatio=0.99"

放宽磁盘警戒比例至99%,重启RocketMQ服务。

长期优化方案1:

以windows环境为例,根据机器配置修改JVM参数,修改 runbroker.cmd文件(注意不是runserver.cmd),文件最后增加一行(示例为8GB内存机器):

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx2g -Xmn512m -XX:MetaspaceSize=128m"

内存分配比例‌

-Xms1g -Xmx2g:堆内存初始1GB,最大2GB(占总内存25%)
-Xmn512m:新生代设为堆内存的25%-50%(推荐512MB)

这个比例并不是固定不变的,根据实际情况进行调优。

长期优化方案2:

日志路径分离,将日志文件存储到独立磁盘中。

http://www.lryc.cn/news/619660.html

相关文章:

  • 设计原则之【抽象层次一致性(SLAP)】,方法也分三六九等
  • 从零到一:TCP 回声服务器与客户端的完整实现与原理详解
  • Linux LNMP配置全流程
  • 机器学习之词向量转换
  • 第5章 学习的机制
  • 对比学习中核心损失函数的发展脉络
  • AI服务器需求激增,三星内存与SSD供不应求,HBM与DDR5成关键驱动力
  • 2025年高效能工程项目管理软件推荐榜单:AI重构工程进度可视化与资源动态调度体系
  • kernel pwn 入门(四) ret2dir详细
  • 《嵌入式Linux应用编程():Linux Framebuffer图形编程》
  • Win11和Mac设置环境变量
  • 机器学习阶段性总结:对深度学习本质的回顾 20250813
  • Html5-canvas动态渐变背景
  • mac 安卓模拟器 blueStacks
  • MacOS字体看起来比在 Windows 上更好?
  • 367. 有效的完全平方数
  • Spring Boot + MyBatis
  • Python 元类基础:从理解到应用的深度解析
  • [CSCCTF 2019 Qual]FlaskLight
  • [AI React Web] 包与依赖管理 | `axios`库 | `framer-motion`库
  • Spring cloud集成ElastictJob分布式定时任务完整攻略(含snakeyaml报错处理方法)
  • 使用TexLive与VScode排版论文
  • 从0开始配置conda环境并在PyCharm中使用
  • Node.js浏览器引擎+Python大脑的智能爬虫系统
  • 低成本扩展方案:S7-200SMART作为S7-1500分布式IO从站的上位机配置指南
  • Linux网络性能调优终极指南:深度解析与实践
  • 初识c语言————排序方法
  • 【新手入门】Android Studio 项目结构拆解,快速理解文件作用!
  • 【Linux】常用命令(三)
  • 数据结构:用数组实现队列(Implementing Queue Using Array)