Mat*_*mer 12 django amqp rabbitmq celery django-celery
我最近接手了我公司正在研究的项目的另一部分,并发现了我们的RabbitMQ/Celery设置中的内存泄漏.
我们的系统具有2Gb内存,在任何给定时间大约1.8Gb.我们有多个任务可以处理大量数据并将它们添加到我们的数据库中.
当这些任务运行时,它们消耗了相当大的内存,使我们的可用内存迅速下降到16Mb到300Mb之间.问题是,在这些任务完成后,内存不会回来.
我们正在使用:
我们的服务器正在运行Debian 6.0.4.
我是这个设置的新手,所以如果你需要的任何其他信息可以帮助我确定这个问题的来源,请告诉我.
所有任务都有返回值,所有任务都有ignore_result = True,CELERY_IGNORE_RESULT设置为True.
非常感谢您的宝贵时间.
我当前的配置文件是:
CELERY_TASK_RESULT_EXPIRES = 30
CELERY_MAX_CACHED_RESULTS = 1
CELERY_RESULT_BACKEND = False
CELERY_IGNORE_RESULT = True
BROKER_HOST = 'localhost'
BROKER_PORT = 5672
BROKER_USER = c.celery.u
BROKER_PASSWORD = c.celery.p
BROKER_VHOST = c.celery.vhost
Run Code Online (Sandbox Code Playgroud)
我几乎可以肯定您正在使用 DEBUG=True 运行此设置,这会导致内存泄漏。
检查这篇文章:禁用 Celery 的 Django 调试。
我会发布我的配置,以防有帮助。
djcelery.setup_loader()
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_VHOST = "rabbit"
BROKER_USER = "YYYYYY"
BROKER_PASSWORD = "XXXXXXX"
CELERY_IGNORE_RESULT = True
CELERY_DISABLE_RATE_LIMITS = True
CELERY_ACKS_LATE = True
CELERYD_PREFETCH_MULTIPLIER = 1
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
CELERY_ROUTES = ('FILE_WITH_ROUTES',)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4959 次 |
最近记录: |