rabbitmq +芹菜内存泄漏?

时间:2011-03-28 18:22:05

标签: django rabbitmq celery

我一直在生产芹菜+兔子+ django一个月左右。昨天,我决定从芹菜2.1.4升级到2.2.4,现在rabbitmq正在失去控制。运行一段时间后,我的节点不再被evcam识别,并且beam.smp的内存消耗开始增加......缓慢(100 +%CPU使用率)。

我可以运行rabbitmqctl list_connections并看到没有什么异常(只是我的一个测试节点)。我可以在rabbitmqctl list_queues -p <VHOST>中看到除了测试节点的心跳之外没有其他消息。如果我让这个过程持续运行几个小时,它会使机器最大化。

我尝试使用camqadm清除各种队列但无效,stop_app只是挂起。我找到“修复”它的唯一方法是{rabbit}我的rabbitmq服务器上kill -9 beam.smp(以及所有相关进程)和force_reset。

我不知道如何调试这个。对于新消息等,似乎没有任何可疑的事情发生。有没有人在此之前遇到过这种情况?有任何想法吗?我应该关注哪些其他信息?

2 个答案:

答案 0 :(得分:4)

芹菜开发者3个月前告诉我,2.1.1之后的RabbitMQ版本受到内存泄漏的影响,cpu峰值。 我还在使用2.1.1版,我没有遇到这个问题

http://www.rabbitmq.com/releases/rabbitmq-server/v2.1.1/

也是如此,芹菜2.2.4版本引入了一些内存问题,但如果你更新到芹菜2.2.5,大部分内容都会得到解决。

http://docs.celeryproject.org/en/v2.2.5/changelog.html#fixes

我希望这可以帮助

答案 1 :(得分:1)

可能没有帮助,但我们最近追踪了Java虚拟机中与用于监控垃圾收集的扩展相关的内存泄漏。可能是您的心跳监视器正在触发这些方法,这会导致本机内存泄漏。

此处描述了此问题:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7066129