我一直在生产芹菜+兔子+ 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。
我不知道如何调试这个。对于新消息等,似乎没有任何可疑的事情发生。有没有人在此之前遇到过这种情况?有任何想法吗?我应该关注哪些其他信息?
答案 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