我有一个由三个RabbitMQ节点组成的集群,我想知道为什么我的集群在几天后就用完了内存。当我启动集群时,使用的内存大约是400MB,但每天内存都在增加,即使流量和队列数量几乎相同。这是重新启动2天后的屏幕截图:
以下是详细信息:
您能否解释一下什么是仲裁队列表,以及为什么它们的大小每天都在增长?几天后,RabbitMQ达到了高水印,所以它停止接受连接。我已经尝试将水印增加到1. 3GB,但唯一不同的是,问题发生在更多天后。这是节点达到水位线时的内存详细信息:
谢谢你的帮助
2izufjch1#
当您达到水位线时:
仲裁队列不是您的问题。但是,当您达到水位线时,您将拥有大量的预分配内存。从关于内存使用的推理-预分配内存当节点报告在长时间运行的节点上有大量已分配但未使用的内存时,这可能是运行时内存碎片的指示器。您需要将设置更改为与您的情况相匹配的设置:一组不同的分配器设置可以减少碎片并提高有效使用内存的百分比。正确的设置集取决于工作负荷和邮件负载大小分布。
1条答案
按热度按时间2izufjch1#
当您达到水位线时:
仲裁队列不是您的问题。
但是,当您达到水位线时,您将拥有大量的预分配内存。
从关于内存使用的推理-预分配内存
当节点报告在长时间运行的节点上有大量已分配但未使用的内存时,这可能是运行时内存碎片的指示器。
您需要将设置更改为与您的情况相匹配的设置:
一组不同的分配器设置可以减少碎片并提高有效使用内存的百分比。正确的设置集取决于工作负荷和邮件负载大小分布。