芹菜内存意外泄漏

时间:2018-08-24 02:00:42

标签: python rabbitmq celery

我在centos服务器上使用Celery已有10个月了。
(10个月内没有出现内存,CPU io等问题。)

  
      
  • 服务器环境

         
        
    • CentOS 7.3 >> 2个服务器(VM)
    •   
    • 具有8个并发功能的芹菜4
    •   
    • RabbitMQ 3.6.10 / erlang R16B03-1
    •   
    • python3-烧瓶      
          
            
      • CELERYD_PREFETCH_MULTIFLIER //不使用它。 (默认值)
      •     
      • @ celery.tasks选项:acks_late = False,ignore_result = True
      •     
        
    •   
  •   
  • 我的服务环境

         
        
    • 服务在两台服务器上。
    •   
    • 通常,芹菜工人开始跑步后,需要花费将近16个小时的时间。
    •   
    • 在8个并发状态下,一条消息大约需要2秒,而在两台服务器上总共大约需要16个小时。
    •   
    • 芹菜运行稳定。
    •   
  •   

但是有问题。

前天,记忆在此刻迅速增加。 (仅服务器A)
我不在乎,因为芹菜运行时间太短。

最后,服务器内存迅速增加。 (仅服务器B)

服务器B的实际内存状态(服务16小时及之后)。

10:00 am // 10%
11:00 am // 23% , service is running. normal status
14:30 pm // 25% , memory increasing start
16:00 pm // 91%
17:30 pm // 89% , add memory on server B (VM) 
04:00 am // 90% , celery job is done. but not still released.
09:00 am // 10% , forcibly restart celery

一些奇怪的东西

1)我不需要更改应用程序或任何配置,也不需要更改服务器。

2)如果我的应用程序设置错误,则该问题应该在两台服务器上同时出现。是不是(但是当我重新启动芹菜时,内存被释放...所以看来芹菜有问题...)

很难找到原因;〜( 你有什么提示吗?

1 个答案:

答案 0 :(得分:0)

这是celery 4.2和rabbitmq的问题。它已通过milestone of celery 4.3添加到issue #4843版本中。

直到发布新的celery版本,解决方案之一就是切换到redis。否则将芹菜版本降级为3.1.25,可以正常工作。

相关问题