ecsdocker集装箱中芹菜工人的奇怪行为

我们有一些c4.large ecs实例,每个实例都有一个正在运行的c4.large容器,运行芹菜工作者。 我们不时看到工人被系统所杀

 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 

其中说1 GB有一个限制,但我不明白这个限制的原因是什么,因为free -m

  total used free shared buffers cached Mem: 3768 3461 307 0 140 2211 -/+ buffers/cache: 1108 2659 Swap: 0 0 0 

另外一个重要的问题是,我们有一个普通的ec2 c4.large实例,在c4.large实例中,我们用相同数量的worker(甚至更多)运行芹菜,但没有docker,我们从来没有在这个实例中看到过这个问题。 所以我想这可能是一些消耗内存的docker开销,但也许我错过了什么?

谢谢

free显示内存的总量, 不pipecgroup限制和内存可用的内存,所以你看到混乱的数字。

可以通过命令行为Docker容器指定cgroup限制,或者通过任务定义指定amazon。 检查memory 参数 。