Невозможно смоделировать 100% использование ЦП на экземпляре AWS EC2

Чтобы протестировать мою группу AutoScaling, я хотел смоделировать огромное использование ЦП, чтобы создавать новые экземпляры (на основе метрик, которые я настроил в Cloudwatch: средний ЦП>= 60)

Экземпляр EC2 - это простой t2.micro, и я использовал команду стресса: стресс -c 1 -t 400с

Вверху видно, что процесс запущен и процессор используется на 100%, но проблема в том, что он не постоянный. Иногда он падает до 10%, иногда до 100%, а при мониторинге в облачных часах среднее использование ЦП составляет менее 20% даже после 5 минут стресса!

Я пытался с другими аргументами (стресс -c 2 или стресс -c 4) это то же самое. Я также попытался с этой командой: да> / dev / null &

Cloudwatch всегда не видит 100% загрузки процессора.

В чем проблема? Есть ли какая-либо защита от Amazon, чтобы ограничить огромную нагрузку на процессор?

Спасибо за вашу помощь.

2 ответа

Решение

Экземпляры Tx - это "экземпляры производительности, работающие на пиковую мощность", что означает, что вы не можете постоянно получать 100% CPU. Это обмен в обмен на низкую почасовую цену.

Процессор управляется ресурсными кредитами. Ваш экземпляр получает кредиты процессора каждую минуту. Ваш экземпляр будет использовать 1 кредит ЦП за 1 минуту использования при 100%. Это означает, что когда ваш экземпляр используется не полностью, он накапливает кредиты ЦП, которые можно использовать позже. Когда кредит больше не доступен, ваш процессор будет ограничен.

Количество кредитов ЦП и базовая производительность зависят от точного типа экземпляра.

Подробности здесь: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html

Итог: не запускайте базовый стресс-тест CPU для типа экземпляра Tx. Эти типы экземпляров предназначены для низкого / среднего базового уровня с периодическими всплесками производительности.

Согласно AWS, t2.micro является экземпляром производительности burstable В документации говорится:

Экземпляры T2 - это экземпляры производительности Burstable, которые обеспечивают базовый уровень производительности ЦП с возможностью превышения базового уровня.

Возможно, вы получите дополнительный процессор, когда достигнете 100% загрузки. Также обратите внимание, что эти экземпляры являются виртуальными, поэтому не всегда можно полагаться на сообщаемое использование vCPU.

Я бы посоветовал вам попробовать с общей целью M5, С этим экземпляром вы должны быть в состоянии произвести желаемое поведение.

Другие вопросы по тегам