任务完成后,芹菜工人不释放记忆

时间:2016-08-17 09:35:16

标签: python linux celery

我使用redis作为经纪人在centos 6.5机器上运行芹菜,具有以下配置:

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)

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

任何想法都可能有所帮助!

2 个答案:

答案 0 :(得分:1)

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

如果您对影响您的员工的实际编码或配置问题感到满意,您可以定期重新启动它们。

答案 1 :(得分:0)

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