下面是 ECS 集群中我的一项服务的内存利用率图表。
正如您所看到的,内存短暂地飙升至 25%。
在这个集群中,我有 3 台t2.medium
机器。规格说明说这些机器有 4GiB RAM。
我目前的问题:
我在 aws ecs 任务中运行 ImageMagicconvert
作业,该进程因转换大文件而被终止(退出状态 137)。但是在我的本地 PC 上,相同的作业可以毫无问题地运行。
我的 aws ecs 任务定义为具有 1792MiB 的硬软件限制。(这是在 上运行至少两个任务的神奇数字t2.medium
)
我的问题是:
1) 如何理解图表?百分比的除数是多少?所有 ec2 实例的总内存是多少?不确定如何理解图表。
2)如何让内存使用更加灵活?大多数时候我convert
不需要消耗大量的RAM。我希望容器可以共享未使用的内存。
答案1
这是因为我在任务定义中使用了硬限制。它对容器可以使用的 RAM 设置了上限,因此导致convert
失败。相反,我应该使用软限制并将其设置为较低的 RAM 使用率。它将允许容器使用 ec2 实例可以提供的尽可能多的 RAM。