Używanie maszyn wirtualnych typu spot z usługą Batch

Azure Batch oferuje maszyny wirtualne typu spot w celu zmniejszenia kosztów obciążeń usługi Batch. Maszyny wirtualne typu spot umożliwiają korzystanie z nowych typów obciążeń usługi Batch przez umożliwienie użycia dużej ilości mocy obliczeniowej w celu uzyskania 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 mogą używać tej nadwyżki, jeśli jest dostępna.

Kompromisem za korzystanie z maszyn wirtualnych typu spot jest to, że te maszyny wirtualne mogą nie zawsze być dostępne do przydzieleniu lub mogą zostać wywłaszczone w dowolnym momencie, 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 uzyskać szczegółowe informacje 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 tanich, wstępnie opróżniających maszyn wirtualnych:

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

Typ uzyskiwanego węzła 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 w usłudze Batch zawsze uzyskują maszyny wirtualne o niskim priorytcie.

Maszyny wirtualne typu spot platformy Azure i maszyny wirtualne o niskim priorytcie 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 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 — Chiny 21Vianet
Uprawnienia klientów Niektóre typy ofert subskrypcji są niedostępne. 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 zmiennych względem standardowych cen maszyn wirtualnych Stałe rabaty względem standardowych cen maszyn wirtualnych
Model przydziału Podlega limitom przydziału rdzeni w ramach subskrypcji Podlega limitom 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 automatycznego skalowania. 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 taniej, jak to możliwe, ale uruchamiać dedykowane maszyny wirtualne, jeśli pojemność spadnie poniżej progu minimalnego, aby utrzymać uruchamianie zadań.
  • 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.
  • Gdy zadania zostaną przerwane, usługa Batch wykrywa i automatycznie ponownie zapisuje zadania w kolejce, aby uruchomić je ponownie.
  • 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 przydziału 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ż ich użycie, gdy zadania są podzielone na wiele zadań równoległych lub gdy masz wiele zadań, które są skalowane w poziomie i dystrybuowane na wielu maszynach wirtualnych.

Oto kilka przykładów przypadków użycia przetwarzania wsadowego odpowiedniego do użycia 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 testowanie obciążenia 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 zwykłych dedykowanych maszyn wirtualnych. Gdy są dostępne, zadania mogą być skalowane i w związku z tym wykonywane szybciej w celu uzyskania niższych kosztów; jeśli nie jest dostępna, punkt odniesienia dedykowanych maszyn wirtualnych pozostaje dostępny.
  • Elastyczny czas wykonywania zadania: jeśli w zadaniach czasowych trzeba wykonać elastyczność, potencjalne spadki pojemności mogą być tolerowane; jednak dodanie zadań maszyn wirtualnych typu spot jest często uruchamiane szybciej i w celu uzyskania 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 wszystkie wywłaszczonej pojemności, gdy jest dostępna. Ta konfiguracja jest najtańszym sposobem wykonywania zadań.
  • Maszyny wirtualne typu spot mogą być używane z ustalonym punktem odniesienia dedykowanych maszyn wirtualnych. Stała liczba dedykowanych maszyn wirtualnych gwarantuje, że zawsze istnieje pewna pojemność, aby zapewnić postęp zadania.
  • Pula może używać dynamicznej kombinacji dedykowanych i typu spot maszyn wirtualnych, dzięki czemu tańsze maszyny wirtualne typu spot są używane wyłącznie wtedy, gdy są dostępne, ale w razie potrzeby dedykowane maszyny wirtualne są skalowane w górę. Ta konfiguracja zapewnia minimalną ilość dostępnej pojemności, aby utrzymać 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 przerw w działaniu 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, jeśli zostaną przerwane. 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 nadają się do używania maszyn wirtualnych typu spot, ponieważ jedna 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ć dedykowane i spot maszyny wirtualne (nazywane również węzłami obliczeniowymi). Możesz ustawić docelową liczbę węzłów obliczeniowych dla dedykowanych i typu spot maszyn wirtualnych. Docelowa liczba węzłów określa liczbę maszyn wirtualnych, które mają być w puli.

Aby na przykład utworzyć pulę przy użyciu maszyn wirtualnych platformy Azure (w tym przypadku maszyn wirtualnych z systemem Linux) z miejscem docelowym 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 typu 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ą lub maszyną wirtualną typu spot:

bool? isNodeDedicated = poolNode.IsDedicated;

Maszyny wirtualne mogą od czasu do czasu zostać wywłaszczone. W przypadku wywłaszczania zadania uruchomione na wstępnie wyrzuconych maszyn wirtualnych węzłów są ponownie kolejkowane i uruchamiane ponownie.

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

  • Wywłaszczone maszyny wirtualne mają zaktualizowany stan do wywłaszczanego.
  • Maszyna wirtualna jest skutecznie usuwana, co prowadzi do utraty jakichkolwiek danych przechowywanych lokalnie na maszynie wirtualnej.
  • Operacja węzłów listy w puli będzie 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 metodę Resize lub używając autoskalowania.

Operacja zmiany rozmiaru puli przyjmuje drugi opcjonalny parametr, który aktualizuje wartość elementu 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 wywłaszczone 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 właściwość AllowLowPriorityNode . 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 uruchomiona na 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
  • Liczba wywłaszczonego węzła

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 wybrane 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. Mogą być eksmitowane tylko ze względów pojemności.
  • Maszyny wirtualne typu spot są dostępne tylko dla pul konfiguracji maszyny wirtualnej, 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ń typu spot.
  • Obecnie efemeryczne dyski systemu operacyjnego nie są obsługiwane z maszynami wirtualnymi typu spot z powodu zasad eksmisji zarządzanych przez usługę zatrzymania przydziału.

Następne kroki