Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete monitorovat a spravovat rozsáhlá řešení Azure Batch, možná budete muset počítat počet prostředků v různých stavech. Azure Batch poskytuje efektivní operace pro získání počtů pro úlohy a výpočetní uzly Batch. Tyto operace můžete použít místo potenciálně časově náročných dotazů seznamu, které vracejí podrobné informace o rozsáhlých kolekcích úloh nebo uzlů.
Získání počtu úkolů poskytuje souhrnný počet aktivních, běžících a dokončených úkolů v úloze a úkolů, které byly úspěšné nebo neúspěšné. Počítáním úkolů v jednotlivých stavech můžete uživateli snadno zobrazit průběh úlohy nebo zjistit neočekávaná zpoždění nebo selhání, která můžou mít vliv na úlohu.
Seznam počtu uzlů fondu získá počet vyhrazených a spotových výpočetních uzlů v jednotlivých fondech, které jsou v různých stavech: vytváření, nečinnost, offline, přerušené, restartování, obnovení obrazu, spuštění a další. Počítáním uzlů v jednotlivých stavech můžete určit, kdy máte adekvátní výpočetní prostředky pro spouštění úloh, a identifikovat potenciální problémy s pooly.
Někdy nemusí být čísla vrácená těmito operacemi aktuální. Pokud potřebujete mít jistotu, že je počet přesný, použijte k počítání těchto prostředků dotaz seznamu. Seznamové dotazy také umožňují získat informace o dalších prostředcích služby Batch, jako jsou aplikace. Další informace o použití filtrů pro výpis dotazů naleznete v tématu Vytváření dotazů pro efektivní výpis prostředků batch.
Počty stavů úlohy
Operace Get Počítání úkolů počítá úkoly podle následujících stavů:
-
Aktivní: Úloha, která je ve frontě a je připravená ke spuštění, ale aktuálně není přiřazená k žádnému výpočetnímu uzlu. Úkol je také
activev případě, že je závislý na nadřazené úloze , která ještě nebyla dokončena. -
Spuštěno: Úkol, který byl přiřazen k výpočetnímu uzlu, ale ještě nebyl dokončen. Úkol se počítá jako
runningv případě, že je jeho stav buďpreparingneborunning, jak je uvedenoGetinformacemi o operaci úkolu . - Dokončeno: Úkol, který už není způsobilý pro spuštění, protože byl úspěšně dokončen nebo neúspěšně dokončen a současně vyčerpal limit opakování.
-
Úspěšný: Úkol, jehož výsledek je
successpo provedení úkolu. Batch určuje, zda byla úloha úspěšná nebo neúspěšná kontrolou vlastnostiTaskExecutionResultv rámci vlastnosti executionInfo. -
Selhání: Úkol, kde je výsledek provádění úkolu
failure.
Následující ukázka kódu .NET ukazuje, jak načíst počty úkolů podle stavu.
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);
Pro získání počtu úkolů pro úlohu můžete použít podobný vzor pro REST a další jazyky, které podporují tento přístup.
Počty stavů uzlů
Operace Počet uzlů fondu seznamů počítá výpočetní uzly podle následujících stavů v jednotlivých fondech. Samostatné agregační počty jsou k dispozici pro vyhrazené uzly a spotové uzly v každém fondu.
- Vytváření: Virtuální počítač, který byl přidělen Azurem a ještě nezačal se připojovat k skupině.
- Nečinný: Výpočetní uzel, který je k dispozici a aktuálně nespouští žádné úlohy.
- LeavingPool: Uzel, který opouští pool, buď proto, že ho uživatel explicitně odebral, nebo kvůli změně velikosti či automatickému snižování kapacity.
- Offline: Uzel, který služba Batch nemůže použít k naplánování nových úkolů.
-
Přerušeno: Spotový uzel, který byl odebrán z fondu, protože Azure virtuální počítač uvolnil. Uzel
preemptedje možné znovu inicializovat, když je k dispozici náhradní kapacita spotového virtuálního počítače. - Restartování: Uzel, který se právě restartuje.
- Přeinstalace: Uzel, ve kterém se operační systém přeinstaluje.
- Běžící : Uzel, na kterém aktuálně běží jeden nebo více úkolů (jiný než spouštěcí úkol).
- Spuštění: Uzel, kde se spouští služba Batch.
-
StartTaskFailed: Uzel, ve kterém úloha spuštění selhala po všech opakováních a
waitForSuccessje povolená. Tento uzel nemůže spouštět úlohy. - Neznámý: Uzel, který ztratil kontakt se službou Batch a jehož stav není známý.
- Nepoužitelné: Uzel, který nelze použít pro provádění úkolů kvůli chybám.
-
WaitingForStartTask: Uzel, na kterém je spuštěná spouštěcí úloha, ale
waitForSuccessje povolená a nedokončila se.
Následující fragment kódu jazyka C# ukazuje, jak vypsat počty uzlů pro všechny fondy v aktuálním účtu:
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);
}
Následující fragment kódu jazyka C# ukazuje, jak v aktuálním účtu vypsat počty uzlů pro daný fond.
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);
}
Pro získání počtu uzlů v poolu můžete použít stejný vzor pro REST a další podporované jazyky.
Další kroky
- Zjistěte více o pracovním postupu služby Batch a primárních prostředcích, jako jsou fondy, uzly, úlohy a úkoly.
- Informace o použití filtrů na dotazy, které uvádějí prostředky batch, najdete v tématu Efektivní vytváření dotazů k výpisu prostředků Batch.