我使用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)
问题是,即使队列中没有任务,也没有活动任务,内存也不会被释放
任何想法都可能有所帮助!
答案 0 :(得分:1)
通常,Unix进程在不再需要它时,不会系统地将操作系统从它获取的内存返回给操作系统。因此,随着时间的推移,进程的内存使用量将会增加。
如果您对影响您的员工的实际编码或配置问题感到满意,您可以定期重新启动它们。
答案 1 :(得分:0)
您的芹菜设置需要CELERYD_MAX_TASKS_PER_CHILD,请参阅: http://docs.celeryproject.org/en/3.1/configuration.html#celeryd-max-tasks-per-child