Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby monitorować rozwiązania usługi Azure Batch na dużą skalę i zarządzać nimi, może być konieczne określenie liczby zasobów w różnych stanach. Usługa Azure Batch zapewnia wydajne operacje umożliwiające pobieranie liczników dla zadań usługi Batch i węzłów obliczeniowych. Tych operacji można używać zamiast potencjalnie czasochłonnych zapytań listy, które zwracają szczegółowe informacje o dużych kolekcjach zadań lub węzłów.
Uzyskaj liczbę zadań to zagregowana liczba aktywnych, uruchomionych, ukończonych zadań oraz zadań zakończonych powodzeniem lub niepowodzeniem w ramach zadania. Zliczając zadania w każdym stanie, można łatwo wyświetlić postęp zadania dla użytkownika lub wykryć nieoczekiwane opóźnienia lub błędy, które mogą mieć wpływ na zadanie.
Lista liczby węzłów puli uzyskuje liczbę dedykowanych i spot węzłów obliczeniowych w każdej puli, które znajdują się w różnych stanach: tworzenie, bezczynność, tryb offline, wywłaszczone, ponowne uruchamianie, ponowne tworzenie, uruchamianie i inne. Zliczając węzły w każdym stanie, można określić, kiedy dostępne są odpowiednie zasoby obliczeniowe do uruchamiania zadań i zidentyfikować potencjalne problemy związane z pulami.
Czasami liczby zwracane przez te operacje mogą nie być aktualne. Jeśli musisz mieć pewność, że liczba jest dokładna, użyj zapytania listy, aby zliczyć te zasoby. Lista zapytań umożliwia również uzyskanie informacji o innych zasobach usługi Batch, takich jak aplikacje. Aby uzyskać więcej informacji na temat stosowania filtrów do zapytań list, zobacz Tworzenie zapytań w celu wydajnego wyświetlania zasobów usługi Batch.
Liczba stanów zadania
Operacja Get Zliczanie zadań liczy zadania według następujących statusów.
-
Aktywne: zadanie, które jest w kolejce i gotowe do uruchomienia, ale nie jest obecnie przypisane do żadnego węzła obliczeniowego. Zadanie jest również
active, jeśli jest zależne od zadania nadrzędnego, które nie zostało jeszcze ukończone. -
Uruchomione: zadanie przydzielone do węzła obliczeniowego, ale nie zostało jeszcze zakończone. Zadanie jest liczone jako
runningw przypadku, gdy jego stan topreparinglubrunning, zgodnie zGetinformacjami o zadaniu. - Ukończono: Zadanie, które nie kwalifikuje się już do uruchomienia, ponieważ zakończyło się pomyślnie lub zakończyło się niepowodzeniem, a także wyczerpało limit ponawiania prób.
-
Powodzenie: zadanie, w którym wynikiem wykonania zadania jest
success. Usługa Batch określa, czy zadanie zakończyło się powodzeniem, czy niepowodzeniem, sprawdzającTaskExecutionResultwłaściwość executionInfo . -
Niepowodzenie: zadanie, w którym wynikiem wykonania zadania jest
failure.
Poniższy przykładowy kod platformy .NET przedstawia sposób pobierania liczby zadań według stanu.
var taskCounts = await batchClient.JobOperations.GetJobTaskCountsAsync("job-1");
Console.WriteLine("Task count in active state: {0}", taskCounts.Active);
Console.WriteLine("Task count in preparing or running state: {0}", taskCounts.Running);
Console.WriteLine("Task count in completed state: {0}", taskCounts.Completed);
Console.WriteLine("Succeeded task count: {0}", taskCounts.Succeeded);
Console.WriteLine("Failed task count: {0}", taskCounts.Failed);
Możesz użyć podobnego wzorca dla architektury REST i innych obsługiwanych języków, aby uzyskać liczbę zadań dla zadania.
Liczba stanów węzła
Operacja zliczania liczby węzłów w pulach zlicza węzły obliczeniowe zgodnie z następującymi stanami w każdej z puli. Oddzielne liczby zbiorcze są udostępniane dla dedykowanych węzłów i węzłów Spot w każdej puli.
- Tworzenie: przydzielona na platformę Azure maszyna wirtualna, która jeszcze nie zaczęła dołączać do puli.
- Bezczynność: węzeł obliczeniowy, który jest dostępny i obecnie nie uruchamia żadnych zadań.
- LeavingPool: węzeł opuszczający pulę, ponieważ użytkownik jawnie go usunął lub ponieważ pula zmienia rozmiar lub jest automatycznie skalowana w dół.
- Offline: węzeł, którego usługa Batch nie może używać do planowania nowych zadań.
-
Zajęte: węzeł typu spot, który został usunięty z puli, ponieważ platforma Azure przejęła kontrolę nad maszyną wirtualną. Węzeł
preemptedmożna ponownie zainicjować, gdy dostępna jest zastępcza pojemność typu Spot maszyny wirtualnej. - Ponowne uruchamianie: węzeł, który jest uruchamiany ponownie.
- Przywracanie obrazu systemu: węzeł, w którym ponownie instalowany jest system operacyjny.
- Działanie : węzeł, który wykonuje co najmniej jedno zadanie (inne niż zadanie startowe).
- Uruchamianie: węzeł, w którym jest uruchamiana usługa Batch.
-
StartTaskFailed: węzeł, w którym zadanie uruchamiania nie powiodło się po ponownych próbach i
waitForSuccessjest włączone. Ten węzeł nie może uruchamiać zadań. - Nieznany: węzeł, który utracił kontakt z usługą Batch i którego stan nie jest znany.
- Bezużyteczne: węzeł, który nie może być używany do wykonywania zadań z powodu błędów.
-
WaitingForStartTask: węzeł, na którym jest uruchomione zadanie uruchamiania, ale
waitForSuccessjest włączony i nie został ukończony.
Poniższy fragment kodu w języku C# pokazuje, jak wyświetlić listę liczb węzłów dla wszystkich pul na bieżącym koncie:
foreach (var nodeCounts in batchClient.PoolOperations.ListPoolNodeCounts())
{
Console.WriteLine("Pool Id: {0}", nodeCounts.PoolId);
Console.WriteLine("Total dedicated node count: {0}", nodeCounts.Dedicated.Total);
// Get dedicated node counts in Idle and Offline states; you can get additional states.
Console.WriteLine("Dedicated node count in Idle state: {0}", nodeCounts.Dedicated.Idle);
Console.WriteLine("Dedicated node count in Offline state: {0}", nodeCounts.Dedicated.Offline);
Console.WriteLine("Total Spot node count: {0}", nodeCounts.LowPriority.Total);
// Get Spot node counts in Running and Preempted states; you can get additional states.
Console.WriteLine("Spot node count in Running state: {0}", nodeCounts.LowPriority.Running);
Console.WriteLine("Spot node count in Preempted state: {0}", nodeCounts.LowPriority.Preempted);
}
Poniższy fragment kodu w języku C# pokazuje, jak wyświetlić listę liczników węzłów dla danej puli na bieżącym koncie.
foreach (var nodeCounts in batchClient.PoolOperations.ListPoolNodeCounts(new ODATADetailLevel(filterClause: "poolId eq 'testpool'")))
{
Console.WriteLine("Pool Id: {0}", nodeCounts.PoolId);
Console.WriteLine("Total dedicated node count: {0}", nodeCounts.Dedicated.Total);
// Get dedicated node counts in Idle and Offline states; you can get additional states.
Console.WriteLine("Dedicated node count in Idle state: {0}", nodeCounts.Dedicated.Idle);
Console.WriteLine("Dedicated node count in Offline state: {0}", nodeCounts.Dedicated.Offline);
Console.WriteLine("Total Spot node count: {0}", nodeCounts.LowPriority.Total);
// Get Spot node counts in Running and Preempted states; you can get additional states.
Console.WriteLine("Spot node count in Running state: {0}", nodeCounts.LowPriority.Running);
Console.WriteLine("Spot node count in Preempted state: {0}", nodeCounts.LowPriority.Preempted);
}
Aby uzyskać liczbę węzłów dla pul, można użyć podobnego wzorca dla architektury REST i innych obsługiwanych języków.
Następne 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ę więcej na temat stosowania filtrów do zapytań, które wyświetlają listę zasobów usługi Batch, zobacz Tworzenie zapytań w celu wydajnego wyświetlania listy zasobów usługi Batch.