Модель CPU-кредитов в деталях

Amazon
AWSВ предыдущей статье (Произведет ли семейство T2 революцию на рынке инстансов AWS?) уже упоминались «CPU-кредиты» – это новый способ учета выполненной AWS-экземплярами работы, который ввели для новых классов инстансов, в частности Т2. Не исключено что в будущем действие этой системы распространится и на другие инстансы Amazon (когда они получат обновление) так что есть смысл ознакомиться с принципами работы и понять, для каких задач подходят инстансы, которые работают по такой схеме.


НазваниеvCPUБазовый уровень производительностиRAMCPU-кредитов / часПочасовый тарифМесячный тариф
t2.micro110%1.06$0.013$9.50
t2.small120%2.012$0.026$19.00
t2.medium240%4.024$0.052$38.00

Выше – знакомая таблица, описывающая характеристики инстансов семейсва T2. Но в нее была добавлена еще одна графа – получаемые в час CPU-кредиты. Как видно, их количество зависит от мощности инстанса.

CPU-кредит предоставляет задаче полную мощность ядра CPU в течении одной минуты.

Например, инстанс t2.micro при работе на базовом уровне производительности получает 6 кредитов в час и при этом загружает CPU на 10%. Если выполняемая задача не требует более 10% мощности, то кредиты не расходуются – они сохраняются и числятся на балансе инстанса в течении 24 часов. За 10 часов работы без пиковой нагрузки инстанс накапливает достаточно кредитов чтобы работать с полной нагрузкой целый час.

Допустим, инстанс обслуживает бизнес-процесс, который требует интенсивных вычислений в начале и конце рабочего дня в каждой временной зоне выбранного географического региона. Такая задача отлично подходит для обработки на инстансах семейства Т2 – пики нагрузки сглаживаются за счет кредитов, накопленных за время «простоя». Другой пример – динамический веб-сайт, который периодически испытывает непредсказуемые всплески нагрузки. Опять-таки, Т2 позволяет снизить затраты на хостинг, экономя средства за счет того, что его тарифы ниже чем у «полновесных» инстансов, но в то же время обладает запасом мощности чтобы обслуживать пики загрузки.

Когда запас кредитов иссякнет, производительность инстанса будет постепенно снижаться к уровню регулярной загрузки (от 10 до 40% на одно ядро). Процесс перехода занимает 15 минут, и разработчики должны использовать это время чтобы оставить возможность перехода к задачам с низким потреблением ресурсов.

Кредиты будут накапливаться пока они не используются. Максимально возможный запас достигается за 24 часа работы на стандартном уровне загрузки. Это:

t2.micro — 144 (6 минут CPU / час * 24 часа)
t2.small — 288 (12 минут CPU / час * 24 часа)
t2.medium — 576 (24 CPU минут CPU / час * 24 часа)

Когда этот уровень достигнут, дальше кредиты не накапливаются. В целом, нагрузки, которые подходят для модели использования Т2 позволяют поддерживать положительный баланс кредитов. Если они постоянно заканчиваются, то скорее всего этот тип нагрузки не подходит для Т2 и стоит попробовать использовать какой-либо другой класс инстансов или переключиться на более мощный инстанс Т2.

Накопленные кредиты могут использоваться как за несколько пиков, так и в одном. Нужно иметь в виду, что кредиты также тратятся при перезапуске инстанса или если инстанс неожиданно ликвидируется. Статистику накопления и использования кредитов можно отслеживать по добавленным в последнем обновлении метрикам CloudWatch – CPUCreditUsage и CPUCreditBalance. Они отображают использование и накопление кредитов.

Каждому запускаемому инстансу выделяется некоторое количество кредитов CPU чтобы он мог утилизировать вычислительные мощности в максимальном объеме. В сочетании с особенностью EBS – повышенной пиковой пропускной способностью при загрузке инстансов – это позволит новым инстансам загружаться с нуля быстрее чем предшественникам.

Т2 в деле


Тестовый сценарий – среду разработки было решено построить на основе t2.small. Цель сценария – показать, как CPU-кредиты накапливаются и тратятся в ходе работы инстанса, его не стоит рассматривать как формальный бенчмарк.

Сценарий включает загрузки, типичные для задач разработки ПО, в частности – build-сервера. Запуск инстанса, подключение 100 Гб EBS-тома общего назначения, установка среды разработки (пакеты thencurses-devel и gcc), после чего было загружено дерево исходников ядра Linux с kernel.org. Запускается menuconfig, все настройки остаются по умолчанию, после чего запускается сборка ядра.



Как видно по графикам, это заняло всего 23 минуты. А как такая интенсивная нагрузка отразилась на использовании CPU-кредитов?



Оранжевая линия – использование кредитов (в минутах) во время сборки ядра. Синяя – баланс кредитов (тоже в минутах) инстанса. Слева по вертикали отложено потребление кредитов, справа – накопление, по горизонтали – время. Баланс пополняется кредитами большую часть времени, пока не началась сборка (так как задачи не требовали большой мощности), резко провалился во время сборки, но даже тогда не опускался ниже 15. А как только сборка была закончена и нагрузка упала, снова начали «капать» кредиты. Меньше чем за час их количество возросло с 16 до 25.

Вот метрики CloudWatch по загрузке CPU во время запуска тестового сценария:



А это график более длительного тестирования. На нем сборка ядра производилась в общей сложности три раза, с перерывом в ~7 часов. Как видно, кредитов вполне хватало на выполнение всех задач (слева по вертикали отложено потребление кредитов, справа – накопление, по горизонтали – время).



Заключение


Как видно, для сценариев нерегулярной загрузки семейство Т2 является вполне привлекательным.

Приблизительно можно обозначить инстансы, которые заменяет Т2. Однако, это не точное сравнение и оно может не отражать потребности всех клиентов:

t1.micro -> t2.micro
m1.small -> t2.small
m1.medium -> t2.medium

Инстансы Т2 используют аппаратную виртуализацию, что дает существенный прирост производительности. Чтобы использовать возможности аппаратной виртуализации, клиент должен воспользоваться HVM AMI.

В настоящее время, инстансы Т2 доступны в следующих регионах:

  • US East (Северная Вирджиния)
  • US West (Орегон)
  • EU (Ирландия)
  • Asia Pacific (Сингапур)
  • Asia Pacific (Токио)
  • Asia Pacific (Сидней)
  • South America (Сан-Паулу)

via aws.amazon.com

Комментарии (0)


Добавление комментариев доступно только зарегистрированным пользователям. Используйте свою существующую учетную запись для авторизации. Если у Вас еще нет учетной записи на сайте ее можно создать пройдя несложную процедуру регистрации. Кстати, для входа на сайт, наравне с учетной записью на cloudzone.ru, можно использовать аккаунт из следующих популярных сервисов: Яндекс, Facebook, Google и LinkedIn