Używanie maszyn wirtualnych typu spot z obciążeniami usługi Batch

Azure Batch oferuje maszyny wirtualne typu spot, aby zmniejszyć koszty obciążeń usługi Batch. Maszyny wirtualne typu spot umożliwiają korzystanie z nowych typów obciążeń usługi Batch, umożliwiając korzystanie z dużej ilości mocy obliczeniowej na potrzeby niskich kosztów.

Maszyny wirtualne typu spot wykorzystują nadwyżkę pojemności na platformie Azure. Po określeniu maszyn wirtualnych typu spot w pulach Azure Batch można użyć tej nadwyżki, jeśli jest dostępna.

Kompromis dotyczący używania maszyn wirtualnych typu Spot polega na tym, że te maszyny wirtualne mogą nie zawsze być dostępne lub w dowolnym momencie mogą zostać wywłaszczone w zależności od dostępnej pojemności. Z tego powodu maszyny wirtualne typu spot są najbardziej odpowiednie dla obciążeń przetwarzania wsadowego i asynchronicznego, w których czas ukończenia zadania jest elastyczny, a praca jest dystrybuowana na wielu maszynach wirtualnych.

Maszyny wirtualne typu spot są oferowane w obniżonej cenie w porównaniu z dedykowanymi maszynami wirtualnymi. Aby dowiedzieć się więcej o cenach, zobacz Cennik usługi Batch.

Różnice między maszynami wirtualnymi typu spot i maszynami wirtualnymi o niskim priorytcie

Usługa Batch oferuje dwa typy maszyn wirtualnych o niskich kosztach:

  • Maszyny wirtualne typu spot— nowoczesna oferta dla całej platformy Azure również dostępna jako maszyny wirtualne z jednym wystąpieniem lub Virtual Machine Scale Sets.
  • Maszyny wirtualne o niskim priorytcie— starsza wersja dostępna tylko za pośrednictwem Azure Batch.

Typ węzła, który otrzymujesz, zależy od trybu alokacji puli konta usługi Batch, który można ustawić podczas tworzenia konta. Konta usługi Batch korzystające z trybu alokacji puli subskrypcji użytkownika zawsze uzyskują maszyny wirtualne typu spot. Konta usługi Batch korzystające z trybu alokacji puli zarządzanej usługi Batch zawsze uzyskują maszyny wirtualne o niskim priorytcie.

Ostrzeżenie

Maszyny wirtualne o niskim priorytcie zostaną wycofane po 30 września 2025 r. Przed rozpoczęciem migracji do maszyn wirtualnych typu spot w usłudze Batch należy przeprowadzić migrację do maszyn wirtualnych typu spot .

Maszyny wirtualne typu spot platformy Azure i maszyny wirtualne o niskim priorytetu usługi Batch są podobne, ale mają kilka różnic w zachowaniu.

Maszyny wirtualne typu spot Maszyny wirtualne o niskim priorytecie
Obsługiwane konta usługi Batch Konta usługi Batch w subskrypcji użytkownika Konta usługi Batch zarządzane przez usługę Batch
Obsługiwane konfiguracje puli usługi Batch Konfiguracja maszyny wirtualnej Konfiguracja maszyny wirtualnej i konfiguracja usługi w chmurze (przestarzałe)
Dostępne regiony Wszystkie regiony obsługujące maszyny wirtualne typu spot Wszystkie regiony z wyjątkiem platformy Microsoft Azure obsługiwane przez firmę 21Vianet
Uprawnienia klientów Niedostępne dla niektórych typów ofert subskrypcji. Zobacz więcej na temat ograniczeń typu spot. Dostępne dla wszystkich klientów usługi Batch
Możliwe przyczyny eksmisji Pojemność Pojemność
Model cen Rabaty zmienne względem standardowych cen maszyn wirtualnych Stałe rabaty względem standardowych cen maszyn wirtualnych
Model przydziału Z zastrzeżeniem limitów przydziału rdzeni w ramach subskrypcji Z zastrzeżeniem limitów przydziału rdzeni na koncie usługi Batch
Umowa SLA dotycząca dostępności Brak Brak

Obsługa usługi Batch dla maszyn wirtualnych typu spot

