【问题标题】:Strange behavior of celery workers in ecs docker containerecs docker容器中芹菜工人的奇怪行为
【发布时间】: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


    【解决方案1】:

    free 显示内存总量regardless of cgroup limits 和容器可用的内存,因此您看到的数字令人困惑。

    可以通过命令行为 docker 容器指定 cgroup 限制,或者在亚马逊的情况下通过任务定义。检查memoryparameter

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 2014-08-17
      • 2021-10-24
      • 2023-01-26
      • 2018-04-05
      相关资源
      最近更新 更多