celery rabbitmq内存异常排查过程及内存组成解析

现象

celery 在用rabbitmq集群当broker的时候,经常会出现rabbitmq某个节点内存爆满的问题。要知道,一旦rabbitmq节点内存爆满,触发内存报警,rabbitmq会自动堵塞所有连接,直到内存降下去。
按理说这样的策略也说的过去,毕竟不能内存满了还接收消息,但我的rabbitmq满了之后很难降下去(我的内存报警阈值是3G, 3G…),导致celery明明连接上了,就因为被堵塞,导致celery以为自己连接上了broker,其实并没有,所以一直报IOError,连接异常关闭。

问题追踪

修改celery?

一开始我以为是celery设置的问题,毕竟从rabbitmq管理界面来看,绝大部分都是celeryev开头的,celeryev是什么东西呢?
官方解释是这样的:celeryev is a simple curses monitor displaying task and worker history. You can inspect the result and traceback of tasks, and it also supports some management commands like rate limiting and shutting down workers.
意思是celeryev可以监控任务状态和执行结果,还支持其他的一些管理操作,类似flower.
celeryev开头的队列是celery自己创建的,为了发送事件方便监控捕捉。OK, 创建队列没有问题,毕竟我们也需要监控,但问题是这些队列怎么不会自行删除呢,应该有存活时间的设置才对。于是在cel

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值