Rabbitmq msg_store_transient 队列正在消耗所有磁盘空间

问题描述

erlang 版本 = 1:24.0.2-1

rabbitmq-server 版本 = 3.8.16-1

最近在 Ubuntu20 上安装了最新的 rabbitmq。 我确认一切正常,消费者正在根据需要使用消息队列中的通知

大约一天后,rabbbitmq 崩溃了,因为剩余的磁盘空间为 0。

经过分析发现msg_store_transient消耗了10G左右,重启rabbitmq即可解决问题。 但一天后,它又发生了。

有人可以进一步帮助我吗?

解决方法

很可能您正在消费消息而不发回 basic_ack,例如参见 here ch.basic_ack

做什么:

  • 检查未确认的消息,请参阅:enter image description here
  • 检查您是否使用了太多非持久性消息
  • 检查您是否使用了太多非持久队列
,

问题已解决:

  1. 我们收到了大量就绪消息,因为 rdq 文件占用了大量空间
  2. 代码中存在一个错误,即只侦听一个队列而不是全部。