Le céleri ne libère pas la mémoire
Il ressemble au céleri ne libère pas la mémoire une fois la tâche terminée. Chaque fois qu'une tâche est terminée, il n'y aurait 5m-10m fuite de mémoire. Donc, avec des milliers de tâches, bientôt, il sera l'utilisation de la mémoire.
BROKER_URL = 'amqp://user@localhost:5672/vhost'
# CELERY_RESULT_BACKEND = 'amqp://user@localhost:5672/vhost'
CELERY_IMPORTS = (
'tasks.tasks',
)
CELERY_IGNORE_RESULT = True
CELERY_DISABLE_RATE_LIMITS = True
# CELERY_ACKS_LATE = True
CELERY_TASK_RESULT_EXPIRES = 3600
# maximum time for a task to execute
CELERYD_TASK_TIME_LIMIT = 600
CELERY_DEFAULT_ROUTING_KEY = "default"
CELERY_DEFAULT_QUEUE = 'default'
CELERY_DEFAULT_EXCHANGE = "default"
CELERY_DEFAULT_EXCHANGE_TYPE = "direct"
# CELERYD_MAX_TASKS_PER_CHILD = 50
CELERY_DISABLE_RATE_LIMITS = True
CELERYD_CONCURRENCY = 2
Peut-être même de la question, mais il n'a pas de réponse:
RabbitMQ/Céleri/Django Fuite De Mémoire?
Je ne suis pas à l'aide de django, et mes paquets sont:
Chameleon==2.11
Fabric==1.6.0
Mako==0.8.0
MarkupSafe==0.15
MySQL-python==1.2.4
Paste==1.7.5.1
PasteDeploy==1.5.0
SQLAlchemy==0.8.1
WebOb==1.2.3
altgraph==0.10.2
amqp==1.0.11
anyjson==0.3.3
argparse==1.2.1
billiard==2.7.3.28
biplist==0.5
celery==3.0.19
chaussette==0.9
distribute==0.6.34
flower==0.5.1
gevent==0.13.8
greenlet==0.4.1
kombu==2.5.10
macholib==1.5.1
objgraph==1.7.2
paramiko==1.10.1
pycrypto==2.6
pyes==0.20.0
pyramid==1.4.1
python-dateutil==2.1
redis==2.7.6
repoze.lru==0.6
requests==1.2.3
six==1.3.0
tornado==3.1
translationstring==1.1
urllib3==1.6
venusian==1.0a8
wsgiref==0.1.2
zope.deprecation==4.0.2
zope.interface==4.0.5
J'ai juste ajouté un test de la tâche, chaîne_test est une grande chaîne, et il a encore de la fuite de mémoire:
@celery.task(ignore_result=True)
def process_crash_xml(test_string, client_ip, request_timestamp):
logger.info("%s %s" % (client_ip, request_timestamp))
test = [test_string] * 5
êtes-vous à l'aide de
si vous utilisez django assurez-DEBUG = False
virtualenv
? avez-vous la liste des paquets/versions que vous utilisez?si vous utilisez django assurez-DEBUG = False
OriginalL'auteur Dechao Qiu | 2013-07-09
Vous devez vous connecter pour publier un commentaire.
C'est cette option de configuration qui fait ma travailleur n'est pas de libérer de la mémoire.
se référer à: https://github.com/celery/celery/issues/1427
OriginalL'auteur Dechao Qiu
Cela a été un problème dans le céleri qui, je pense, est fixe.
Veuillez consulter: https://github.com/celery/celery/issues/2927
OriginalL'auteur A J
Vous pourriez être frapper ce problème dans
librabbitmq
. Veuillez vérifier si oui ou non le Céleri fait à l'aide delibrabbitmq>=1.0.1
.Une solution simple à faire est d'essayer:
pip install librabbitmq>=1.0.1
.OriginalL'auteur dnozay
ensemble worker_max_tasks_per_child dans vos paramètres
OriginalL'auteur gizzmole