Udostępnij przez


Używaj maszyn wirtualnych Spot z obciążeniami wsadowymi.

Azure Batch oferuje maszyny wirtualne Spot, aby zmniejszyć koszty obciążeń roboczych w Batch. Spot VMs umożliwiają nowe typy obciążeń Batch dzięki możliwości wykorzystania dużej ilości mocy obliczeniowej przy niskim koszcie.

Spot VMs take advantage of surplus capacity in Azure. When you specify Spot VMs in your pools, Azure Batch can use this surplus, when available.

The tradeoff for using Spot VMs is that those VMs might not always be available, or they might get preempted at any time, depending on available capacity. For this reason, Spot VMs are most suitable for batch and asynchronous processing workloads where the job completion time is flexible and the work is distributed across many VMs.

Maszyny wirtualne typu Spot są oferowane w niższej cenie w porównaniu do dedykowanych maszyn wirtualnych. Aby dowiedzieć się więcej o cenach, zobacz Batch pricing.

Różnice między Spot a maszynami wirtualnymi o niskim priorytecie

Batch oferuje dwa typy niskokosztowych preemptowalnych maszyn wirtualnych (VM).

  • Spot VMs, nowoczesna oferta w ramach całej platformy Azure, dostępna również jako maszyny wirtualne w jednym egzemplarzu lub zestawy skalowania maszyn wirtualnych.
  • Wirtualne maszyny o niskim priorytecie, oferta przestarzała dostępna tylko w ramach usługi Azure Batch.

Rodzaj węzła, który otrzymujesz, zależy od trybu alokacji puli w koncie Batch, który można ustawić podczas tworzenia konta. Konta batch, które korzystają z trybu alokacji puli subskrypcji użytkownika, zawsze otrzymują maszyny wirtualne Spot. Konta Batch, które używają trybu alokacji zasobów puli zarządzanej przez Batch, zawsze otrzymują maszyny wirtualne o niskim priorytecie.

Ostrzeżenie

Maszyny wirtualne o niskim priorytecie zostaną wycofane po 30 września 2025. Proszę przenieść się na Spot VMs w Batch przed tym terminem.

Maszyny wirtualne Azure Spot i maszyny wirtualne Batch o niskim priorytecie są podobne, ale różnią się nieco w zachowaniu.

Spot VMs Low-priority VMs
Obsługiwane konta Batch Konta wsadowe subskrypcji użytkownika Konta Batch zarządzane przez Batch
Obsługiwane konfiguracje puli Batch Virtual Machine Configuration Virtual Machine Configuration and Cloud Service Configuration (deprecated)
Available regions All regions that support Spot VMs All regions except Microsoft Azure operated by 21Vianet
Kwalifikowalność klienta Niedostępne dla niektórych typów ofert subskrypcyjnych. Zobacz więcej o ograniczeniach punktowych. Available for all Batch customers
Możliwe powody eksmisji Pojemność Capacity
Pricing Model Zmienne rabaty w stosunku do standardowych cen na maszyny wirtualne (VM) Fixed discounts relative to standard VM prices
Quota model Z zastrzeżeniem podstawowych limitów w ramach subskrypcji. Subject to core quotas on your Batch account
Availability SLA None None

Obsługa zbiorcza dla maszyn wirtualnych Spot

Azure Batch oferuje kilka możliwości, które ułatwiają korzystanie i czerpanie korzyści z maszyn wirtualnych typu Spot.

  • Pule wsadowe mogą zawierać zarówno dedykowane maszyny wirtualne (VM), jak i maszyny wirtualne Spot. Liczba każdego typu maszyny wirtualnej (VM) może być określona podczas tworzenia puli, a także zmieniana w dowolnym momencie dla istniejącej puli, poprzez wykonanie samodzielnej operacji zmiany rozmiaru lub skorzystanie z funkcji automatycznego skalowania. Nadsyłanie zadań i projektów może pozostać bez zmian, niezależnie od rodzajów maszyn wirtualnych w puli. Możesz także skonfigurować pulę do pełnego wykorzystania maszyn wirtualnych Spot, aby uruchamiać zadania jak najtaniej, ale włączać dedykowane maszyny wirtualne, gdy pojemność spadnie poniżej minimalnego progu, aby zadania nadal działały.
  • Batch pools automatically seek the target number of Spot VMs. If VMs are preempted or unavailable, Batch attempts to replace the lost capacity and return to the target.
  • When tasks are interrupted, Batch detects and automatically requeues tasks to run again.
  • Spot VMs have a separate vCPU quota that differs from the one for dedicated VMs. The quota for Spot VMs is higher than the quota for dedicated VMs, because Spot VMs cost less. Aby uzyskać więcej informacji, zobacz Limity i kwoty usługi Batch.

