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


Использование точечных виртуальных машин в Azure CycleCloud

Azure CycleCloud поддерживает развертывание точечных виртуальных машин в nodearrays, чтобы значительно снизить эксплуатационные затраты на кластеры.

Внимание!

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

Настройка Nodearray для точечных объектов

Чтобы включить Spot для nodearray, просто задайте Interruptible значение true в [[nodearray]] разделе.

CycleCloud позволяет кластерам указывать MaxPrice экземпляры точечных экземпляров. Так как цена на точечные услуги может периодически корректироваться и может значительно различаться между регионами и номерами SKU, MaxPrice пользователи могут контролировать максимальную цену (в $/час), которую они готовы платить за виртуальную машину. По умолчанию CycleCloud устанавливает, MaxPrice=-1 если не указано иное, что означает "не вытеснены на основе точечных цен". При использовании этого параметра экземпляры будут исключены только из-за изменений в требованиях к емкости или других решений на уровне платформы.

Дополнительные сведения о ценах на переменные для точечных экземпляров см. в разделе "Цены на точечные объекты".

Для большинства приложений MaxPrice=-1 HPC рекомендуется использовать по умолчанию. Однако если nodearray поддерживает автоматическое масштабирование с несколькими выборками в диапазоне номеров SKU виртуальных машин, MaxPrice можно также настроить, чтобы создать предпочтение для более низких ценовых номеров SKU в списке множественного выбора.

[cluster demo]

  [[nodearray execute]]
  Interruptible = true
  MaxPrice = 0.2

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

Вытеснение точечных виртуальных машин

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

Вопросы и ответы

Использование Spot с CycleCloud имеет некоторые рекомендации, относящиеся к рабочим нагрузкам HPC и автоматическому масштабированию CycleCloud.

Когда следует использовать Spot?

  • Являются ли ваши отдельные рабочие места относительно короткими?
    • Хорошим правилом большого пальца является то, что задания, которые выполняются менее одного часа, могут быть хорошим подходом для экземпляров spot, так как относительно мало прогресса вперед будет потерян, если экземпляр вытесниется.
  • Выполняет ли планировщик автоматические повторные или повторные задания на узлах, которые завершаются сбоем?
  • Безопасно ли повторное выполнение заданий, если узел вытеслен во время выполнения?
    • Как правило, точечные экземпляры лучше всего подходят для рабочих нагрузок без отслеживания состояния.
  • Является ли минимизация затрат на выполнение более важным, чем время завершения?
    • Точечные функции часто идеально подходят для рабочих нагрузок, которые могут быть запланированы в локальных очередях с низким приоритетом или обратной заливкой.
    • Это один из случаев, когда spot может быть подходящим даже для коротких заданий MPI.

Когда следует избегать использования Spot?

  • Если ваши задания тесно связаны с заданиями HPC (например, заданиями MPI), они, скорее всего, не являются хорошими кандидатами для Spot.
  • Если задание является критически важным и (или) имеет крайний срок для завершения, то регулярные экземпляры приоритета могут быть лучше подходят, так как вытеснения и повторные попытки могут продлить время до завершения.
    • Однако это может быть отличная возможность настроить кластер для использования набора экземпляров с регулярным приоритетом и точечных экземпляров, чтобы обеспечить выполнение крайнего срока, пытаясь сократить время выполнения и затраты, добавив точечные экземпляры.
  • Если задания небезопасны для повторного выполнения, следует избегать обнаружения.
    • Например, если задание изменяет базу данных во время выполнения, то автоматическое повторное выполнение задания может привести к ошибкам или недопустимым результатам.
  • Если среды выполнения заданий очень длинные, то Spot может быть не очень подходящим.
    • Для длительных процессов вероятность вытеснения спотов и доллара и затраты на время повторных попыток увеличиваются.
    • Однако это тот случай, который может потребовать измерения по конкретному случаю.

Вытеснение / вытеснение

Дополнительные сведения о точечных вытеснениях в Azure см. в политике точечных вытеснений .

У. Может ли CycleCloud отслеживать вытеснения и вытеснения точечных экземпляров?

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

У. Как пользователи получают уведомления о выселении?

