最近在使用celery这个异步框架,在使用的过程中,发现worker运行一段时间后,内存持续上涨,然后告警 在网上查询之后发现了Celery有内存泄漏的问题,requests包也会有内存泄漏的问题 在网上查到的解决方法是

  • 在worker执行指定次数任务后重建新进程

    1
    2
    
    # 执行32次后被干掉
    worker_max_tasks_per_child  = 32
    
  • 在worker内存到达指定限制后重建新进程

    1
    2
    
    # 内存使用量达到 12m 后被干掉
    worker_max_memory_per_child  = 12000 # 12m