首页 > 解决方案 > ActiveMQ 代理存储使用情况

问题描述

我有 3 个 ActiveMQ 代理,在这三个代理中,一个代理遇到了一个问题,即持久存储已满。

示例错误:

信息 | Usage(default:store:queue://foo.bar:store) percentUsage=99%, usage=537210471, limit=536870912, percentUsageMinDelta=1%;Parent:Usage(default:store) percentUsage=100%, usage=537210471 , limit=536870912,percentUsageMinDelta=1%: Persistent store is Full, 100% of 536870912. 停止生产者 (ID: AKUNTAMU-1-31754-1388571228628-1:1:1:1) 以防止泛滥 queue://foo。酒吧。有关更多信息,请参阅http://activemq.apache.org/producer-flow-control.html(阻止:155s)

我已将我的 storeUsage 限制配置为 100GB 用于持久消息,但是当我去检查 kahadb 的磁盘使用情况时,它超过了 100GB(它是 190Gb)。我的理解是 kahadb 文件夹包含持久消息和日志日志文件。

问题:1)我们可以查询 kahadb 以查看哪个队列正在占用空间吗?2)在kahadb文件夹内,我们如何隔离消息和其他数据库相关文件占用的空间。因为一切都是 data*.log 文件。3) 对于其他 2 个代理,在 activemq Web 控制台上,使用的存储限制显示为 0%,对此部分感到困惑。那么我如何验证其他两个经纪人的实际百分比是否为零?

提前致谢。

标签: activemq

解决方案


每当我们配置 ActiveMQ 时,我们都会提供关于 MQ 应该使用多少磁盘空间的设置,

设置有 3 个参数

  • 内存使用情况
  • 商店使用情况
  • 温度使用

其中 TempUsage 是 MQ 可以用来存储非持久消息的最大内存,您很可能应该将此值设置为50GB(即 536870912 字节)。看看这个关于如何找到这个值的答案 https://stackoverflow.com/a/27549226/2551236

我还没有看到这个限制被打破,队列中没有消费者或一些缓慢的消费者吗?如果您想增加限制,可以通过任何方式调整您的 activemq.xml 文件,如上述答案中所述。

希望这可以帮助!

祝你好运!


推荐阅读