Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per monitorare e gestire soluzioni Azure Batch su larga scala, potrebbe essere necessario determinare il numero di risorse in vari stati. Azure Batch offre operazioni efficienti per ottenere il conteggio delle attività e dei nodi di calcolo di Batch. È possibile utilizzare queste operazioni anziché fare ricorso a query di liste che potrebbero essere dispendiose in termini di tempo e che restituiscono informazioni dettagliate su ampie raccolte di attività o nodi.
Ottieni conteggi delle attività recupera un conteggio aggregato delle attività attive, in esecuzione e completate in un lavoro, e delle attività che sono riuscite o fallite. Conteggiando le attività in ogni stato, è possibile visualizzare facilmente lo stato di avanzamento del processo a un utente o rilevare ritardi o errori imprevisti che possono influire sul processo.
L'operazione di conteggio dei nodi del pool riceve il numero di nodi di calcolo spot e dedicati di ogni pool in vari stati: in fase di creazione, inattivo, offline, superato, riavvio, ricreazione immagine, avvio e altri. Conteggiando i nodi in ogni stato, è possibile determinare quando si dispone di risorse di calcolo adeguate per eseguire i processi e identificare potenziali problemi con i pool.
In alcuni casi, i numeri restituiti da queste operazioni potrebbero non essere aggiornati. Se è necessario assicurarsi che un conteggio sia accurato, usare una query di elenco per contare queste risorse. Le query di elenco consentono anche di ottenere informazioni su altre risorse batch, ad esempio le applicazioni. Per altre informazioni sull'applicazione di filtri alle query di elenco, vedere Creare query per elencare in modo efficiente le risorse batch.
Conteggi delle attività in base allo stato
L'operazione Get
Task Counts conta le attività in base agli stati seguenti:
- Attivo: un'attività in coda e pronta per l'esecuzione, ma non è attualmente assegnata ad alcun nodo di calcolo. Un'attività è anche
active
se è dipendente da un'attività principale che non è ancora stata completata. - Esecuzione: un'attività assegnata a un nodo di calcolo ma non è ancora stata completata. Un'attività viene conteggiata come
running
quando il relativo stato èpreparing
orunning
, come indicato dalleGet
informazioni su un'operazione di attività . - Completato: un'attività che non è più idonea per l'esecuzione, perché è stata completata correttamente o è stata completata in modo non riuscito e ha esaurito anche il limite di tentativi.
- Operazione riuscita: un'attività in cui il risultato dell'esecuzione dell'attività è
success
. Batch determina se un'attività ha avuto esito positivo o negativo controllando laTaskExecutionResult
proprietà della proprietà executionInfo . - Operazione non riuscita: un'attività in cui il risultato dell'esecuzione dell'attività è
failure
.
Nell'esempio di codice .NET seguente viene illustrato come recuperare i conteggi delle attività in base allo stato.
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);
È possibile usare un modello simile per REST e altre lingue supportate per ottenere i conteggi delle attività per un processo.
Conteggi dei nodi in base allo stato
L'operazione List Pool Node Counts conta i nodi di calcolo in base agli stati seguenti in ogni pool. I conteggi di aggregazione separati vengono forniti per i nodi dedicati e i nodi spot in ogni pool.
- Creating: macchina virtuale di Azure con allocazione che non è ancora iniziato per aggiungere un pool.
- Inattiva: nodo di calcolo disponibile e attualmente non in esecuzione alcuna attività.
- LeavingPool: un nodo che esce dal pool, perché l'utente lo ha rimosso in modo esplicito o perché il pool si sta ridimensionando o riducendo automaticamente.
- Offline: nodo che Batch non può usare per pianificare nuove attività.
- Preempted: nodo Spot rimosso dal pool perché Azure ha recuperato la macchina virtuale. Un
preempted
nodo può essere reinizializzato quando è disponibile la capacità di macchina virtuale spot sostitutiva. - Riavvio: nodo che viene riavviato.
- Reimaging: nodo in cui viene reinstallato il sistema operativo.
- Esecuzione : nodo che esegue una o più attività (diverse dall'attività di avvio).
- Avvio: nodo in cui viene avviato il servizio Batch.
- StartTaskFailed: nodo in cui l'attività di avvio non è riuscita dopo tutti i tentativi ed
waitForSuccess
è abilitata. Questo nodo non può eseguire attività. - Sconosciuto: nodo che ha perso il contatto con il servizio Batch e il cui stato non è noto.
- Inutilizzabile: nodo che non può essere usato per l'esecuzione dell'attività a causa di errori.
- WaitingForStartTask: nodo in cui è in esecuzione l'attività di avvio, ma
waitForSuccess
è abilitato e non è stato completato.
Il frammento di codice C# seguente illustra come elencare i conteggi dei nodi per tutti i pool nell'account corrente:
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);
}
Il frammento di codice C# seguente illustra come elencare i conteggi dei nodi per un determinato pool nell'account corrente.
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);
}
È possibile usare un modello simile per REST e altri linguaggi supportati per ottenere i conteggi dei nodi per i pool.
Passaggi successivi
- Informazioni sul flusso di lavoro e sulle risorse principali del servizio Batch, ad esempio pool, nodi, processi e attività.
- Informazioni sull'applicazione di filtri alle query che elencano le risorse batch, vedere Creare query per elencare in modo efficiente le risorse batch.