Использование точечных виртуальных машин с рабочими нагрузками пакетной службы

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

Точечные виртуальные машины используют избыточные ресурсы в Azure. При указании точечных виртуальных машин в пулах пакетная служба Azure может использовать этот избыток при его наличии.

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

Точечные виртуальные машины предоставляются по сниженной цене по сравнению с выделенными виртуальными машинами. Дополнительные сведения о ценах см. в разделе "Цены на пакетную службу".

Различия между точечными и низкоприоритетными виртуальными машинами

Пакетная служба предлагает два типа недорогих виртуальных машин:

  • Точечные виртуальные машины— современное предложение для всех служб Azure, также доступное в качестве одноэкземплярных виртуальных машин или масштабируемых наборов виртуальных машин.
  • Низкоприоритетные виртуальные машины— устаревшее предложение, доступное только через пакетную службу Azure.

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

Предупреждение

Виртуальные машины с низким приоритетом будут прекращены после 30 сентября 2025 года. Перед этим перейдите на точечные виртуальные машины в пакетной службе .

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

Точечные виртуальные машины Низкоприоритетные виртуальные машины
Поддерживаемые учетные записи пакетной службы Учетные записи пакетной службы подписки пользователя Учетные записи пакетной службы, управляемые пакетной службой
Поддерживаемые конфигурации пула пакетной службы Конфигурация виртуальной машины Конфигурация виртуальной машины и конфигурация облачной службы (не рекомендуется)
Доступные регионы Все регионы, поддерживающие точечные виртуальные машины Все регионы, кроме Microsoft Azure, управляемые 21Vianet
Право клиента Недоступно для некоторых типов предложений подписки. См. дополнительные сведения об ограничениях на точечные устройства. Доступно для всех клиентов пакетной службы
Возможные причины удаления данных Capacity Capacity
Модель ценообразования Переменные скидки относительно цен на виртуальные машины ценовой категории "Стандартный" Фиксированные скидки относительно цен на виртуальные машины ценовой категории "Стандартный"
Модель квоты Подпадают под квоты ядра в подписке Подпадают под квоты ядра в учетной записи пакетной службы
Соглашение об уровне обслуживания: доступность нет нет

Пакетная поддержка точечных виртуальных машин

Пакетная служба Azure предоставляет несколько возможностей, которые упрощают использование точечных виртуальных машин и позволяют воспользоваться их преимуществами:

  • Пулы пакетной службы могут содержать выделенные и точечные виртуальные машины. Число каждого типа виртуальной машины можно указать при создании пула или в любое время для существующего пула с помощью явной операции изменения размера или с помощью автомасштабирования. Отправка заданий и задач не изменяется независимо от типа виртуальной машины в пуле. Вы можете настроить пул так, чтобы он в основном использовал точечные виртуальные машины для выполнения заданий как можно дешевле и развертывал выделенные виртуальные машины, если значение емкости падает ниже заданного порогового значения, чтобы выполнение заданий продолжалось.
  • Пулы пакетной службы автоматически ищут целевое количество точечных виртуальных машин. Если виртуальные машины вытеснены или недоступны, пакетная служба пытается заменить потерянную емкость и вернуться к цели.
  • После прерывания задач пакетная служба обнаруживает и автоматически помещает в очередь задания для повторного запуска.
  • Точечные виртуальные машины имеют отдельную квоту на виртуальные ЦП, которая отличается от квоты выделенных виртуальных машин. Квота для точечных виртуальных машин выше, чем квота для выделенных виртуальных машин, так как их стоимость ниже. Дополнительные сведения см. в разделе о квотах и ограничениях пакетной службы.

Рекомендации и варианты использования

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

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

  • Разработка и тестирование. При разработке крупномасштабных решений, в частности, можно существенно сэкономить средства. Преимущества доступны для всех видов тестирования, но лучше всего подходит крупномасштабное нагрузочное тестирование и тестирование регрессии.
  • Добавление емкости по требованию: точечные виртуальные машины могут использоваться в дополнение к обычным выделенным виртуальным машинам. При наличии вакансии можно масштабировать и, следовательно, выполнять их быстрее при меньших затратах; когда они недоступны, базовые выделенные виртуальные машины остаются доступными.
  • Гибкое время выполнения задания. Если в заданиях времени приходится выполнять гибкие возможности, возможные снижение емкости может быть разрешено. Однако при добавлении точечных виртуальных машин задания часто выполняются быстрее и при более низкой стоимости.

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

  • Пул может использовать только точечные виртуальные машины. При этом пакетная служба будет просто восстанавливать замещенные ресурсы, когда они станут доступными. Данная конфигурация представляет собой самый дешевый способ выполнения заданий.
  • Точечные виртуальные машины можно использовать с фиксированной базовой базой выделенных виртуальных машин. Фиксированное количество выделенных виртуальных машин гарантирует, что для выполнения задания всегда существует некоторая емкость.
  • Пул может использовать динамическую комбинацию выделенных и точечных виртуальных машин, чтобы более дешевые виртуальные машины точечных виртуальных машин использовались исключительно при наличии, но при необходимости масштабируйте выделенные выделенные виртуальные машины с полной ценой. Эта конфигурация обеспечивает минимальный объем емкости для поддержания хода выполнения заданий.

