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

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

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

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

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

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

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

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

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

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

Точечные виртуальные машины Виртуальные машины с низким приоритетом
Поддерживаемые учетные записи пакетной службы Учетные записи пакетной службы подписки пользователя Учетные записи пакетной службы, управляемые пакетной службой
Поддерживаемые конфигурации пула пакетной службы Конфигурация виртуальной машины Конфигурация виртуальной машины и конфигурация облачной службы (не рекомендуется)
Доступные регионы Все регионы, поддерживающие точечные виртуальные машины Все регионы, кроме Microsoft Azure China 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.

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