Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Batch oferuje maszyny wirtualne typu spot, aby zmniejszyć koszty obciążeń usługi 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.
Maszyny wirtualne typu spot korzystają z nadwyżkowej pojemności w Azure. Ilość dostępnej nadwyżki pojemności różni się w zależności od czynników, takich jak rodzina maszyn wirtualnych, rozmiar maszyny wirtualnej, region i godzina dnia. Po określeniu maszyn wirtualnych typu Spot w pulach, Azure Batch może korzystać z nadmiarowych zasobów, jeśli są dostępne.
Kompromisem w przypadku korzystania z maszyn wirtualnych typu spot jest to, że te maszyny wirtualne nie mają umowy SLA i nie mają gwarancji dostępności. Maszyny wirtualne typu spot można w dowolnym momencie wywłaszać, w tym natychmiast po utworzeniu maszyny wirtualnej. 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.
Jeśli wystąpi przerwanie działania, węzeł Spot zostanie usunięty, a wszystkie zadania, które nie zostały odpowiednio zapisane, zostaną utracone. Tworzenie punktów kontrolnych jest opcjonalne i jest decyzją użytkownika końcowego usługi Batch, czy je zaimplementować. Zadanie usługi Batch, które zostało przerwane z powodu wywłaszczenia, będzie automatycznie ponownie zakolejkowane do wykonania przez inny węzeł obliczeniowy. Przywrócenie wywłaszczonej maszyny wirtualnej przez platformę Azure może nastąpić później, ale będzie podejmowane wyłącznie przez pierwsze 48 godzin po wywłaszczeniu i bez gwarancji, że się powiedzie.
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.
Obsługa zbiorcza dla maszyn wirtualnych Spot
Azure Batch oferuje kilka funkcji, które ułatwiają korzystanie i optymalizację korzyści płynących 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.
- Pule 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 przywrócenia do stanu docelowego.
- Gdy zadania zostaną przerwane, usługa Batch wykrywa to i automatycznie umieszcza zadania z powrotem 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 Limity i kwoty usługi Batch.
Zagadnienia i przypadki użycia
Wiele obciążeń wsadowych dobrze się nadaje do 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 procesów skalowanych i dystrybuowanych na wielu maszynach wirtualnych.
Niektóre przykłady przypadków użycia przetwarzania wsadowego, które są dobrze dopasowane do maszyn wirtualnych Spot, to:
- Programowanie i testowanie: w szczególności w przypadku opracowania rozwiązań na dużą skalę można zrealizować znaczne oszczędności. 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.
- Elastyczny czas wykonywania zadania: Jeśli istnieje elastyczność w czasie, w jakim zadania muszą być ukończone, to można tolerować potencjalne spadki wydajności. Jednak dzięki dodaniu maszyn wirtualnych typu Spot zadania są często uruchamiane szybciej i w celu uzyskania niższych kosztów.
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. Ta konfiguracja zapewnia minimalną ilość dostępnej pojemności, aby utrzymać postęp zadań.
Miej na uwadze następujące praktyki podczas planowania użycia maszyn wirtualnych Spot VMs:
- Aby zmaksymalizować wykorzystanie nadmiarowej pojemności w Azure, odpowiednie zadania mogą skalować się horyzontalnie.
- 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.
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. Usługa 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.
- Operacja listowania węzłów w puli nadal zwraca wywłaszczone węzły.
- 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ń.
- Zestawienia dotyczące wywłaszczania są dostępne jako jedna z metryk w portalu Azure.
Azure Batch SDK
W poniższym przykładzie utworzono pulę przy użyciu maszyn wirtualnych Azure, w tym przypadku maszyn wirtualnych z systemem Linux, z docelową liczbą 5 dedykowanych maszyn wirtualnych i 20 maszyn wirtualnych Spot.
ImageReference imageRef = new ImageReference(
publisher: "Canonical",
offer: "ubuntu-24_04-lts",
sku: "server",
version: "latest");
// Create the pool
VirtualMachineConfiguration virtualMachineConfiguration =
new VirtualMachineConfiguration("batch.node.ubuntu 24.04", imageRef);
pool = batchClient.PoolOperations.CreatePool(
poolId: "vmpool",
targetDedicatedComputeNodes: 5,
targetLowPriorityComputeNodes: 20,
virtualMachineSize: "Standard_D4s_v3",
virtualMachineConfiguration: virtualMachineConfiguration);
Możesz uzyskać aktualną 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 maszyną wirtualną dedykowaną czy typu Spot.
bool? isNodeDedicated = poolNode.IsDedicated;
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);
Azure CLI
Utwórz nową pulę z wystąpieniami typu spot:
az batch pool create \
--id "vmpool" \
--vm-size "Standard_D4s_v3" \
--target-dedicated-nodes 5 \
--target-low-priority-nodes 20 \
--enable-inter-node-communication false \
--image "Canonical:ubuntu-24_04-lts:server" \
--node-agent-sku-id "batch.node.ubuntu 24.04" \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"
Skaluj istniejącą pulę, aby używać wystąpień typu spot:
az batch pool resize \
--pool-id <existing-pool-id> \
--target-dedicated-nodes 5 \
--target-low-priority-nodes 20 \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"
Sprawdź stan puli i alokację węzła
az batch pool show \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com" \
--pool-id <your-pool-id> \
--query "{State:state, CurrentSpotNodes:currentLowPriorityNodes, TargetSpotNodes:scaleSettings.targetLowPriorityNodes, ResizeErrors:resizeErrors}"
Azure PowerShell
Utwórz pulę z wystąpieniami typu spot:
New-AzBatchPool `
-Id "vmpool" `
-VirtualMachineSize "Standard_D4s_v3" `
-TargetDedicatedComputeNodes 5 `
-TargetLowPriorityComputeNodes 20 `
-VirtualMachineImageId "/subscriptions/{subscription}/resourceGroups/{rg}/providers/Microsoft.Compute/images/{image}" `
-BatchContext $context
Zweryfikuj przy użyciu programu PowerShell:
$pool = Get-AzBatchPool -Id "vmpool" -BatchContext $context
$pool | Select-Object Id, VmSize, @{Name="SpotNodes";Expression={$_.TargetLowPriorityComputeNodes}}, State
Azure Portal
W portalu Azure wybierz konto usługi Batch i wyświetl istniejącą pulę lub utwórz nową pulę.
W obszarze Skalowanie wybierz Docelowe dedykowane węzły lub Docelowe węzły typu spot/o niskim priorytecie.
W przypadku istniejącej puli wybierz pulę, a następnie wybierz pozycję Skaluj , aby zaktualizować wymaganą liczbę węzłów typu spot.
Wybierz opcję Zapisz.
Automatyczne skalowanie za pomocą maszyn wirtualnych typu spot
Oprócz bezpośredniego ustawiania docelowej liczby maszyn wirtualnych można opcjonalnie zdefiniować formułę autoskalowania dla puli. 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.
Aby uzyskać więcej informacji, zobacz Przewodnik dotyczący automatycznego skalowania usługi Batch.
Konfiguruj zadania i czynności
Prace i zadania mogą wymagać dodatkowej konfiguracji dla węzłów Spot.
- Właściwość
JobManagerTaskzadania 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ł. - Zmienna
AZ_BATCH_NODE_IS_DEDICATEDśrodowiskowa jest dostępna dla aplikacji wykonującej zadania, aby mogła określić, czy jest ona uruchomiona na instancji Spot, czy w dedykowanym węźle.
Wyświetl metryki dla Spot VMs
Nowe metryki są dostępne w portalu Azure dla węzłów typu 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:
- Przejdź do konta usługi Batch w portalu Azure.
- Wybierz Metryki z sekcji Monitorowanie.
- Wybierz metryki, których potrzebujesz z listy Metryki .
Limitations
- Spot VMs w usłudze Batch nie obsługują ustawiania maksymalnej ceny i nie obsługują eksmisji na podstawie ceny. Można je eksmitować tylko z powodu ograniczeń pojemnościowych.
- Maszyny wirtualne typu Spot nie są dostępne dla niektórych chmur, rozmiarów maszyn wirtualnych i rodzajó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 Spot ze względu na politykę eksmisji zarządzaną przez usługę Stop-Deallocate.
Dalsze kroki
- Dowiedz się więcej o schemacie działania usługi Batch oraz o podstawowych zasobach, takich jak pule, węzły, zadania i operacje.
- Dowiedz się o interfejsach API i narzędziach Batch dostępnych do tworzenia rozwiązań Batch.
- Aby uzyskać więcej informacji na temat maszyn wirtualnych typu spot w Azure, w tym sposobu wyświetlania historycznych cen i stawek eksmisji, zobacz Spot Virtual Machines.