Azure Batch oferuje kilka możliwości, które ułatwiają korzystanie z maszyn wirtualnych typu spot i korzystanie z nich:

  • Pule usługi Batch mogą zawierać zarówno dedykowane maszyny wirtualne, jak i maszyny wirtualne typu spot. Liczbę każdego typu maszyny wirtualnej można określić podczas tworzenia lub zmieniania puli w dowolnym momencie dla istniejącej puli przy użyciu jawnej operacji zmiany rozmiaru lub przy użyciu autoskalowania. Przesyłanie zadań i zadań może pozostać niezmienione, niezależnie od typów maszyn wirtualnych w puli. Można również skonfigurować pulę, aby całkowicie używać maszyn wirtualnych typu spot do uruchamiania zadań tak tanie, jak to możliwe, ale uruchamiać dedykowane maszyny wirtualne, jeśli pojemność spadnie poniżej minimalnego progu, aby utrzymać uruchomione zadania.
  • Pule usługi Batch automatycznie szukają docelowej liczby maszyn wirtualnych typu spot. Jeśli maszyny wirtualne są wywłaszczone lub niedostępne, usługa Batch podejmie próbę zastąpienia utraconej pojemności i powróci do miejsca docelowego.
  • Po przerwaniu zadań usługa Batch wykrywa i automatycznie ponownie zapisuje zadania w kolejce do ponownego uruchomienia.
  • Maszyny wirtualne typu spot mają oddzielny limit przydziału procesorów wirtualnych, który różni się od tego dla dedykowanych maszyn wirtualnych. Limit przydziału maszyn wirtualnych typu spot jest wyższy niż limit przydziału dla dedykowanych maszyn wirtualnych, ponieważ maszyny wirtualne typu spot kosztują mniej. Aby uzyskać więcej informacji, zobacz Batch service quotas and limits (Limity i limity usługi Batch).

Zagadnienia i przypadki użycia

Wiele obciążeń usługi Batch jest dobrym rozwiązaniem dla maszyn wirtualnych typu spot. Rozważ użycie maszyn wirtualnych typu spot, gdy zadania są podzielone na wiele zadań równoległych lub gdy masz wiele zadań skalowanych w poziomie i rozproszonych na wielu maszynach wirtualnych.

Oto kilka przykładów przypadków użycia przetwarzania wsadowego, które są odpowiednie dla maszyn wirtualnych typu spot:

  • Programowanie i testowanie: w szczególności w przypadku opracowania rozwiązań na dużą skalę można zrealizować znaczne oszczędności. Wszystkie typy testów mogą przynieść korzyści, ale testy obciążeniowe na dużą skalę i testowanie regresji są doskonałymi zastosowaniami.
  • Uzupełnienie pojemności na żądanie: maszyny wirtualne typu spot mogą służyć do uzupełniania regularnych dedykowanych maszyn wirtualnych. Gdy są dostępne, zadania mogą być skalowane i w związku z tym wykonywane szybciej w przypadku niższych kosztów; gdy jest niedostępna, punkt odniesienia dedykowanych maszyn wirtualnych pozostaje dostępny.
  • Elastyczny czas wykonywania zadania: jeśli w zadaniach czasowych trzeba ukończyć elastyczność, potencjalne spadki pojemności mogą być tolerowane. Jednak dzięki dodaniu maszyn wirtualnych typu spot zadania są często uruchamiane szybciej i w przypadku niższych kosztów.

Pule usługi Batch można skonfigurować do używania maszyn wirtualnych typu spot na kilka sposobów:

  • Pula może używać tylko maszyn wirtualnych typu spot. W takim przypadku usługa Batch odzyskuje wszelkie wywłaszczone pojemności, gdy jest dostępna. Ta konfiguracja jest najtańszym sposobem wykonywania zadań.
  • Maszyny wirtualne typu spot mogą być używane z stałym punktem odniesienia dedykowanych maszyn wirtualnych. Stała liczba dedykowanych maszyn wirtualnych zapewnia, że zawsze istnieje pewna pojemność, aby zachować postęp zadania.
  • Pula może używać dynamicznej kombinacji dedykowanych i spot maszyn wirtualnych, dzięki czemu tańsze maszyny wirtualne typu Spot są używane wyłącznie w przypadku dostępności, ale w razie potrzeby pełne dedykowane maszyny wirtualne są skalowane w górę. Ta konfiguracja zapewnia minimalną ilość dostępnej pojemności, aby zachować postęp zadań.

Podczas planowania korzystania z maszyn wirtualnych typu spot należy pamiętać o następujących rozwiązaniach:

  • Aby zmaksymalizować wykorzystanie nadwyżkowej pojemności na platformie Azure, odpowiednie zadania można skalować w poziomie.
  • Czasami maszyny wirtualne mogą nie być dostępne lub są wywłaszczone, co powoduje zmniejszenie pojemności zadań i może prowadzić do przerwania zadań i ponownego uruchamiania.
  • Zadania z krótszym czasem wykonywania zwykle działają najlepiej z maszynami wirtualnymi typu spot. Zadania z dłuższymi zadaniami mogą mieć wpływ na więcej w przypadku przerwania. Jeśli długotrwałe zadania implementują punkty kontrolne w celu zapisania postępu podczas wykonywania, ten wpływ może zostać zmniejszony.
  • Długotrwałe zadania MPI korzystające z wielu maszyn wirtualnych nie są dobrze odpowiednie dla maszyn wirtualnych typu spot, ponieważ jedna z wywłaszczonej maszyny wirtualnej może prowadzić do ponownego uruchomienia całego zadania.
  • Węzły typu spot mogą być oznaczone jako bezużyteczne, jeśli reguły sieciowej grupy zabezpieczeń są niepoprawnie skonfigurowane.

