Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para monitorar e gerenciar soluções de Lote do Azure em grande escala, talvez seja necessário determinar contagens de recursos em vários estados. O Azure Batch fornece operações eficientes para obter contagens para tarefas em lote e nós de computação. Você pode usar essas operações em vez de consultas de lista potencialmente demoradas que retornam informações detalhadas sobre grandes coleções de tarefas ou nós.
Obter Contagens de Tarefas obtém uma contagem agregada de tarefas ativas, em execução e concluídas em um trabalho e de tarefas bem-sucedidas ou com falha. Ao contar tarefas em cada estado, você pode exibir facilmente o progresso do trabalho para um usuário ou detetar atrasos ou falhas inesperadas que podem afetar o trabalho.
List Pool Node Counts obtém o número de nós de computação dedicados e nós Spot em cada pool que estão em vários estados: em criação, ocioso, Offline, preemptado, reinicialização, reimagem, Inicialização, e Outros. Ao contar nós em cada estado, podes determinar quando tens recursos de computação adequados para executar as tuas tarefas e detetar potenciais problemas com os teus pools.
Por vezes, os números devolvidos por estas operações podem não estar atualizados. Se você precisar ter certeza de que uma contagem é precisa, use uma consulta de lista para contar esses recursos. As consultas de lista também permitem obter informações sobre outros recursos em lote, como aplicativos. Para obter mais informações sobre como aplicar filtros a consultas de lista, consulte Criar consultas para listar recursos em lote de forma eficiente.
Contagens de estado da tarefa
A Get operação Contagem de Tarefas conta tarefas pelos seguintes estados:
-
Ativo: uma tarefa que está na fila e pronta para ser executada, mas que não está atualmente atribuída a nenhum nó de computação. Uma tarefa também é
activese for dependente de uma tarefa pai que ainda não foi concluída. -
Em execução: uma tarefa que foi atribuída a um nó de computação, mas ainda não foi concluída. Uma tarefa é considerada como
runningquando o seu estado épreparingourunning, conforme indicado pela operaçãoGetinformações sobre uma tarefa. - Concluída: uma tarefa que não está mais qualificada para ser executada, porque foi concluída com êxito ou concluída sem êxito e também esgotou seu limite de novas tentativas.
-
Com êxito: uma tarefa em que o resultado da execução da tarefa é
success. Batch determina se uma tarefa foi bem-sucedida ou falhou verificando a propriedadeTaskExecutionResultda executionInfo. -
Falha: uma tarefa em que o resultado da execução da tarefa é
failure.
O exemplo de código .NET a seguir mostra como recuperar contagens de tarefas por estado.
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);
Você pode usar um padrão semelhante para REST e outros idiomas suportados para obter contagens de tarefas para um trabalho.
Contagens de estados de nó
A operação List Pool Node Counts conta nós de computação pelos seguintes estados em cada pool. Contagens agregadas separadas são fornecidas para nós dedicados e nós Spot em cada pool.
- Criando: uma VM alocada pelo Azure que ainda não iniciou o processo de integração num pool.
- Ocioso: um nó de computação que está disponível e que atualmente não está a executar nenhuma tarefa.
- LeavingPool: um nó que está a sair do pool, seja porque o utilizador o removeu explicitamente ou porque o pool está a redimensionar-se ou a reduzir-se automaticamente.
- Offline: um nó que o Batch não pode usar para agendar novas tarefas.
-
Preemptivo: um nó Spot que foi removido do pool porque o Azure reivindicou a VM. Um
preemptednó pode ser reinicializado quando a capacidade de substituição da Spot VM estiver disponível. - Reinicialização: um nó que se reinicializa.
- Reimagem: um nó onde o SO está a ser reinstalado.
- Em execução : um nó que está executando uma ou mais outras tarefas (além da tarefa inicial).
- Iniciando: um nó onde o serviço Batch está sendo iniciado.
-
StartTaskFailed: Um nó onde a tarefa inicial falhou após todas as tentativas e
waitForSuccessestá habilitada. Este nó não pode executar tarefas. - Desconhecido: Um nó que perdeu contacto com o serviço Batch e cujo estado não é conhecido.
- Inutilizável: Um nó que não pode ser usado para a realização de tarefas devido a erros.
-
WaitingForStartTask: um nó no qual a tarefa inicial está em execução, mas
waitForSuccessestá habilitada e não foi concluída.
O trecho de código C# a seguir mostra como listar o número de nós para todos os pools na conta atual.
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);
}
O trecho de código em C# a seguir mostra como listar as contagens de nós para um determinado pool da conta atual.
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);
}
Você pode usar um padrão semelhante para REST e outros idiomas suportados para obter contagens de nós para pools.
Próximos passos
- Saiba mais sobre o fluxo de trabalho do serviço em lote e os principais recursos, como pools, nós, processos e tarefas.
- Saiba mais sobre como aplicar filtros a consultas que listam recursos de lote, consulte Criar consultas para listar recursos de lote de forma eficiente.