Назад | Перейти на главную страницу

Использование памяти и исключение OOM в AWS ECS

Вот диаграмма MemoryUtilization одного из моих сервисов в кластере ECS.

Как видите, на короткое время память увеличилась до 25%.

В этом кластере у меня 3 t2.medium машины. В спецификации указано, что эти машины имеют 4 ГБ оперативной памяти.

Моя текущая проблема:

Я использую ImageMagic convert job в моей задаче aws ecs, и процесс прекращается из-за преобразования большого файла (статус выхода 137). Однако на моем локальном ПК это же задание может выполняться без каких-либо проблем.

Для моей задачи aws ecs установлен предел аппаратного программного обеспечения 1792 МБ. (Это магическое число для запуска как минимум двух задач на t2.medium)

Мои вопросы:

1) Как понять график? Какой делитель процента? Общая память всех экземпляров ec2? Не знаю, как разобраться в диаграмме.

2) Как сделать использование памяти более гибким? Большую часть времени мой convert не требует много оперативной памяти. Надеюсь, контейнер может использовать неиспользуемую память.

Это потому, что я использовал жесткое ограничение в определении задачи. Он поместил верхнюю крышку на RAM, которую контейнер может использовать, и, следовательно, вызвал convert потерпеть неудачу. Вместо этого я должен был использовать мягкий предел и установить его на низкое использование ОЗУ. Это позволит контейнеру использовать RAM столько, сколько может предоставить экземпляр ec2.