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. Az Azure Batch hatékony műveleteket biztosít a Batch-feladatok és számítási csomópontok számának lekéréséhez. Ezeket a műveleteket használhatja ahelyett, hogy esetleg időigényes lista lekérdezéseket használ, amelyek részletes információkat adnak vissza a feladatok vagy csomópontok nagy gyűjteményeiről.

  • A Tevékenységszám lekérése a feladat aktív, futó és befejezett tevékenységeinek összesített számát, valamint a sikeres vagy sikertelen tevékenységeket jeleníti meg. Az egyes állapotokban lévő tevékenységek számlálásával egyszerűen megjelenítheti a feladat előrehaladását egy felhasználó számára, vagy észlelheti a feladatot érintő váratlan késéseket vagy hibákat.

  • A listakészlet-csomópontok száma az egyes készletek dedikált és kihasználatlan számítási csomópontjainak számát jeleníti meg, 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 egyéb. 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.

Előfordulhat, hogy a műveletek által visszaadott számok időnként 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 az egyéb 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.

Feladatállapotok száma

A Get Tevékenységszámláló művelet az alábbi állapotok szerint számlálja meg a tevékenységeket:

  • Aktív: Egy várólistán lévő és futtatásra kész feladat, amely jelenleg nincs hozzárendelve egyetlen számítási csomóponthoz sem. A tevékenység akkor is active , ha egy szülőtevékenységtől függ , amely még nem fejeződött be.
  • Futás: Egy olyan feladat, amely egy számítási csomóponthoz van rendelve, de még nem fejeződött be. Egy feladat akkor számít running-nak, amikor annak állapota preparing vagy running, ahogyan azt a Getfeladat információk művelet jelzi.
  • Befejezve: Olyan 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 TaskExecutionResult tulajdonság tulajdonságának ellenőrzésével határozza meg, hogy egy tevékenység sikeres vagy sikertelen volt-e.
  • Sikertelen: Egy feladat, amelynek végrehajtásának eredménye failure.

Az alábbi .NET-kódminta bemutatja, hogyan kérhető le a tevékenységek száma állapot szerint.

BatchTaskCountsResult taskCounts = await batchClient.GetJobTaskCountsAsync("job-1");

Console.WriteLine("Task count in active state: {0}", taskCounts.TaskCounts.Active);
Console.WriteLine("Task count in preparing or running state: {0}", taskCounts.TaskCounts.Running);
Console.WriteLine("Task count in completed state: {0}", taskCounts.TaskCounts.Completed);
Console.WriteLine("Succeeded task count: {0}", taskCounts.TaskCounts.Succeeded);
Console.WriteLine("Failed task count: {0}", taskCounts.TaskCounts.Failed);

Hasonló mintát használhat a REST és más támogatott nyelvek esetében a feladatok számának lekéréséhez.

Csomópontállapotok száma

A listakészlet-csomópontok száma művelet a számítási csomópontokat az egyes készletek alábbi állapotai szerint számlálja meg. Az egyes készletek dedikált csomópontjaihoz és Spot csomópontjaihoz külön aggregátumszámok vannak biztosítva.

  • Létrehozás: Egy Azure által kiosztott virtuális gép, amely még nem kezdte meg a csatlakozást egy készlethez.
  • Tétlen: Elérhető és jelenleg nem futó számítási csomópont.
  • LeavingPool: A készletet elhagyó csomópont, vagy azért, mert a felhasználó kifejezetten eltávolította, vagy mert a készlet átméretezi vagy automatikusan lecsökkenti a méretét.
  • Offline: Olyan csomópont, amellyel a Batch nem tud új feladatokat ütemezni.
  • Megszakított: A készletből eltávolított Spot csomópont, amely azért lett megszüntetve, mert az Azure visszavette a virtuális gépet. A preempted csomópont újraincializálható, ha rendelkezésre áll a kihasználatlan virtuálisgép-kapacitás cseréje.
  • Újraindítás: Újrainduló csomópont.
  • Újrakezelés: Egy csomópont, ahol az operációs rendszert újratelepítik.
  • Futtatás : Olyan csomópont, amely egy vagy több tevékenységet futtat (a kezdési tevékenységen kívül).
  • Indítás: Egy csomópont, ahol a Batch szolgáltatás elindul.
  • StartTaskFailed: Az a csomópont, ahol a kezdési feladat az újrapróbálkozások után meghiúsult, és waitForSuccess engedélyezve van. Ez a csomópont nem tud feladatokat futtatni.
  • Ismeretlen: Olyan csomópont, amely elvesztette a kapcsolatot a Batch szolgáltatással, és amelynek állapota nem ismert.
  • Használhatatlan: Olyan csomópont, amely hiba miatt nem használható feladatvégrehajtáshoz.
  • WaitingForStartTask: Az a csomópont, amelyen a kezdő tevékenység fut, de waitForSuccess engedélyezve van, és 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:

await foreach (BatchPoolNodeCounts nodeCounts in batchClient.GetPoolNodeCountsAsync())
{
    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 aktuális fiókban lévő adott készlet csomópontszámait.

await foreach (BatchPoolNodeCounts nodeCounts in batchClient.GetPoolNodeCountsAsync(
    filter: "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