【问题标题】:AWS ECS Task Out of Memory - Cloudwatch AlarmAWS ECS 任务内存不足 - Cloudwatch 警报
【发布时间】:2021-08-03 01:49:25
【问题描述】:

我有一个 ECS 服务,它使用多个任务来执行日常工作。每个任务使用的内存取决于它处理的数据。我的所有任务都设置为 16GB 内存,但有些任务因以下错误“OutOfMemory”而停止。

很遗憾,我无法分解每个任务处理的数据,因为必须一起处理这些数据才能产生我想要的见解。

我知道如何为 RAM 和 CPU 的 ECS 服务设置警报。但是服务的 RAM 和 CPU 是指所有任务的 CPU 和 RAM 的平均值。

如何设置警报以便在任务内存不足时触发? 有没有建议的方法来避免遇到 OutOfMemory 错误?

【问题讨论】:

    标签: amazon-web-services docker amazon-ecs amazon-cloudwatch cloudwatch-alarms


    【解决方案1】:

    我相信您必须启用 ECS CloudWatch Container Insights 才能获得每个任务和每个容器的内存使用情况。完成此操作后,您将开始在 CloudWatch 中查看任务内存使用情况(以及其他内容)指标,您可以为其创建警报。

    请注意,启用 Container Insights 会产生额外成本。


    是否有不遇到 OutOfMemory 错误的建议方法?

    从基础架构的角度来看,您所能做的就是开始为您的任务配置更多 RAM。

    从应用程序的角度来看,您可以分析您的应用程序是否存在内存泄漏,并检查您的应用程序在内存中创建的数据结构以寻找可能的机会,例如减少内存中的重复数据,或将部分数据移动到磁盘或分布式缓存。这种内存优化工作是非常特定于应用程序的。

    【讨论】:

      猜你喜欢
      • 2019-07-30
      • 2018-11-19
      • 2021-05-25
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      相关资源
      最近更新 更多