Невозможно смоделировать 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
, С этим экземпляром вы должны быть в состоянии произвести желаемое поведение.