Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пакетная служба Azure предлагает Spot-виртуальные машины для сокращения затрат на пакетные рабочие нагрузки. Spot-виртуальные машины делают возможным создание новых типов рабочих нагрузок пакетной службы, что позволяет использовать большое количество вычислительных мощностей по низкой цене.
Точечные виртуальные машины используют избыточные ресурсы в Azure. При указании спотовых виртуальных машин в пулах служба пакетной обработки Azure может использовать этот избыток, когда он доступен.
Компромисс при использовании Spot виртуальных машин заключается в том, что эти виртуальные машины могут быть не всегда доступны или могут быть прерваны в любое время в зависимости от доступных ресурсов. По этой причине точечные виртуальные машины лучше всего подходят для рабочих нагрузок с пакетной и асинхронной обработкой, когда время выполнения задания является гибким, а работа распределяется по множеству виртуальных машин.
Точечные виртуальные машины предоставляются по сниженной цене по сравнению с выделенными виртуальными машинами. Дополнительные сведения о ценах см. в разделе Цены на пакетные предложения.
Различия между точечными и низкоприоритетными виртуальными машинами
Пакет предлагает два типа недорогих вытесняемых виртуальных машин:
- Точечные виртуальные машины— современное предложение для всех служб Azure, также доступное в качестве одноэкземплярных виртуальных машин или масштабируемых наборов виртуальных машин.
- Низкоприоритетные виртуальные машины— устаревшее предложение, доступное только через пакетную службу Azure.
Тип узла, который вы получаете, зависит от режима выделения пула Batch, который можно задать при создании учетной записи. Учетные записи пакетной службы, использующие режим выделения пула подписки пользователя, всегда получают виртуальные машины типа Spot. Учетные записи пакетной службы, использующие режим выделения пула, управляемый пакетной службой, всегда получают низкоприоритетные виртуальные машины.
Предупреждение
Виртуальные машины с низким приоритетом будут прекращены после 30 сентября 2025 года. Пожалуйста, перейдите на виртуальные машины Spot в службе пакетной обработки до этого времени.
Точечные виртуальные машины Azure и низкоприоритетные виртуальные машины пакетной службы схожи, но имеют несколько различий в поведении.
Спотовые виртуальные машины | Низкоприоритетные виртуальные машины | |
---|---|---|
Поддерживаемые учетные записи Batch | Учетные записи пользователей пакетного обслуживания | Пакетные учетные записи, управляемые пакетной системой |
Поддерживаемые конфигурации пула задач пакетной обработки | Конфигурация виртуальной машины | Конфигурация виртуальной машины и конфигурация облачной службы (не рекомендуется) |
Доступные регионы | Все регионы, поддерживающие точечные виртуальные машины | Все регионы, кроме Microsoft Azure, управляемые 21Vianet |
Право на участие клиента | Недоступно для некоторых типов предложений подписки. См. дополнительные сведения об ограничениях Spot. | Доступно для всех клиентов пакетной обработки |
Возможные причины выселения | вместимость | вместимость |
Модель ценообразования | Переменные скидки относительно стандартных цен на виртуальные машины | Фиксированные скидки относительно стандартных цен на виртуальные машины |
Модель квоты | Ограничения по основным квотам в вашей подписке | Подлежит основным квотам на пакетный аккаунт |
SLA доступности | нет | нет |
Пакетная поддержка виртуальных машин типа Spot
Пакетная служба Azure предоставляет несколько возможностей, которые упрощают использование точечных виртуальных машин и позволяют воспользоваться их преимуществами:
- Пулы Batch могут содержать как выделенные, так и точечные виртуальные машины. Число каждого типа виртуальной машины можно указать при создании пула или в любое время для существующего пула с помощью явной операции изменения размера или с помощью автомасштабирования. Отправка заданий и задач не изменяется независимо от типа виртуальной машины в пуле. Вы можете настроить пул так, чтобы он в основном использовал точечные виртуальные машины для выполнения заданий как можно дешевле и развертывал выделенные виртуальные машины, если значение емкости падает ниже заданного порогового значения, чтобы выполнение заданий продолжалось.
- Пулы пакетных ресурсов автоматически добиваются достижения заданного количества виртуальных машин типа Spot. Если виртуальные машины вытеснены или недоступны, Batch пытается заменить потерянную емкость и вернуться к целевому объему.
- Когда задачи прерываются, Batch обнаруживает это и автоматически заново ставит их в очередь для повторного выполнения.
- Точечные виртуальные машины имеют отдельную квоту на виртуальные ЦП, которая отличается от квоты выделенных виртуальных машин. Квота для точечных виртуальных машин выше, чем квота для выделенных виртуальных машин, так как их стоимость ниже. Дополнительные сведения см. в разделе о квотах и ограничениях пакетной службы.
Рекомендации и варианты использования
Многие пакетные рабочие нагрузки хорошо подходят для Spot виртуальных машин. Рассмотрите возможность использования точечных виртуальных машин, если задания разбиваются на множество параллельных задач или при наличии большого количества заданий, масштабируемых и распределенных по нескольким виртуальным машинам.
Ниже приведены некоторые примеры вариантов использования пакетной обработки, которые хорошо подходят для точечных виртуальных машин:
- Разработка и тестирование. При разработке крупномасштабных решений, в частности, можно существенно сэкономить средства. Преимущества доступны для всех видов тестирования, но лучше всего подходит крупномасштабное нагрузочное тестирование и тестирование регрессии.
- Добавление емкости по требованию: точечные виртуальные машины могут использоваться в дополнение к обычным выделенным виртуальным машинам. Когда ресурсы доступны, можно масштабировать задачи и, следовательно, выполнять их быстрее при меньших затратах; когда они недоступны, базовые выделенные виртуальные машины остаются в наличии.
- Гибкое время выполнения заданий. Если имеется гибкость во времени завершения заданий, возможное снижение мощности может быть допустимо. Однако при добавлении точечных виртуальных машин задания часто выполняются быстрее и при более низкой стоимости.
Пакетные пулы можно настроить для использования точечных виртуальных машин несколькими способами:
- Пул может использовать только виртуальные машины Spot. В этом случае система Batch восстанавливает предварительно освобожденные ресурсы, когда они становятся доступными. Данная конфигурация представляет собой самый дешевый способ выполнения заданий.
- Точечные виртуальные машины можно использовать с фиксированной базовой базой выделенных виртуальных машин. Фиксированное количество выделенных виртуальных машин гарантирует, что для выполнения задания всегда существует некоторая емкость.
- Пул может использовать динамическую комбинацию выделенных и точечных виртуальных машин, чтобы более дешевые точечные виртуальные машины использовались исключительно при наличии, но при необходимости масштабируются выделенные виртуальные машины по полной стоимости. Эта конфигурация обеспечивает минимальный объем емкости для поддержания хода выполнения заданий.
Помните, что при планировании использования точечных виртуальных машин следует учитывать следующие методики.
- Чтобы максимально увеличить использование избыточной емкости в Azure, подходящие задания могут масштабироваться.
- Иногда виртуальные машины могут быть недоступны или выделены для других задач, что приводит к снижению мощности для выполнения заданий и может привести к прерыванию задач и их перезапускам.
- Задачи с более коротким временем выполнения, как правило, лучше всего работают с точечными виртуальными машинами. Задания с длительными задачами могут быть более затронуты, если их прервать. Если длительные задачи внедряют контрольные точки для сохранения хода выполнения, это воздействие может быть уменьшено.
- Длительные задания MPI, использующие несколько виртуальных машин, не подходят для Spot виртуальных машин, так как прерывание одной виртуальной машины может привести к необходимости выполнения всего задания заново.
- В случае если правила группы безопасности сети (NSG) настроены неправильно, точечные узлы могут быть помечены как непригодные для использования.
Создание пулов и управление ими с помощью точечных виртуальных машин
Пул Batch может содержать выделенные и Spot виртуальные машины (также называемые вычислительными узлами). Вы можете задать целевое количество вычислительных узлов как для выделенных, так и для Spot виртуальных машин. Целевое количество узлов указывает количество виртуальных машин, которые вы хотите иметь в пуле.
В следующем примере создается пул с помощью виртуальных машин 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;
Точечные виртуальные машины иногда могут быть упрещены. Когда происходит прерывание, задачи, выполнявшиеся на узлах ВМ, подвергнутых прерыванию, заново добавляются в очередь и запускаются снова, когда емкость восстанавливается.
Для пулов конфигурации виртуальных машин пакет также выполняет следующие действия:
- Для замещенных виртуальных машин устанавливается состояние Замещено.
- Виртуальная машина удаляется, что приводит к потере всех ее локальных данных в хранилище.
- Операция отображения узлов в пуле по-прежнему возвращает вытесненные узлы.
- Пул постоянно пытается достичь целевого количества доступных Spot-узлов. При обнаружении емкости замены узлы сохраняют свои идентификаторы, но повторно инициализируются, проходя состояния Создание и Запуск перед тем, как они становятся доступными для планирования задач.
- Счетчики замещения доступны в качестве метрики на портале Azure.
Масштабирование пулов, содержащих точечные виртуальные машины
Как и в пулах, состоящих исключительно из выделенных виртуальных машин, можно масштабировать пул, содержащий точечные виртуальные машины, вызывая Resize
метод или используя автомасштабирование.
Операция изменения размера пула принимает второй необязательный параметр, который обновляет значение targetLowPriorityNodes
:
pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);
Формула автомасштабирования пула реализует поддержку точечных виртуальных машин следующим образом:
- Вы можете получить или задать значение определенной службой переменной
$TargetLowPriorityNodes
. - Вы можете получить значение определенной службой переменной
$CurrentLowPriorityNodes
. - Вы можете получить значение определенной службой переменной
$PreemptedNodeCount
. Эта переменная возвращает количество узлов в состоянии "Отложено" и позволяет масштабировать число выделенных узлов в зависимости от числа недоступных замещенных узлов.
Настройка заданий и задач
Для заданий и задач может потребоваться дополнительная конфигурация для точечных узлов:
- У свойства
JobManagerTask
задания есть свойствоAllowLowPriorityNode
. Если это свойство имеет значение true, задачу диспетчера заданий можно запланировать на выделенном или точечном узле. Если значение указано как false, задача диспетчера заданий запланирована только для выделенного узла. - Переменная
AZ_BATCH_NODE_IS_DEDICATED
среды доступна приложению задачи, чтобы оно могло определить, работает ли оно на Spot-узле или на выделенном узле.
Просмотр метрик для точечных виртуальных машин
На портале Azure доступны новые метрики для точечных узлов. Эти метрики перечислены ниже.
- Количество узлов с низким приоритетом
- Число ядер с низким приоритетом
- Количество вытесненных узлов
Чтобы просмотреть эти метрики в портале Azure:
- Перейдите к учетной записи Batch на портале Azure.
- В разделе Мониторинг щелкните Метрики.
- Выберите нужные показатели из списка Показатель.
Ограничения
- Спотовые виртуальные машины в Batch не поддерживают установку максимальной цены и вытеснения на основе цен. Их можно выселить только по причинам переполненности.
- Точечные виртуальные машины доступны только для пулов конфигурации виртуальных машин, но не для пулов конфигурации облачных служб, которые не рекомендуются.
- Точечные виртуальные машины недоступны для некоторых облаков, размеров виртуальных машин и типов предложений подписки. Дополнительные сведения об ограничениях для точечных виртуальных машин.
- В настоящее время эфемерные диски ОС не поддерживаются с точечными виртуальными машинами из-за управляемой службой политикой вытеснения Stop-Deallocate.
Следующие шаги
- Узнайте подробнее о рабочем процессе и основных ресурсах пакетной службы, таких как пулы, узлы, задания и задачи.
- Узнайте о пакетных API и инструментах, которые доступны для создания пакетных решений.
- Начните планировать переход с низкоприоритетных виртуальных машин на точечные виртуальные машины. Если вы используете низкоприоритетные виртуальные машины с пулами конфигурации облачных служб (которые устарели), планируйте миграцию на пулы конфигурации виртуальных машин.