Amazon ec2 ecs docker容器中芹菜工人的奇怪行为
我们有许多Amazon ec2 ecs docker容器中芹菜工人的奇怪行为,amazon-ec2,docker,celery,amazon-ecs,Amazon Ec2,Docker,Celery,Amazon Ecs,我们有许多c4.大型ecs实例,每个实例都有一个运行的docker容器,其中包含运行的芹菜工人。我们时不时地看到工人被制度杀害 WorkerLostError('Worker exited prematurely: signal 9 (SIGKILL).',) 在dmesg中,我可以看到以下行: Memory cgroup out of memory: Kill process 27886 (celery) score 112 or sacrifice child 据我所知,OOM对此负责
c4.大型
ecs实例,每个实例都有一个运行的docker容器,其中包含运行的芹菜工人。我们时不时地看到工人被制度杀害
WorkerLostError('Worker exited prematurely: signal 9 (SIGKILL).',)
在dmesg
中,我可以看到以下行:
Memory cgroup out of memory: Kill process 27886 (celery) score 112 or sacrifice child
据我所知,OOM对此负责
但我也可以在dmesg
中看到这一行:
memory: usage 964544kB, limit 1048576kB, failcnt 246284
这说明1GB有一个限制,但我不明白这个限制的原因是什么,因为free-m
说
total used free shared buffers cached
Mem: 3768 3461 307 0 140 2211
-/+ buffers/cache: 1108 2659
Swap: 0 0 0
另一个重要的一点是,我们有一个普通的ec2c4.large
实例,其中芹菜与相同数量的工人(甚至更多)一起运行,但没有docker,我们从未在这个实例中看到这个问题。所以我猜可能是一些docker开销消耗了内存,但也许我错过了什么
感谢
免费
显示内存总量和容器可用内存,所以您会看到令人困惑的数字
可以通过命令行为docker容器指定cgroup限制,如果是amazon,则可以通过任务定义指定cgroup限制。检查内存