Batch-megoldások monitorozása tevékenységek és csomópontok állapot szerinti számlálásával
A nagy léptékű Azure Batch megoldások monitorozásához és kezeléséhez szükség lehet a különböző állapotokban lévő erőforrások számának meghatározására. Azure Batch hatékony műveleteket biztosít a Batch-tevékenységek és számítási csomópontok számának lekéréséhez. Ezeket a műveleteket ahelyett használhatja, hogy esetleg időigényes lista lekérdezéseket ad vissza, amelyek részletes információkat adnak vissza a feladatok vagy csomópontok nagy gyűjteményeiről.
A Feladatszám lekérése egy feladat aktív, futó és befejezett tevékenységeinek összesített számát, valamint a sikeres vagy sikertelen tevékenységeket tartalmazza. Az egyes állapotokban lévő tevékenységek számlálásával könnyebben megjelenítheti a feladat előrehaladását a felhasználó számára, vagy észlelheti a feladatot érintő váratlan késéseket vagy hibákat.
A listakészlet csomópontjainak száma lekéri a dedikált és a kihasználatlan számítási csomópontok számát az egyes készletekben, amelyek különböző állapotban vannak: létrehozás, tétlen, offline, előzetes, újraindítás, újraimálás, indítás és mások. Az egyes állapotokban lévő csomópontok számlálásával meghatározhatja, hogy mikor rendelkezik megfelelő számítási erőforrásokkal a feladatok futtatásához, és azonosíthatja a készletekkel kapcsolatos lehetséges problémákat.
Vegye figyelembe, hogy időnként előfordulhat, hogy a műveletek által visszaadott számok nem naprakészek. Ha meg kell győződnie arról, hogy a szám pontos, használjon lista lekérdezést az erőforrások megszámlálásához. A listázási lekérdezések lehetővé teszik más Batch-erőforrások, például alkalmazások információinak lekérését is. További információ a szűrők listázási lekérdezésekre való alkalmazásáról: Lekérdezések létrehozása a Batch-erőforrások hatékony listázásához.
Tevékenységállapotok száma
A Feladatszám lekérése művelet a következő állapotok szerint számlálja meg a tevékenységeket:
-
Aktív: Egy várólistán lévő és futtatható feladat, amely jelenleg nincs hozzárendelve egy számítási csomóponthoz. A tevékenység akkor is
active
, ha olyan szülőtevékenységtől függ , amely még nem fejeződött be. -
Futtatás: Egy számítási csomóponthoz rendelt feladat, de még nem fejeződött be. A rendszer úgy számolja a tevékenységeket, mint
running
amikor az állapota vagyrunning
,preparing
ahogy az a tevékenységművelet adatainak lekérése című témakörben látható. - Befejezve: Az a tevékenység, amely már nem futtatható, mert vagy sikeresen befejeződött, vagy sikertelenül fejeződött be, és kimerítette az újrapróbálkozási korlátot is.
-
Sikeres: Olyan tevékenység, amelyben a feladat végrehajtásának eredménye .
success
A Batch a végrehajtásInfo tulajdonságának ellenőrzésévelTaskExecutionResult
határozza meg, hogy egy tevékenység sikeres vagy sikertelen volt-e. -
Sikertelen: Olyan tevékenység, amelyben a feladat végrehajtásának eredménye .
failure
Az alábbi .NET-kódminta bemutatja, hogyan lehet állapot szerint lekérni a tevékenységek számát.
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);
A REST-hez és más támogatott nyelvekhez hasonló mintát használhat a feladatok feladatszámának lekéréséhez.
Csomópontállapotok száma
A Listakészlet csomópontszám művelete a számítási csomópontokat az egyes készletek alábbi állapotai szerint számlálja meg. A dedikált csomópontokhoz és az egyes készletekben lévő spot csomópontokhoz külön összesített számokat biztosítunk.
- Létrehozás: Egy Azure-beli lefoglalt virtuális gép, amely még nem kezdett csatlakozni egy készlethez.
- Tétlen: Rendelkezésre álló számítási csomópont, amely jelenleg nem futtat tevékenységet.
- LeavingPool: Egy csomópont, amely elhagyja a készletet, vagy azért, mert a felhasználó explicit módon eltávolította, vagy mert a készlet átméretezi vagy automatikusan leskálázódik.
- Offline: Olyan csomópont, amellyel a Batch nem tud új feladatokat ütemezni.
-
Előtag: A készletből eltávolított kihasználatlan csomópont, amely azért lett eltávolítva, mert az Azure visszavette a virtuális gépet. A
preempted
csomópontok újrainicializálhatók, ha rendelkezésre áll a kihasználatlan virtuálisgép-kapacitás cseréje. - Újraindítás: Újrainduló csomópont.
- Újraimálás: Egy csomópont, amelyen az operációs rendszer újratelepítve van.
- Futtatás : Olyan csomópont, amely egy vagy több tevékenységet futtat (a kezdő tevékenységtől eltérően).
- Indítás: Egy csomópont, amelyen a Batch szolgáltatás elindul.
-
StartTaskFailed: Az a csomópont, amelyen a kezdési tevékenység meghiúsult, és kimerítette az összes újrapróbálkozásokat, és amelyen
waitForSuccess
az indítási tevékenység van beállítva. A csomópont nem használható feladatok futtatásához. - Ismeretlen: Olyan csomópont, amely elvesztette a kapcsolatot a Batch szolgáltatással, és amelynek állapota nem ismert.
- Használhatatlan: Olyan csomópont, amely hibák miatt nem használható feladatvégrehajtáshoz.
-
WaitingForStartTask: Egy csomópont, amelyen a kezdési tevékenység elindult, de
waitForSuccess
be van állítva, és a kezdési tevékenység még nem fejeződött be.
Az alábbi C#-kódrészlet bemutatja, hogyan listázhatja az aktuális fiók összes készletének csomópontszámát:
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);
}
Az alábbi C#-kódrészlet bemutatja, hogyan listázhatja az adott készlet csomópontszámait az aktuális fiókban.
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);
}
A REST-hez és más támogatott nyelvekhez hasonló mintát használhat a készletek csomópontszámának lekéréséhez.
Következő lépések
- Ismerje meg a Batch szolgáltatás munkafolyamatát és az elsődleges erőforrásokat , például készleteket, csomópontokat, feladatokat és feladatokat.
- Ismerje meg, hogyan alkalmazhat szűrőket a Batch-erőforrásokat listázó lekérdezésekre, lásd: Lekérdezések létrehozása a Batch-erőforrások hatékony listázásához.