【问题标题】:EC2 instance: Cannot allocate memoryEC2 实例:无法分配内存
【发布时间】:2018-08-14 17:15:38
【问题描述】:

我有一个 EC2 实例,它托管一个 Elastic Beanstalk 环境(Linux 和 Python),配置如下:

  • 实例类型:c5.2xlarge

  • 根卷大小:1000 GiB

在我的 python 文件中,我创建了 60 个线程来处理裁剪视频(使用 moviepy),每个线程将裁剪 10 个视频(总共 10MB)。当我运行该文件时,它返回错误“无法分配内存”。我知道这是关于内存不足的问题,但我不知道如何测量和设置 EC2 实例的容量以避免这个问题。

欢迎提出任何建议。

【问题讨论】:

  • 您是否尝试过减少线程来验证这不是容量问题?
  • 是的,我尝试了 5-6 个线程,它工作正常。我的观点是,如果我想像这样运行 60 个线程(可能更多),我如何配置 EC2 实例以在没有内存不足的情况下采用这种繁重的工作负载
  • 为什么不根据内存利用率制定规则来添加更多 EC2 实例。例如。您可以设置规则以在内存利用率达到 80% 时启动 EC2 实例。

标签: linux multithreading python-2.7 amazon-ec2 moviepy


【解决方案1】:

如果你有能力,我建议设置一个Auto-Scaling group in Elastic Beanstalk。您将需要对实例的大小进行试验,因为您可能不想为了执行少量额外线程而启动额外的 c5.2xlarge 卷。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2020-02-04
    相关资源
    最近更新 更多