Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Um umfangreiche Azure Batch-Lösungen zu überwachen und zu verwalten, müssen Sie möglicherweise die Anzahl der Ressourcen in verschiedenen Zuständen ermitteln. Azure Batch ermöglicht effiziente Vorgänge zum Abrufen von Aufgaben und Serverknoten in Batch. Sie können diese Vorgänge anstelle von potenziell zeitaufwendigen Listenabfragen verwenden, die detaillierte Informationen zu großen Sammlungen von Aufgaben oder Knoten zurückgeben.
Get Task Counts (Aufgabenanzahl abrufen) ruft eine aggregierte Anzahl von aktiven, ausgeführten und abgeschlossenen Aufgaben in einem Auftrag sowie von erfolgreichen oder nicht erfolgreichen Aufgaben ab. Indem Sie Aufgaben in jedem Zustand zählen, können Sie den Auftragsfortschritt für einen Benutzer ganz einfach anzeigen oder unerwartete Verzögerungen oder Fehler erkennen, die sich auf den Auftrag auswirken können.
List Pool Node Counts erhält die Anzahl der dedizierten und Spot-Rechenknoten in jedem Pool, die sich in verschiedenen Zuständen befinden: Erstellen, Leerlauf, Offline, Preempted, Reboot, Reimaging, Start und andere. Durch Zählen von Knoten in jedem Status können Sie festlegen, wann Sie über ausreichende Computeressourcen für die Ausführung Ihrer Aufträge besitzen und potentielle Probleme mit Ihren Pools identifizieren.
Manchmal sind die von diesen Vorgängen zurückgegebenen Zahlen möglicherweise nicht auf dem neuesten Stand. Wenn Sie sicherstellen müssen, dass eine Anzahl korrekt ist, verwenden Sie eine Listenabfrage, um diese Ressourcen zu zählen. Mit Listenabfragen können Sie auch Informationen zu anderen Batchressourcen wie Anwendungen abrufen. Weitere Informationen zum Anwenden von Filtern auf Listenabfragen finden Sie unter Erstellen von Abfragen zum effizienten Auflisten von Batchressourcen.
Aufgabenstatuszähler
Mit dem Aufgabenzählervorgang Get
werden Aufgaben nach den folgenden Status gezählt:
- Aktiv: Eine Aufgabe, die in die Warteschlange gestellt und ausgeführt werden kann, aber derzeit keinem Computeknoten zugewiesen ist. Eine Aufgabe ist auch
active
, wenn sie von einer übergeordneten Aufgabe abhängig ist, die noch nicht abgeschlossen wurde. - Ausgeführt: Eine Aufgabe, die einem Serverknoten zugewiesen, aber noch nicht fertiggestellt wurde. Ein Vorgang wird als
running
gezählt, wenn sein Status entwederpreparing
oderrunning
ist, wie durch dieGet
Informationen zu einem Vorgang angegeben ist. - Abgeschlossen: Eine Aufgabe, die nicht mehr ausgeführt werden kann, weil sie entweder erfolgreich abgeschlossen oder nicht erfolgreich abgeschlossen wurde und auch den Wiederholungsgrenzwert erschöpft hat.
- Erfolgreich: Eine Aufgabe, bei der das Ergebnis der Aufgabenausführung ist
success
. Batch bestimmt, ob eine Aufgabe erfolgreich war oder fehlgeschlagen ist, indem dieTaskExecutionResult
Eigenschaft der executionInfo-Eigenschaft überprüft wird. - Fehlerhaft: Eine Aufgabe, deren Aufgabenausführungsergebnis
failure
lautet.
Im folgenden .NET-Codebeispiel wird gezeigt, wie Aufgabenanzahlen nach Status abgerufen werden.
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);
Sie können ein ähnliches Muster für REST und andere unterstützte Sprachen verwenden, um die Aufgabenanzahl für einen Auftrag abzurufen.
Knotenstatuszähler
Der Vorgang „List Pool Node Counts“ (Poolknotenanzahl auflisten) zählt Computeknoten nach den folgenden Status in jedem Pool. Separate aggregierte Zähler werden für dedizierte Knoten und Knoten mit niedriger Priorität in jedem Pool bereitgestellt.
- Erstellung: Eine Azure zugeordnete VM, die noch nicht gestartet wurde und mit einem Pool verknüpft werden soll.
- Leerlauf: Ein Rechenknoten, der verfügbar ist und derzeit keine Aufgaben ausführt.
- Verlässt Pool: Ein Knoten, der den Pool verlässt, da er ausdrücklich von Benutzenden entfernt wurde oder da die Größe des Pools geändert oder der Pool automatisch herunterskaliert wird.
- Offline: Ein Knoten, den Batch nicht zum Planen neuer Vorgänge verwenden kann.
- Vorzeitig entfernt: Ein Knoten mit niedriger Priorität, der aus dem Pool entfernt wurde, da Azure die VM freigegeben hat. Ein
preempted
Knoten kann neu initialisiert werden, wenn Ersatzkapazitäten für Spot-VMs verfügbar sind. - Neustart: Ein Knoten, der neu gestartet wird.
- Reimaging: Ein Knoten, auf dem das Betriebssystem neu installiert wird.
- Ausführen : Ein Knoten, der eine oder mehrere Aufgaben ausführt (außer der Startaufgabe).
- Start: Ein Knoten, auf dem der Batchdienst gestartet wird.
- StartTaskFailed: Ein Knoten, bei dem die Startaufgabe nach allen Wiederholungen fehlgeschlagen ist und
waitForSuccess
aktiviert ist. Dieser Knoten kann keine Aufgaben ausführen. - Unbekannt: Ein Knoten, der den Kontakt mit dem Batchdienst verloren hat und dessen Status nicht bekannt ist.
- Nicht verwendbar: Ein Knoten, der aufgrund von Fehlern nicht für die Aufgabenausführung verwendet werden kann.
- WaitingForStartTask: Ein Knoten, auf dem die Startaufgabe ausgeführt wird, aber
waitForSuccess
aktiviert ist und nicht abgeschlossen wurde.
Der folgende C#-Codeausschnitt zeigt, wie Knotenanzahlen für alle Pools im aktuellen Konto aufgeführt werden:
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);
}
Der folgende C#-Codeausschnitt zeigt, wie Knotenanzahlen für einen bestimmten Pool im aktuellen Konto aufgeführt werden.
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);
}
Sie können ein ähnliches Muster für REST und andere unterstützte Sprachen verwenden, um Knotenanzahlen für Pools abzurufen.
Nächste Schritte
- Erfahren Sie mehr über den Workflow des Batch-Diensts und primäre Ressourcen wie Pools, Knoten, Aufträge und Aufgaben.
- Informationen zum Anwenden von Filtern auf Abfragen, die Batchressourcen auflisten, finden Sie unter Erstellen von Abfragen zum effizienten Auflisten von Batchressourcen.