我在 centos 服务器上使用 Celery 已有 10 个月了。
(10个月没有内存,CPU IO等问题。
服务器环境
- CentOS 7.3>> 2 台服务器 (VM(
- 芹菜 4 与 8 并发
- 兔子MQ 3.6.10/erlang R16B03-1
- 蟒蛇3 - 烧瓶
- CELERYD_PREFETCH_MULTIFLIER//不使用它。(默认值(
- @celery.任务选项:acks_late=假,ignore_result=真
我的服务环境
- 服务位于两台服务器上。
- 一般来说,一旦芹菜工人开始运行,就需要将近 16 个小时的时间。
- 一条消息大约需要 2 秒,8 个并发>在两台服务器上总共需要大约 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( 如果我的应用程序设置错误,问题应该同时发生在两台服务器上。不是吗?(但是当我重新启动芹菜时,内存被释放了...所以这似乎是芹菜的问题...
很难找到原因;~( 你有什么提示吗?
这是芹菜 4.2 和 rabbitmq 的问题。它已被添加到问题 #4843 的芹菜 4.3 版本的里程碑中。
在新芹菜版本发布之前,解决方案之一是切换到 redis。或者将芹菜版本降级到 3.1.25,工作正常。