Поделиться через


Как сделать выбор между стандартной (ручной) и автомасштабируемой подготовленной пропускной способностью

Область применения: Nosql Mongodb Кассандра Гремлин Таблица

Azure Cosmos DB поддерживает два типа (или предложения) подготовленной пропускной способности: стандартный (ручной) и автомасштабируемый. Оба типа пропускной способности подходят для критически важных рабочих нагрузок, требующих высокой производительности и масштабирования, и поддерживаются одними и теми же соглашениями об уровне обслуживания Azure Cosmos DB в отношении пропускной способности, доступности, задержки и согласованности.

Эта статья рассказывает о том, как сделать правильный выбор между стандартной (ручной) и автомасштабируемой подготовленной пропускной способностью для рабочей нагрузки.

Общие сведения о подготовленных типах пропускной способности

Прежде чем коснуться различий между стандартным (ручным) и автомасштабируемым типами, важно сначала понять, как работает подготовленная пропускная способность в Azure Cosmos DB.

При использовании подготовленной пропускной способности вы задаете пропускную способность, измеряемую в единицах запросов в секунду (ЕЗ/с), необходимых для вашей рабочей нагрузки. Служба подготавливает производительность, необходимую для поддержки требований к пропускной способности. Операции базы данных для службы, например операции чтения, записи и запросы, потребляют некоторый объем единиц запросов (ЕЗ). Дополнительные сведения о единицах запроса.

В следующей таблице показано общее сравнение стандартного (ручного) и автомасштабируемого типов пропускной способности.

Description Стандартный (ручной) Автомасштабирование
Рабочие нагрузки Рабочих нагрузок с постоянным или предсказуемым трафиком Рабочих нагрузок с переменным или непредсказуемым трафиком См. раздел варианты использования автомасштабирования.
Принцип работы Вы подготавливаете заданное количество ЕЗ/с T, статичное во времени, пока вы не измените это значение вручную. Каждую секунду можно использовать пропускную способность до T ЕЗ/с.

Например, если задать значение 400 ЕЗ/с для стандартной (ручной) пропускной способности, она будет постоянно находиться на указанном уровне.
Вы указываете наибольшее или максимальное количество ЕЗ/с Tmax, которое система не должна превышать. Система автоматически масштабирует пропускную способность T таким образом, чтобы она не превышала 0.1* Tmax <= T <= Tmax.

Например, если задать максимальное значение для автомасштабирования, равное 4 000 ЕЗ/с, система будет масштабировать количество запросов в пределах 400–4 000 ЕЗ/с.
Сценарии использования Вы хотите вручную управлять емкостью пропускной способности (ЕЗ/с) и масштабировать ее самостоятельно.

У вас высокое, стабильное использование подготовленных единиц запросов в секунду. Если вы установили подготовленное значение единиц запросов в секунду T и использовали 66 % от запланированных часов в месяц и более, по расчетам, вы сэкономите благодаря стандартному (ручному) значению подготовленных ЕЗ/с.

Это основано на сравнении значения параметра T при использовании стандартного (ручного) типа и того же количества Tmax при автомасштабировании.
Вы хотите управлять пропускной способностью (ЕЗ/с) и масштабированием на основе использования с помощью Azure Cosmos DB.

Число используемых единиц запросов в секунду у вас меняется, или его сложно прогнозировать. Если для автомасштабирования вы установили максимальное значение единиц запросов в секунду Tmax и использовали все это количество (Tmax) для 66 % от запланированных часов в месяц и менее, по расчетам, вы сэкономите благодаря автомасштабированию.

Это основано на сравнении значения параметра Tmax при автомасштабировании и того же количества T при использовании стандартного (ручного) типа.
Модель выставления счетов Выставление счетов выполняется по часам для подготовленных единиц запросов в секунду, независимо от того, сколько ЕЗ было использовано.