A. После вытеснения узла CycleCloud пользователи увидят сообщение журнала в журнале событий пользовательского интерфейса CycleCloud для кластера. Пользователи также могут зарегистрироваться для получения события из CycleCloud через Azure EventGrid после вытеснения точечных экземпляров.

  • Пользователи могут проверить уведомление о вытеснения на компьютере через 30 секунд до вытеснения. Дополнительные сведения о регистрации события см. в разделе "Запланированные события ".
  • Как правило, вытеснение должно рассматриваться как извлечение подключаемого модуля на локальном компьютере, и оно должно обрабатываться одними и теми же способами.
  • ВАЖНО Обработчики событий не должны признать событие точечных вытеснений, так как обработчик событий Cyclecloud может не получать событие, если оно подтверждено.

У. Как часто происходит вытеснение?

A. Скорость вытеснения весьма переменная и в значительной степени зависит от изменений спроса во всем регионе.

У. Почему экземпляры вытеснять?

A. Точечные виртуальные машины не гарантируют доступность и могут вытеснить их в любое время. Дополнительные сведения см. в документации по точечным виртуальным машинам . Если nodearray установил, MaxPrice экземпляры будут вытеснимы, если цена на точечные MaxPriceзначения выше. Это, как правило, редко, так как цена на месте движется очень медленно. Ниже приведены некоторые сценарии, которые могут вызвать вытеснение:

  1. Сокращение точечных ресурсов по мере увеличения спроса на регулярные виртуальные машины с приоритетом.
  2. События уровня платформы, такие как плановое обслуживание оборудования.

Как влияет мой рабочий процесс на вытеснение?

У. Что происходит с заданиями при вытеснением точечных экземпляров?

A. Если задания не закодированы для обработки уведомления о вытеснения 30 секунд и соответствующим образом обработать его, узел просто завершается и задание завершается сбоем (и, надеюсь, повторная попытка).

У. Удаляются ли узлы из кластера?

A. Да, узлы будут очищены в пользовательском интерфейсе CycleCloud. В поддерживаемых планировщиках узлы также будут очищены в планировщике.

У. Нужно ли повторно запускать задания?

A. Как правило, планировщик выполняет повторную попытку или повторное выполнение заданий, которые вытесняя. Однако многие классы заданий не терпимы к повторным попыткам (например, если они записывают частичные данные в постоянное хранилище при выполнении). Эти задания могут быть не подходящими для выполнения на точечных экземплярах.

У. Можно ли использовать сочетание точечных и постоянных виртуальных машин с приоритетом?

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

  • Разделение точечных и Regular-Priority виртуальных машин на отдельные очереди в планировщике.
    • Эта конфигурация позволяет отправителем легко ориентироваться на задания по соответствующему типу виртуальной машины.
  • Создайте один большой пул ресурсов с экземплярами Spot и Regular-Priority.
    • Эта конфигурация может быть полезна для высокомасштабируемых рабочих нагрузок, использующих небольшой процент регулярных экземпляров приоритета, чтобы обеспечить прогресс вперед и большую долю точечных операций, чтобы снизить затраты и среду выполнения.

У. Можно ли изменить политику точечных вытеснений для nodearrays CycleCloud?

A. Да. Атрибут можно задать EvictionPolicy непосредственно на nodearray, чтобы изменить политику на Delete или Deallocate (по умолчанию: Delete). Однако в настоящее время это полезно только для пользовательских автомасштабирования, которые обрабатывают освобождение соответствующим образом. Текущие автомасштабировщики Azure CycleCloud ожидают удаления точечных экземпляров после вытеснения.

Поддержка планировщика для точечных вытеснений в CycleCloud

Подробные сведения о реализации CycleCloud для планировщика см. в руководстве по планировщику.

У. Как средство автомасштабирования для моего планировщика обрабатывает вытеснение точечных объектов?

A. Все модули автомасштабирования для встроенных или поддерживаемых планировщиков (HTCondor, GridEngine, PBS Professional, Slurm, LSF) пытаются корректно обрабатывать вытеснения. Как правило, вытеснение экземпляра будет удалено из планировщика, и если спрос на емкость выше, чем новая доступная емкость после вытеснения, средство автомасштабирования заменит экземпляр.

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

У. Что должно произойти с заданиями, которые выполнялись в вытеснилом экземпляре?

A. Это в значительной степени зависит от пользователя, чтобы настроить при отправке задания. Некоторые планировщики, такие как GridEngine, также позволяют настроить действие по умолчанию для каждой очереди. По умолчанию все встроенные развертывания планировщика CycleCloud, за исключением HTCondor, настроены для пометки заданий как неудачные при удалении или неожиданном завершении работы узла. Такое поведение выполняется путем проектирования, так как только пользователь может знать, можно ли безопасно повторить свои задания.