Помните, что при планировании использования точечных виртуальных машин следует учитывать следующие методики.

  • Чтобы максимально увеличить использование избыточной емкости в Azure, подходящие задания могут масштабироваться.
  • Иногда виртуальные машины могут быть недоступны или преуменьшированы, что приводит к снижению емкости для заданий и может привести к прерыванию задач и повторному выполнению.
  • Задачи с более коротким временем выполнения, как правило, лучше всего работают с точечными виртуальными машинами. Задания с более длинными задачами могут быть затронуты при прерывании. Если длительные задачи реализуют контрольные точки для сохранения хода выполнения, это влияние может быть сокращено.
  • Длительные задания MPI, использующие несколько виртуальных машин, не хорошо подходят для точечных виртуальных машин, так как одна предварительно созданная виртуальная машина может привести ко всему заданию, необходимому повторному выполнению.
  • В случае если правила группы безопасности сети (NSG) настроены неправильно, точечные узлы могут быть помечены как непригодные для использования.

Создание пулов и управление ими с помощью точечных виртуальных машин

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

В следующем примере создается пул с помощью виртуальных машин Azure, в данном случае виртуальных машин Linux с целью 5 выделенных виртуальных машин и 20 точечных виртуальных машин:

ImageReference imageRef = new ImageReference(
    publisher: "Canonical",
    offer: "UbuntuServer",
    sku: "20.04-LTS",
    version: "latest");

// Create the pool
VirtualMachineConfiguration virtualMachineConfiguration =
    new VirtualMachineConfiguration("batch.node.ubuntu 20.04", imageRef);

pool = batchClient.PoolOperations.CreatePool(
    poolId: "vmpool",
    targetDedicatedComputeNodes: 5,
    targetLowPriorityComputeNodes: 20,
    virtualMachineSize: "Standard_D2_v2",
    virtualMachineConfiguration: virtualMachineConfiguration);

Можно получить текущее количество узлов как для выделенных, так и для точечных виртуальных машин:

int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;

В узлах пула есть свойство, указывающее на принадлежность узла (выделенная или точечная виртуальная машина):

bool? isNodeDedicated = poolNode.IsDedicated;

Точечные виртуальные машины иногда могут быть упрещены. Когда происходит предварительная очистка, задачи, выполняемые на предварительно подготовленных виртуальных машинах узла, повторно запускаются при возврате емкости.

Для пулов конфигурации виртуальных машин пакет также выполняет следующие действия:

  • Для замещенных виртуальных машин устанавливается состояние Замещено.
  • Виртуальная машина удаляется, что приводит к потере всех ее локальных данных в хранилище.
  • Операция с узлами списка в пуле по-прежнему возвращает предварительно подготовленные узлы.
  • Пул постоянно будет пытаться подключиться к целевым доступным точечным узлам. При обнаружении емкости замены узлы сохраняют свои идентификаторы, но повторно инициализируются, просматривая состояния создания и запуска , прежде чем они будут доступны для планирования задач.
  • Счетчики замещения доступны в качестве метрики на портале Azure.

Масштабирование пулов, содержащих точечные виртуальные машины

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

Операция изменения размера пула принимает второй необязательный параметр, который обновляет значение targetLowPriorityNodes:

pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);

Формула автомасштабирования пула реализует поддержку точечных виртуальных машин следующим образом:

  • Вы можете получить или задать значение определенной службой переменной $TargetLowPriorityNodes.
  • Вы можете получить значение определенной службой переменной $CurrentLowPriorityNodes.
  • Вы можете получить значение определенной службой переменной $PreemptedNodeCount. Эта переменная возвращает количество узлов в состоянии "Отложено" и позволяет масштабировать число выделенных узлов в зависимости от числа недоступных замещенных узлов.

Настройка заданий и задач

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

  • Свойство JobManagerTask задания имеет AllowLowPriorityNode свойство. Если это свойство имеет значение true, задачу диспетчера заданий можно запланировать на выделенном или точечном узле. Если значение указано как false, задача диспетчера заданий запланирована только для выделенного узла.
  • Переменная AZ_BATCH_NODE_IS_DEDICATED среды доступна приложению задач, чтобы определить, работает ли она на месте или на выделенном узле.

Просмотр метрик для точечных виртуальных машин

На портале Azure доступны новые метрики для точечных узлов. Эти метрики перечислены ниже.

  • Low-Priority Node Count
  • Low-Priority Core Count;
  • Preempted Node Count

Чтобы просмотреть эти метрики в портал Azure:

  1. Войдите в свою учетную запись пакетной службы на портале Azure.
  2. В разделе Мониторинг щелкните Метрики.
  3. Выберите нужные показатели из списка Показатель.

Ограничения

  • Точечные виртуальные машины в пакетной службе не поддерживают установку максимальной цены и не поддерживают вытеснения на основе цен. Их можно вытеснить только по соображениям емкости.
  • Точечные виртуальные машины доступны только для пулов конфигурации виртуальных машин, но не для пулов конфигурации облачных служб, которые не рекомендуются.
  • Точечные виртуальные машины недоступны для некоторых облаков, размеров виртуальных машин и типов предложений подписки. Дополнительные сведения об ограничениях для точечных виртуальных машин.
  • В настоящее время временные диски ОС не поддерживаются с точечными виртуальными машинами из-за политики вытеснения, управляемой службой, stop-Deallocate.

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