Пример:
  • Подготовлено 400 ЕЗ/с
  • Час 1: нет запросов
  • Час 2: 400 единиц запросов в секунду


  • За оба часа 1 и 2 будет взиматься одинаковая плата за 400 единиц запросов в секунду по тарифам за стандартный (ручной) тип масштабирования пропускной способности.
    Выставление счетов выполняется на почасовой основе по максимальному количеству единиц запросов в секунду, до которого система выполняла масштабирование в течение часа.

    Пример:
  • Подготовленная максимальная пропускная способность для автомасштабирования: 4 000 ЕЗ/с (с масштабированием от 400 до 4 000 ЕЗ/с)
  • Час 1: система масштабировала пропускную способность до максимального значения в 3 500 ЕЗ/с
  • Час 2: система масштабировала пропускную способность до максимального значения в 400 ЕЗ/с (всегда 10 % от Tmax) из-за неиспользования


  • Счет выставляется за 3 500 ЕЗ/с за час 1 и 400 ЕЗ/с за час 2 согласно тарифам на автомасштабирование подготовленной пропускной способности. Тариф на автомасштабирование за единицу запросов в секунду составляет 1,5 * тариф на стандартный (ручной) тип масштабирования пропускной способности.
    Что происходит при превышении количества подготовленных единиц запросов в секунду Значение ЕЗ/с остается статичным по отношению к подготовленному значению. Все запросы, потребляемые свыше подготовленного значения единиц запросов в секунду, будут ограничены по скорости и получат отклик с рекомендацией подождать, прежде чем совершить повторную попытку. При необходимости можно вручную увеличить или уменьшить количество единиц запросов в секунду. При автомасштабировании система будет увеличивать количество единиц запросов в секунду до максимального числа ЕЗ/с. Все запросы, потребляемые свыше максимального значения единиц запросов в секунду для автомасштабирования, будут ограничены по скорости и получат отклик с рекомендацией подождать, прежде чем совершить повторную попытку.

    Общие сведения о шаблонах трафика

    Новые приложения

    Если вы создаете новое приложение и еще не знаете, какой шаблон трафика использовать, вы можете начать с единиц запросов в секунду (или с минимального значения единиц запросов в секунду) для точки входа, чтобы избежать указания слишком большого значения в начале. Или, если у вас небольшое приложение, которое не нуждается в большом масштабе, для оптимизации затрат нужно подготовить лишь минимальное количество единиц запросов в секунду для точки входа. Для небольших приложений с низким ожидаемым трафиком также можно рассмотреть бессерверный режим емкости.

    Независимо от того, какой (ручной или автоматический) тип масштабирования вы планируете использовать, учитывайте приведенные ниже моменты.

    Если вы подготовите значение в 400 единиц запросов в секунду для точки входа при стандартном (ручном) масштабировании, то не сможете потреблять больше указанного значения, пока не измените пропускную способность вручную. Вам будет выставлен счет за 400 ЕЗ/с в час при стандартном (ручном) указании подготовленной пропускной способности.

    Если вы подготовите автомасштабирование пропускной способности с максимальным значением в 4000 ЕЗ/с, ресурс будет масштабироваться в диапазоне 400–4000 ЕЗ/с. Так как ставка за единицу запросов в секунду при автомасштабировании пропускной способности в 1,5 раза выше ставки стандартного (ручного) масштабирования, за часы, когда система масштабируется до минимального значения в 400 ЕЗ/с, счет будет выше, чем при указании 400 ЕЗ/с вручную. Однако при использовании автомасштабирования в ситуациях, когда трафик приложения сильно меняется, вы сможете потребить до 4000 единиц запросов в секунду без каких-либо действий со стороны пользователя. В общем, следует сопоставить преимущества потребления максимального числа единиц запросов в секунду в любое время с увеличенной в 1,5 раза ставкой на автомасштабирование.

    Чтобы оценить требования к пропускной способности, используйте калькулятор емкости Azure Cosmos DB.

    Существующие приложения

    Если у вас есть приложение, использующее стандартное (ручное) масштабирование подготовленной пропускной способности, можно использовать метрики Azure Monitor, чтобы определить, подходит ли шаблон трафика для автомасштабирования.

    Сначала найдите метрику нормализованного потребления единиц запросов для базы данных или контейнера.

    Затем определите, как нормализованное использование меняется с течением времени. Определите максимальное нормализованное использование для каждого часа. Затем рассчитайте среднее нормализованное использование по всем часам. Если вы видите, что среднее использование составляет меньше 66 %, попробуйте включить автомасштабирование для базы данных или контейнера. Напротив, если среднее использование превышает 66 %, рекомендуется оставить стандартную (масштабируемую вручную) подготовленную пропускную способность.

    Совет

    Если ваша учетная запись настроена для операций записи в несколько регионов и в ней более одного региона, то и для ручного, и для автоматического масштабирования будет использоваться частота в 100 ЕЗ/с. Это означает, что включение автомасштабирования не повлечет за собой дополнительных затрат независимо от уровня использования. Поэтому при записи в нескольких регионах всегда рекомендуется использовать автомасштабирование, если у есть несколько регионов, чтобы сэкономить на оплате только за пропускную способность, до которой масштабируется приложение. Если у вас есть запись в несколько регионов и один регион, вы можете определить на основе среднего уровня использования, удастся ли снизить затраты.

    Примеры

    Рассмотрим два разных примера рабочих нагрузок и проанализируем, подходят ли они для ручного или автоматического масштабирования пропускной способности. Чтобы проиллюстрировать общий подход, мы проанализируем три часа истории и определим разницу в затратах между ручным и автомасштабированием. Для нагрузок в рабочей среде для поиска закономерностей в использовании пропускной способности рекомендуется брать историю от 7 до 30 дней (или более длительную, если она доступна).

    Примечание.

    Все примеры, показанные в этом документе, основаны на цене учетной записи Azure Cosmos DB, развернутой в неправительственных регионах США. Цены и расчеты могут быть иными в зависимости от вашего региона. Актуальные сведения о ценах см. на странице цен Azure Cosmos DB.

    Предположения.

    • Предположим, у нас есть регулируемая вручную пропускная способность в 30 000 единиц запросов (ЕЗ в секунду).
    • У нас настроена запись в одном регионе с одним регионом. Если бы у нас было несколько регионов, то почасовую стоимость следовало бы умножить на их количество.
    • Возьмем общедоступные цены для ручного (0,008 долл. США на 100 ЕЗ/с в час) и автоматического (0,012 долл. США на 100 ЕЗ/с в час) масштабирования пропускной способности в учетных записях с записью в одном регионе. Дополнительные сведения см. на странице цен.

    Сначала рассмотрим нормализованное потребление ЕЗ. У этой рабочей нагрузки переменный трафик с нормализованным потреблением ЕЗ в диапазоне от 6 % до 100 %. Возможны случайные всплески до 100 %, которые трудно прогнозировать, но при этом — много часов с низким уровнем использования.

    Рабочая нагрузка с переменным трафиком — нормализованное потребление ЕЗ в диапазоне от 6 % до 100 % для всех часов

    Сравним затраты на подготовку вручную пропускной способности 30 000 ЕЗ/с с автомасштабированием до 30 000 ЕЗ/с (масштабирование в диапазоне от 3000 до 30 000 ЕЗ/с).

    Теперь проанализируем историю. Предположим, наше использование описано в таблице ниже. Средний уровень использования по трем часам составляет 39 %. Поскольку нормализованное потребление ЕЗ в среднем меньше 66 %, при автомасштабировании мы экономим.

    Обратите внимание, что для часа 1 при уровне использования 6 % за автомасштабирование будет выставлен счет за 10 % от максимального числа ЕЗ в секунду, что является минимальным значением в час. Хотя стоимость автомасштабирования в определенные часы может быть выше, чем при ручном регулировании пропускной способности, при среднем уровне использования ниже 66 % в течение всех часов автоматическое масштабирование окажется дешевле.

    Период времени Загруженность Счет за автомасштабирование ЕЗ/с Вариант 1: ручной режим, 30 000 ЕЗ/с Вариант 2: автомасштабирование в диапазоне 3000–30 000 ЕЗ/s
    Час 1 %6 3000 30 000 * 0,008 / 100 = 2,40 долл. 3000 * 0,012 / 100 = 0,36 долл.
    Час 2 100% 30,000 30 000 * 0,008 / 100 = 2,40 долл. 30 000 * 0,012 / 100 = 3,60 долл.
    Час 3 11% 3300 30 000 * 0,008 / 100 = 2,40 долл. 3300 * 0,012 / 100 = 0,40 долл.
    Всего 7,20 долл. 4,36 (экономия 39 %)

    У этой рабочей нагрузки стабильный трафик с нормализованным потреблением ЕЗ в диапазоне от 72 % до 100 %. В случае подготовки 30 000 ЕЗ/с это означает, что мы потребляем от 21 600 до 30ЕЗ000 единиц запросов в секунду.

    Рабочая нагрузка со стабильным трафиком — нормализованное потребление ЕЗ в диапазоне от 72 % до 100 % для всех часов

    Сравним затраты на подготовку вручную пропускной способности 30 000 ЕЗ/с с автомасштабированием до 30 000 ЕЗ/с (масштабирование в диапазоне от 3000 до 30 000 ЕЗ/с).

    Предположим, что наша история использования описана в таблице ниже. Средний уровень использования по трем часам составляет 88 %. Поскольку нормализованное потребление ЕЗ в среднем выше 66 %, мы экономим при масштабировании вручную.

    В целом, если среднее использование за все 730 часов в течение месяца превышает 66 %, то мы будем экономить при ручном регулировании пропускной способности.

    Период времени Загруженность Счет за автомасштабирование ЕЗ/с Вариант 1: ручной режим, 30 000 ЕЗ/с Вариант 2: автомасштабирование в диапазоне 3000–30 000 ЕЗ/s
    Час 1 72 % 21 600 30 000 * 0,008 / 100 = 2,40 долл. 21 600 * 0,012 / 100 = 2,59 долл.
    Час 2 93 % 28 000 30 000 * 0,008 / 100 = 2,40 долл. 28 000 * 0,012 / 100 = 3,36 долл.
    Час 3 100% 30,000 30 000 * 0,008 / 100 = 2,40 долл. 30 000 * 0,012 / 100 = 3,60 долл.
    Всего 7,20 долл. 9,55 долл.

    Совет

    Для стандартного (ручного) масштабирования пропускной способности можно применить метрику нормализованного использования, чтобы оценить фактическое количество единиц запросов в секунду, которые вы сможете потребить при переключении на автомасштабирование. Умножьте показатель нормализованного использования в конкретный момент времени на текущее значение единиц запросов в секунду в подготовленном стандартном (ручном) типе масштабирования. Например, если вы подготовили 5 000 ЕЗ/с и нормализованное использование составляет 90 %, то использование единиц запросов в секунду составляет 0,9 * 5 000 = 4 500 ЕЗ/с. Если вы видите, что шаблон трафика меняется, но вы указали слишком большое или слишком маленькое значение, вы можете включить автомасштабирование, а затем соответствующим образом изменить параметр максимального числа единиц запросов в секунду.

    Расчет среднего уровня использования

    При автомасштабировании счет выставляется за максимальный уровень ЕЗ/с в течение часа. При анализе нормализованного потребления ЕС в течение времени для расчета среднего уровня важно использовать максимальный уровень использования в час.

    Чтобы вычислить среднее значение от максимального уровня использования в течение всех часов:

    1. Задайте для статистической обработки для метрики потребления нормализованных единиц запросов значение Max.
    2. Для параметра Степень детализации времени установите значение 1 час.
    3. Перейдите к параметрам диаграммы.
    4. Выберите линейчатую диаграмму.
    5. В разделе Общий доступ выберите Скачать в Excel. В полученной электронной таблице рассчитайте средний уровень использования для всех часов.

    Чтобы определить нормализованный уровень потребления ЕЗ в час, 1) выберите гранулярность времени 1 час, 2) откройте на редактирование параметры диаграммы, 3) выберите линейчатую диаграмму, 4) в разделе

    Измерение и отслеживание использования

    Спустя некоторое время после выбора типа масштабирования пропускной способности следует понаблюдать за приложением и внести необходимые изменения.

    Если вы применяете автомасштабирование, используйте Azure Monitor, чтобы просмотреть значения подготовленного максимального количества единиц запросов в секунду (максимальная пропускная способность при автомасштабировании) и числа единиц запросов в секунду, которое в настоящий момент использует система (подготовленная пропускная способность).

    В следующем примере показана переменная или непредсказуемая рабочая нагрузка с помощью автомасштабирования. Обратите внимание, что если нет трафика, система масштабирует ЕЗ/с до минимума 10 % от максимального ЕЗ/с, что в этом случае составляет 5000 ЕЗ/с и 50 000 ЕЗ/с соответственно.

    Снимок экрана: пример рабочей нагрузки с автомасштабированием с максимальной скоростью автомасштабирования в 50 000 ЕЗ/с и пропускной способностью от 50000 до 50 000 ЕЗ/с.

    Перенос стандартной подготовленной пропускной способности в автомасштабирование

    Пользователи, которые хотят перенести большое количество ресурсов из стандартной подготовленной пропускной способности в автомасштабирование, могут использовать скрипт Azure CLI, который будет переносить каждый ресурс пропускной способности в подписке Azure на автомасштабирование. Дополнительные сведения см. в разделе "Преобразование в автомасштабирование".

    Следующие шаги