【发布时间】:2016-02-04 21:26:16
【问题描述】:
我们有许多 c4.large ecs 实例,每个实例都有一个正在运行的 docker 容器和正在运行的 celery worker。我们不时看到工人被系统杀死
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 实例,其中我们有相同数量(甚至更多)的 celery 运行,但没有 docker,我们从未在这个实例上看到过这个问题。所以我想这可能是一些消耗内存的 docker 开销,但也许我错过了什么?
谢谢
【问题讨论】:
标签: amazon-ec2 docker celery amazon-ecs