我在centos服务器上使用Celery已有10个月了。
(10个月内没有出现内存,CPU io等问题。)
服务器环境
- CentOS 7.3 >> 2个服务器(VM)
- 具有8个并发功能的芹菜4
- RabbitMQ 3.6.10 / erlang R16B03-1
- python3-烧瓶
- CELERYD_PREFETCH_MULTIFLIER //不使用它。 (默认值)
- @ celery.tasks选项:acks_late = False,ignore_result = True
我的服务环境
- 服务在两台服务器上。
- 通常,芹菜工人开始跑步后,需要花费将近16个小时的时间。
- 在8个并发状态下,一条消息大约需要2秒,而在两台服务器上总共大约需要16个小时。
- 芹菜运行稳定。
但是有问题。
前天,记忆在此刻迅速增加。 (仅服务器A)
我不在乎,因为芹菜运行时间太短。
最后,服务器内存迅速增加。 (仅服务器B)
服务器B的实际内存状态(服务16小时及之后)。
10:00 am // 10%
11:00 am // 23% , service is running. normal status
14:30 pm // 25% , memory increasing start
16:00 pm // 91%
17:30 pm // 89% , add memory on server B (VM)
04:00 am // 90% , celery job is done. but not still released.
09:00 am // 10% , forcibly restart celery
一些奇怪的东西
1)我不需要更改应用程序或任何配置,也不需要更改服务器。
2)如果我的应用程序设置错误,则该问题应该在两台服务器上同时出现。是不是(但是当我重新启动芹菜时,内存被释放...所以看来芹菜有问题...)
很难找到原因;〜( 你有什么提示吗?
答案 0 :(得分:0)
这是celery 4.2和rabbitmq的问题。它已通过milestone of celery 4.3添加到issue #4843版本中。
直到发布新的celery版本,解决方案之一就是切换到redis。否则将芹菜版本降级为3.1.25,可以正常工作。