Tworzenie pul i zarządzanie nimi za pomocą maszyn wirtualnych typu spot

Pula usługi Batch może zawierać zarówno dedykowane, jak i spot maszyny wirtualne (nazywane również węzłami obliczeniowymi). Można ustawić docelową liczbę węzłów obliczeniowych dla dedykowanych i spot maszyn wirtualnych. Docelowa liczba węzłów określa liczbę maszyn wirtualnych, które mają być w puli.

Poniższy przykład tworzy pulę przy użyciu maszyn wirtualnych platformy Azure, w tym przypadku maszyn wirtualnych z systemem Linux z celem 5 dedykowanych maszyn wirtualnych i 20 maszyn wirtualnych typu 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);

Bieżącą liczbę węzłów dla dedykowanych i spot maszyn wirtualnych można uzyskać:

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

Węzły puli mają właściwość wskazującą, czy węzeł jest dedykowaną maszyną wirtualną typu spot:

bool? isNodeDedicated = poolNode.IsDedicated;

Maszyny wirtualne typu spot mogą czasami zostać wywłaszczone. Gdy wystąpi wywłaszczanie, zadania, które były uruchomione na wstępnie wywłaszczone maszyny wirtualne węzła, są ponownie kolejkowane i uruchamiane ponownie po powrocie pojemności.

W przypadku pul konfiguracji maszyny wirtualnej usługa Batch wykonuje również następujące zachowania:

  • Wywłaszczone maszyny wirtualne mają swój stan zaktualizowany do wywłaszczonego.
  • Maszyna wirtualna jest skutecznie usuwana, co prowadzi do utraty jakichkolwiek danych przechowywanych lokalnie na maszynie wirtualnej.
  • Operacja węzłów listy w puli nadal zwraca wywłaszczone węzły.
  • Pula stale próbuje osiągnąć docelową liczbę dostępnych węzłów typu Spot. Po znalezieniu pojemności zastępczej węzły przechowują swoje identyfikatory, ale są ponownie inicjowane, przechodząc przez proces Tworzenia i uruchamiania stanów, zanim będą dostępne do planowania zadań.
  • Liczby wywłaszczania są dostępne jako metryka w Azure Portal.

Skalowanie pul zawierających maszyny wirtualne typu spot

Podobnie jak w przypadku pul składających się wyłącznie z dedykowanych maszyn wirtualnych, można skalować pulę zawierającą maszyny wirtualne typu Spot, wywołując Resize metodę lub używając autoskalowania.

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

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

Formuła automatycznego skalowania puli obsługuje maszyny wirtualne typu spot w następujący sposób:

  • Możesz pobrać 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 wywłaszczonym i umożliwia skalowanie w górę lub w dół liczby dedykowanych węzłów w zależności od liczby wstępnie wyrzuconych węzłów, które są niedostępne.

Konfigurowanie zadań i zadań

Zadania i zadania mogą wymagać dodatkowej konfiguracji dla węzłów typu Spot:

  • Właściwość JobManagerTask zadania ma AllowLowPriorityNode właściwość . Jeśli ta właściwość ma wartość true, zadanie menedżera zadań można zaplanować w węźle dedykowanym lub typu spot. Jeśli jest to fałsz, zadanie menedżera zadań jest zaplanowane tylko do dedykowanego węzła.
  • Zmienna AZ_BATCH_NODE_IS_DEDICATEDśrodowiskowa jest dostępna dla aplikacji zadań, aby określić, czy jest ona uruchomiona w miejscu, czy w dedykowanym węźle.

Wyświetlanie metryk dla maszyn wirtualnych typu spot

Nowe metryki są dostępne w Azure Portal dla węzłów typu spot. Te metryki to:

  • liczba węzłów Low-Priority
  • liczba rdzeni Low-Priority
  • Wywłaszczone liczby węzłów

Aby wyświetlić te metryki w Azure Portal:

  1. W witrynie Azure Portal przejdź do swojego konta usługi Batch.
  2. Wybierz pozycję Metryki w sekcji Monitorowanie .
  3. Wybierz metryki z listy Metryki .

Ograniczenia

  • Maszyny wirtualne typu spot w usłudze Batch nie obsługują ustawiania maksymalnej ceny i nie obsługują eksmisji opartych na cenach. Można je eksmitować tylko ze względów pojemności.
  • Maszyny wirtualne typu spot są dostępne tylko dla pul konfiguracji maszyn wirtualnych, a nie dla pul konfiguracji usługi w chmurze, które są przestarzałe.
  • Maszyny wirtualne typu spot nie są dostępne dla niektórych chmur, rozmiarów maszyn wirtualnych i typów ofert subskrypcji. Zobacz więcej na temat ograniczeń maszyn wirtualnych typu spot.
  • Obecnie efemeryczny dysk systemu operacyjnego nie jest obsługiwany w przypadku maszyn wirtualnych typu spot z powodu zasad eksmisji zarządzanych przez usługę zatrzymania cofnięcia przydziału.

Następne kroki