Amazon EC2-ECS Docker容器中芹菜工人的奇怪行为

前端之家收集整理的这篇文章主要介绍了Amazon EC2-ECS Docker容器中芹菜工人的奇怪行为 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们有许多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开销消耗了内存,但也许我错过了一些事情?

谢谢

最佳答案
free显示总的内存量regardless of cgroup limits和容器可用的内存,因此您会看到混乱的数字.

可以通过命令行为docker容器指定cgroup限制,或者通过任务定义为亚马逊指定cgroup限制.检查内存parameter.

原文链接:https://www.f2er.com/docker/532593.html

猜你在找的Docker相关文章