Mil*_*lad 5 database statistics memory-leaks rabbitmq
我目前正在生产中在 Ubuntu(16.04) 上使用 RabbitMQ (3.6.2-1)。生产者发布消息,消费者消费消息,一切正常,但有时 RabbitMQ 不释放内存,它触及最大内存,生产者无法将消息发布到空队列中,所以我必须重新启动服务。
是bug还是别的什么?
更新 :
它来自管理插件,因此您可以通过以下解决方案之一解决此问题:
1.更新你的RabbitMQ版本(3.6.15稳定)
2.定期重启统计数据库(每小时在crontab中)https://www.rabbitmq.com/management.html#stats-db
3.在你的rabbitmq.config文件中将rates_mode设置为none(这不是一个好主意,因为在这种情况下你看不到消息速率)
您应该检查队列中的消息数量。
默认情况下,RabbitMQ 使内存中的消息保持快速。
如果您必须处理大量消息,您可以使用惰性队列: https://www.rabbitmq.com/lazy-queues.html 使用惰性队列,您可以处理数百万条消息,而不会影响太多节点内存。
或者它可能是管理内存问题,请参阅: http ://rabbitmq.com/management.html#stats-db 在你的canse中你可以运行:
rabbitmqctl eval 'supervisor2:terminate_child(rabbit_mgmt_sup_sup, rabbit_mgmt_sup), rabbit_mgmt_sup_sup:start_child().'
重置统计数据并释放内存。您可以定期调用它
笔记:
有不同的方法来重置统计信息,这取决于rabbitmq版本,这里是所有细节