在任务完成后,Celery worker不释放内存



我在centos 6.5机器上使用redis作为代理运行芹菜,配置如下:

app.conf.update(
    CELERY_ENABLE_UTC=True,
    CELERY_SEND_TASK_SENT_EVENT=True,
    CELERY_ACCEPT_CONTENT=['msgpack', 'json', 'application/x-python-serialize'],
    CELERY_TASK_SERIALIZER='msgpack',
    CELERY_RESULT_SERIALIZER='msgpack',
    CELERYD_PREFETCH_MULTIPLIER=1)

问题是,即使队列中没有任务,也没有活动任务,内存也不会被释放

任何想法可能会有帮助!

通常,当Unix进程不再需要内存时,它们不会系统地将从操作系统获得的内存返回给操作系统。因此,随着时间的推移,进程的内存使用将会增加。

如果您满意没有实际的编码或配置问题影响您的工作程序,您可以定期重新启动它们。

您需要CELERYD_MAX_TASKS_PER_CHILD为您的芹菜设置,请参见:http://docs.celeryproject.org/en/3.1/configuration.html celeryd-max-tasks-per-child

相关内容

  • 没有找到相关文章

最新更新