Rabbitmq高水印设置问题

时间:2015-01-13 12:59:04

标签: rabbitmq

这是我在rabbitmq消息经纪人中获得的内容

= INFO REPORT ==== 2015年1月13日:: 12:40:24 === vm_memory_high_watermark设置。使用的内存:478063864允许:415868518

=警告报告==== 2015年1月13日:: 12:40:24 === 节点上设置的内存资源限制警报' rabbit @ matchpointgps-141110'。


*发布商将被阻止,直到此警报清除*


这在我们的服务器上发生了两次。 我仍然无法为此获得正确的解决方案。

3 个答案:

答案 0 :(得分:1)

当队列长度非常高时,我们遇到了类似的问题,它试图将消息写入磁盘但却无法快速完成。在我们的测试中,当我们使用SSD驱动器时,我们没有遇到这个问题。

对我们来说,最简单的解决方案是通过在消息上设置durable = true来立即将消息写入磁盘。这也是一个好主意,因为如果兔子重新开始,队列中的数据就不会丢失。

答案 1 :(得分:0)

看一下关于RabbitMQ队列如何使用内存的博文:http://www.rabbitmq.com/blog/2011/10/27/performance-of-queues-when-less-is-more/

TL; DR尽量让你的队列尽可能为空

答案 2 :(得分:0)

最后,为rabbitmq队列找到了一些更好的配置。

我在celery配置中添加了以下行,因为它为每个任务创建了一个额外的队列。

CELERY_IGNORE_RESULT = True

还为我的任务创建了单独的队列。 这样可以保持内存空闲并准备好承担更重,更长的任务

更多信息 https://denibertovic.com/posts/celery-best-practices/