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
参数 。
- 如果使用“不重新启动”选项,Amazon EC2图像创build会中断docker文件夹
- 运行mupx部署时引发新的NodeJS错误
- 如何使用awslog驱动程序从泊坞窗容器中获取日志?
- docker工人 – 无法从外部访问docker端口
- 拉动AWS EC2容器导致“image no found”
- AWS Mesosphere:docker守护进程的参数
- docker-machine AWS无法创build机器错误检查和/或重新生成证书
- 我可以安排Docker在Amazon ECS的特定时间运行吗?
- <CoreOS,cloud-config>如何在Docker Private Registry准备好之前等待?