Considerations and use cases

Many Batch workloads are a good fit for Spot VMs. Consider using Spot VMs when jobs are broken into many parallel tasks, or when you have many jobs that are scaled out and distributed across many VMs.

Niektóre przykłady przypadków użycia przetwarzania wsadowego, które są dobrze dopasowane do maszyn wirtualnych Spot, to:

  • Development and testing: In particular, if large-scale solutions are being developed, significant savings can be realized. Wszystkie rodzaje testów mogą przynieść korzyści, ale testy obciążeniowe na dużą skalę i testy regresji są doskonałym zastosowaniem.
  • Uzupełnianie pojemności na żądanie: Spot VMs mogą być używane do uzupełniania regularnych dedykowanych VMs. Gdy są dostępne, zadania mogą się skalować i dlatego zakończyć szybciej przy niższych kosztach; gdy nie są dostępne, podstawowe dedykowane maszyny wirtualne pozostają dostępne.
  • Flexible job execution time: If there's flexibility in the time jobs have to complete, then potential drops in capacity can be tolerated. However, with the addition of Spot VMs, jobs frequently run faster and for a lower cost.

Zestawy maszyn wirtualnych w trybie Batch można skonfigurować do korzystania z maszyn wirtualnych Spot na kilka sposobów.

  • Basen może używać tylko maszyn wirtualnych Spot. W tym przypadku Batch odzyskuje każdą przerwaną pojemność, gdy tylko jest dostępna. Ta konfiguracja jest najtańszym sposobem na wykonywanie zadań.
  • Maszyny wirtualne typu Spot można używać z ustaloną bazą maszyn dedykowanych. Ustalona liczba dedykowanych maszyn wirtualnych zapewnia, że zawsze jest dostępna pewna pojemność, aby kontynuować wykonywanie zadania.
  • Pula może korzystać z dynamicznej mieszanki maszyn wirtualnych dedykowanych i Spot, co oznacza, że tańsze maszyny Spot są używane wyłącznie, gdy są dostępne, natomiast w pełni płatne maszyny dedykowane skalują się w razie potrzeby. This configuration keeps a minimum amount of capacity available to keep jobs progressing.

Miej na uwadze następujące praktyki podczas planowania użycia maszyn wirtualnych Spot VMs:

  • Aby zmaksymalizować wykorzystanie nadwyżki mocy w Azure, odpowiednie zadania mogą zostać skalowane poziomo.
  • Czasami maszyny wirtualne (VM) mogą być niedostępne lub przejmowane, co skutkuje zmniejszoną przepustowością dla pracy i może prowadzić do przerwania zadań oraz ich ponownego uruchamiania.
  • Zadania o krótszym czasie wykonania najlepiej działają z maszynami wirtualnymi Spot. Zadania na stanowiskach z dłuższymi czynnościami mogą być bardziej dotknięte w przypadku przerwania. Jeśli zadania długoterminowe implementują punkt kontrolny, aby zapisywać postępy podczas ich wykonywania, wpływ ten może zostać zredukowany.
  • Długotrwałe zadania MPI, które wykorzystują wiele maszyn wirtualnych, nie są dobrze dostosowane do Spot VMs, ponieważ wywłaszczenie jednej maszyny wirtualnej może spowodować konieczność ponownego uruchomienia całego zadania.
  • Węzły spot mogą zostać oznaczone jako nieużyteczne, jeśli zasady grupy zabezpieczeń sieciowych (NSG) są skonfigurowane nieprawidłowo.

Twórz i zarządzaj pulami z maszynami wirtualnymi Spot

Pula usługi Batch może zawierać zarówno dedykowane, jak i Spot VM (znane również jako węzły obliczeniowe). Możesz ustawić docelową liczbę węzłów obliczeniowych zarówno dla dedykowanych, jak i Spot VM. Docelowa liczba węzłów określa liczbę maszyn wirtualnych, które chcesz mieć w puli.

Następujący przykład tworzy pulę z użyciem maszyn wirtualnych Azure, w tym przypadku maszyn wirtualnych Linux, z celem 5 dedykowanych maszyn wirtualnych i 20 maszyn wirtualnych Spot.

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);

