Używanie maszyn wirtualnych typu spot z obciążeniami usługi Batch
Usługa 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 w celu uzyskania niskich kosztów.
Maszyny wirtualne typu spot korzystają z nadwyżkowej pojemności na platformie Azure. Po określeniu maszyn wirtualnych typu spot w pulach usługa Azure Batch może użyć tej nadwyżki, jeśli jest dostępna.
Kompromisem w przypadku korzystania z maszyn wirtualnych typu spot jest to, ż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 platformy Azure dostępna również jako maszyny wirtualne z jednym wystąpieniem lub zestawy skalowania maszyn wirtualnych.
- Maszyny wirtualne o niskim priorytcie — starsza oferta dostępna tylko za pośrednictwem usługi 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 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 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ługiwanej przez firmę 21Vianet |
Uprawnienia klienta | 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 | Wydajność | Wydajność |
Model cen | Rabaty zmiennych w stosunku do standardowych cen maszyn wirtualnych | Stałe rabaty w stosunku do standardowych cen maszyn wirtualnych |
Model limitu przydziału | Limity przydziału rdzeni w ramach subskrypcji | Podlega podstawowym limitom przydziału na koncie usługi Batch |
Umowa SLA dotycząca dostępności | Brak | Brak |
Obsługa usługi Batch dla maszyn wirtualnych typu spot
Usługa 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 skalowania automatycznego. 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 tanio, 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 podejmuje 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 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 dystrybuowanych 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 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łnienia zwykłych 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; jeśli nie jest dostę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 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 ze stałym punktem odniesienia dedykowanych maszyn wirtualnych. Stała liczba dedykowanych maszyn wirtualnych gwarantuje, ż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 wtedy, gdy są dostępne, ale w pełni wyceniane dedykowane maszyny wirtualne są skalowane w górę w razie potrzeby. 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 mogą być skalowane w poziomie.
- Czasami maszyny wirtualne mogą być niedostę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 są dobrze odpowiednie dla 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ć maszyny wirtualne dedykowane i typu spot (nazywane również węzłami obliczeniowymi). Można ustawić docelową liczbę węzłów obliczeniowych dla maszyn wirtualnych dedykowanych i typu spot. Docelowa liczba węzłów określa liczbę maszyn wirtualnych, które mają być w puli.
W poniższym przykładzie utworzono pulę przy użyciu maszyn wirtualnych platformy Azure, w tym przypadku maszyn wirtualnych z systemem Linux z 5 dedykowanymi maszynami wirtualnymi i 20 maszynami wirtualnymi 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);
Możesz uzyskać bieżącą liczbę węzłów dla maszyn wirtualnych dedykowanych i typu spot:
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 typu spot:
bool? isNodeDedicated = poolNode.IsDedicated;
Maszyny wirtualne typu spot mogą czasami zostać wywłaszczone. W przypadku wywłaszczania zadania uruchomione na wywłaszczonej maszynie wirtualnej 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ą zaktualizowany stan 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 zachowują swoje identyfikatory, ale są ponownie inicjowane, przechodząc przez proces tworzenia i uruchamiania stanów przed udostępnieniem ich do planowania zadań.
- Liczby wywłaszczania są dostępne jako metryka w witrynie 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
$CurrentLowPriorityNodes
zdefiniowanej przez usługę . - Możesz uzyskać wartość zmiennej
$PreemptedNodeCount
zdefiniowanej przez usługę . 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 maAllowLowPriorityNode
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 na miejscu, czy w dedykowanym węźle.
Wyświetlanie metryk dla maszyn wirtualnych typu spot
Nowe metryki są dostępne w witrynie Azure Portal dla węzłów typu spot. Te metryki to:
- Liczba węzłów o niskim priorytcie
- Liczba rdzeni o niskim priorytcie
- Wywłaszczone liczby węzłów
Aby wyświetlić te metryki w witrynie Azure Portal:
- W witrynie Azure Portal przejdź do swojego konta usługi Batch.
- Wybierz pozycję Metryki w sekcji Monitorowanie .
- Wybierz metryki, których potrzebujesz 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 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ń maszyn wirtualnych 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ę stop-deallocate.
Następne kroki
- Dowiedz się więcej o przepływie pracy usługi Batch i zasobach podstawowych, takich jak pule, węzły, zadania i zadania.
- Dowiedz się więcej o interfejsach API i narzędziach usługi Batch umożliwiających tworzenie rozwiązań usługi Batch.
- Zacznij planować przejście z maszyn wirtualnych o niskim priorytcie do maszyn wirtualnych typu spot. Jeśli używasz maszyn wirtualnych o niskim priorytcie z pulami konfiguracji usług Cloud Services (które są przestarzałe), zaplanuj migrację do pul konfiguracji maszyny wirtualnej.