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

Пакетная служба 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.

Дальнейшие действия