You can get the current number of nodes for both dedicated and Spot VMs:

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

Pool nodes have a property to indicate if the node is a dedicated or Spot VM:

bool? isNodeDedicated = poolNode.IsDedicated;

Maszyny wirtualne Spot mogą być czasami przerwane. Gdy dochodzi do przerwania, zadania, które były uruchomione na maszynach wirtualnych w uprzednio przerwanym węźle, są ponownie kolejkowane i uruchamiane, gdy pojemność powraca.

Dla puli Konfiguracji Maszyn Wirtualnych, Batch wykonuje również następujące zachowania:

  • Stan preemptowanych maszyn wirtualnych został zaktualizowany na Przejęty.
  • Maszyna wirtualna (VM) jest skutecznie usunięta, co prowadzi do utraty wszelkich danych przechowywanych lokalnie na tej maszynie wirtualnej.
  • A list nodes operation on the pool still returns the preempted nodes.
  • Zasób ciągle podejmuje próbę osiągnięcia docelowej liczby dostępnych węzłów Spot. Gdy zostanie znalezione zastępcze zasoby, węzły zachowują swoje identyfikatory, ale są ponownie inicjowane, przechodząc przez stany Tworzenie i Uruchamianie, zanim będą dostępne do planowania zadań.
  • Liczba wywłaszczeń jest dostępna jako metryka w portalu Azure.

Skaluje pule zawierające Spot VMs

Podobnie jak w przypadku pul składających się wyłącznie z dedykowanych maszyn wirtualnych, możliwe jest skalowanie puli zawierającej maszyny wirtualne Spot poprzez wywołanie metody Resize lub użycie autoskalowania.

Operacja zmiany rozmiaru puli przyjmuje drugi opcjonalny parametr, który aktualizuje wartość targetLowPriorityNodes:

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

Wzór automatycznego skalowania puli obsługuje maszyny wirtualne typu Spot w następujący sposób:

  • Możesz uzyskać lub ustawić wartość zmiennej zdefiniowanej przez usługę $TargetLowPriorityNodes.
  • Możesz uzyskać wartość zmiennej zdefiniowanej przez usługę $CurrentLowPriorityNodes.
  • Możesz uzyskać wartość zmiennej zdefiniowanej przez usługę $PreemptedNodeCount. Ta zmienna zwraca liczbę węzłów w stanie wstrzymanym i pozwala zwiększyć lub zmniejszyć liczbę dedykowanych węzłów, w zależności od liczby niedostępnych węzłów wstrzymanych.

Konfiguruj zadania i czynności

Prace i zadania mogą wymagać dodatkowej konfiguracji dla węzłów Spot.

  • Właściwość JobManagerTask zadania ma właściwość AllowLowPriorityNode. Gdy ta właściwość jest ustawiona na prawdę, zadanie managera zadań może być zaplanowane na dedykowanym węźle lub węźle Spot. Jeśli jest fałszem, zadanie menedżera zadań jest zaplanowane wyłącznie na dedykowany węzeł.
  • The AZ_BATCH_NODE_IS_DEDICATEDenvironment variable is available to a task application so that it can determine whether it's running on a Spot or on a dedicated node.

Wyświetl metryki dla Spot VMs

Nowe metryki są dostępne w Azure portal dla węzłów Spot. Te metryki to:

  • Liczba węzłów o niskim priorytecie
  • Liczba rdzeni o niskim priorytecie
  • Liczba przejętych węzłów

Aby wyświetlić te metryki w portalu Azure:

  1. Przejdź do swojego konta Batch w portalu Azure.
  2. Wybierz Metryki z sekcji Monitorowanie.
  3. Select the metrics you desire from the Metric list.

Limitations

  • Spot VMs w usłudze Batch nie obsługują ustawiania maksymalnej ceny i nie obsługują eksmisji na podstawie ceny. They can only be evicted for capacity reasons.
  • Spot VMs are only available for Virtual Machine Configuration pools and not for Cloud Service Configuration pools, which are deprecated.
  • Maszyny wirtualne typu Spot nie są dostępne dla niektórych chmur, rozmiarów maszyn wirtualnych i rodzajów ofert subskrypcji. See more about Spot VM limitations.
  • Currently, ephemeral OS disks aren't supported with Spot VMs due to the service-managed eviction policy of Stop-Deallocate.

Next steps