【发布时间】:2011-03-28 18:22:04
【问题描述】:
我已经愉快地在生产中运行了 celery+rabbitmq+django 一个月左右。昨天,我决定从 celery 2.1.4 升级到 2.2.4,现在 rabbitmq 正在失控。运行一段时间后,我的节点不再被 evcam 识别,并且 beam.smp 的内存消耗开始增加......慢慢地(100+%的 CPU 使用率)。
我可以运行rabbitmqctl list_connections 并查看没有任何异常(只有我的一个测试节点)。我可以在rabbitmqctl list_queues -p <VHOST> 中看到除了来自我的测试节点的心跳之外没有任何消息。如果我让进程继续运行几个小时,它就会使机器最大化。
我尝试使用camqadm 清除各种队列,但无济于事,stop_app 只是挂起。我发现“修复”它的唯一方法是kill -9beam.smp(以及所有相关进程)和我的rabbitmq服务器上的force_reset。
我不知道如何进行调试。就新消息等而言,似乎没有任何可疑之处。以前有人反对过吗?有任何想法吗?我还应该查看哪些其他信息?
【问题讨论】:
-
你也升级了rabbitmq吗?我在 2.2.x 中也有类似的症状,所以我们降级到 RabbitMQ 2.1.1 并且没有任何问题。
-
我降级到 2.1.1,问题就消失了。知道为什么吗?
-
出现症状时您运行的是什么版本?
-
我用 rabbitmq 2.2.0 运行 celery 2.2.4。我一直在使用 celery 2.1.4 和相同版本的兔子,没有任何问题。