View a markdown version of this page

Rastreie a utilização da capacidade de trabalho de serviço - AWS Batch

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Rastreie a utilização da capacidade de trabalho de serviço

AWS Batch fornece várias operações de API que você pode usar em conjunto para rastrear a utilização da capacidade para trabalhos de serviço em uma fila. O fluxo de trabalho de monitoramento depende do tipo de política de agendamento anexada à sua fila de trabalhos.

Para filas de trabalhos que usam uma política de agendamento FIFO (primeiro a entrar, primeiro a sair):

  1. Verifique a utilização total da fila ()GetJobQueueSnapshot.

  2. Liste os trabalhos por status, como SCHEDULED e RUNNING (ListServiceJobs).

  3. Examine qualquer trabalho específico (DescribeServiceJob).

Para filas de trabalho que usam uma política de agendamento de compartilhamento justo (FSS) ou gerenciamento de cotas (QM):

  1. Verifique a utilização total da fila ()GetJobQueueSnapshot.

  2. Exibir a utilização por compartilhamento ()GetJobQueueSnapshot.

  3. Liste os trabalhos por status e compartilhamento que estão contribuindo ativamente para a utilização, como SCHEDULED e RUNNING (ListServiceJobs).

  4. Examine qualquer trabalho específico (DescribeServiceJob).

As seções a seguir descrevem cada etapa em detalhes.

Para obter informações sobre o rastreamento da utilização da capacidade para tarefas de computação ECS, EKS e Fargate, consulte. Rastreie a utilização da capacidade de trabalho de computação

Verifique a utilização da fila

O queueUtilization campo na GetJobQueueSnapshotresposta fornece uma point-in-time visão de quanta capacidade computacional é consumida por trabalhos enviados de uma fila. A capacidade é medida na contagem de instâncias para trabalhos de serviço.

Para filas de trabalho que usam uma política de agendamento de compartilhamento justo ou gerenciamento de cotas, a resposta também inclui um detalhamento por ação para que você possa ver como a capacidade é distribuída entre as ações. Para obter mais informações, consulte Exibir a utilização por ação.

Exibir a utilização da capacidade ()AWS CLI

Use o get-job-queue-snapshotcomando para recuperar um instantâneo da utilização da capacidade de uma fila de trabalhos.

aws batch get-job-queue-snapshot \ --job-queue my-job-queue

A resposta varia de acordo com a política de agendamento anexada à sua fila de trabalhos. Escolha a guia do seu tipo de política de agendamento para ver um exemplo de resposta.

First-in, first-out (FIFO)

Veja a seguir um exemplo de resposta para uma fila de trabalhos FIFO. Como uma fila FIFO não usa uma política de agendamento, a resposta não inclui a utilização por compartilhamento.

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 9.0 } ], "lastUpdatedAt": 1700000000000 } }

Neste exemplo, a fila consome um total de 9 instâncias em todos os trabalhos enviados.

Fair-share scheduling (FSS)

Veja a seguir um exemplo de resposta para uma fila de trabalhos com compartilhamento justo. O queueUtilization objeto contém um point-in-time instantâneo da capacidade total consumida por todos os trabalhos enviados da fila, junto com um detalhamento por ação.

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "NUM_INSTANCES", "quantity": 9.0 } ], "fairshareUtilization": { "activeShareCount": 2, "topCapacityUtilization": [ { "shareIdentifier": "team-a", "capacityUsage": [ { "capacityUnit": "NUM_INSTANCES", "quantity": 5.0 } ] }, { "shareIdentifier": "team-b", "capacityUsage": [ { "capacityUnit": "NUM_INSTANCES", "quantity": 4.0 } ] } ] }, "lastUpdatedAt": 1700000000000 } }

Neste exemplo, o totalCapacityUsage campo mostra que a fila consome um total de 9 instâncias. O fairshareUtilization objeto mostra o detalhamento por ação. O compartilhamento team-a consome 5 instâncias e o compartilhamento team-b consome 4 instâncias.

Quota management (QM)

Veja a seguir um exemplo de resposta para uma fila de tarefas de gerenciamento de cotas. O queueUtilization objeto contém um point-in-time instantâneo da capacidade total consumida por todos os trabalhos enviados da fila, junto com um detalhamento. per-quota-share O frontOfQuotaShares objeto mostra o primeiro RUNNABLE trabalho por compartilhamento de cota.

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "frontOfQuotaShares": { "quotaShares": { "team-a-share": [], "team-b-share": [] }, "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 9.0 } ], "quotaShareUtilization": { "topCapacityUtilization": [ { "quotaShareName": "team-a-share", "capacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 5.0 } ] }, { "quotaShareName": "team-b-share", "capacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 4.0 } ] } ] }, "lastUpdatedAt": 1700000000000 } }

Neste exemplo, o totalCapacityUsage campo mostra que a fila consome um total de 9 instâncias. O quotaShareUtilization objeto mostra a per-quota-share avaria. O compartilhamento de cota team-a-share consome 5 instâncias e o compartilhamento de cota team-b-share consome 4 instâncias. O frontOfQuotaShares objeto mostra o primeiro RUNNABLE trabalho para cada compartilhamento de cota, junto com a primeira vez em que o trabalho alcançou essa posição.

Exibir a utilização por ação

Para filas de trabalhos com uma política de agendamento de compartilhamento justo ou gerenciamento de cotas, a queueUtilization resposta de GetJobQueueSnapshot inclui um objeto de utilização com uma topCapacityUtilization matriz que lista os principais compartilhamentos ativos por consumo.

Essas informações ajudam você a:

  • Identifique quais compartilhamentos consomem mais recursos.

  • Verifique se os recursos estão distribuídos entre os compartilhamentos conforme o esperado.

  • Detecte ações que possam estar saturando ou subutilizando sua alocação.

  • Determine se a configuração da política de agendamento deve ser ajustada.

Para obter mais informações sobre as políticas de agendamento de compartilhamento justo, consulte. Políticas de agendamento de compartilhamento justo

Para obter mais informações sobre cotas compartilhadas, consulteAções de cota.

Listar trabalhos de serviço por status e compartilhamento

Depois de identificar a fila geral e a utilização por compartilhamento, use a operação da ListServiceJobsAPI para encontrar os trabalhos de serviço que estão contribuindo ativamente para a utilização. Você pode filtrar por status do trabalho para ver os trabalhos que estão RUNNING ou estão em outro estado. SCHEDULED Para filas com uma política de agendamento de compartilhamento justo ou gerenciamento de cotas, você também pode filtrar por identificador de compartilhamento para restringir os resultados a um compartilhamento específico.

nota

Os QUOTA_SHARE_NAME filtros SHARE_IDENTIFIER e são os únicos filtros que podem ser combinados com o jobStatus parâmetro. Quando você usa outros filtros, o jobStatus parâmetro é ignorado.

Listar trabalhos de serviço (AWS CLI)

Use o list-service-jobscomando com o --job-status parâmetro para filtrar por status.

Veja os trabalhos de serviço em execução na sua fila:

aws batch list-service-jobs \ --job-queue my-job-queue \ --job-status RUNNING

Para filas com uma política de agendamento de compartilhamento justo, use o --filters parâmetro with SHARE_IDENTIFIER para listar trabalhos para um compartilhamento específico. Para filas com política de agendamento de gerenciamento de cotas, use QUOTA_SHARE_NAME para listar trabalhos para um compartilhamento de cota específico. Isso é útil quando você identifica um compartilhamento com alto consumo de capacidade e deseja ver quais trabalhos são responsáveis.

Liste somente trabalhos RUNNING de serviço para uma parcela de uma fila de compartilhamento justo:

aws batch list-service-jobs \ --job-queue my-job-queue \ --job-status RUNNING \ --filters name=SHARE_IDENTIFIER,values="team-a"

Para filas com uma política de agendamento de gerenciamento de cotas, use o filtro: QUOTA_SHARE_NAME

aws batch list-service-jobs \ --job-queue my-job-queue \ --job-status RUNNING \ --filters name=QUOTA_SHARE_NAME,values="my-quota-share"

Veja a seguir um exemplo de resposta para listar trabalhos de serviço em execução filtrados por identificador de compartilhamento em uma fila de compartilhamento justo.

{ "jobSummaryList": [ { "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d", "jobId": "a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d", "jobName": "my-training-job", "serviceJobType": "SAGEMAKER_TRAINING", "status": "RUNNING", "shareIdentifier": "team-a", "createdAt": 1700000000000, "scheduledAt": 1700000060000, "startedAt": 1700000120000, "capacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 5.0 } ], "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/my-training-job" } } } ] }

Neste exemplo, a resposta inclui o shareIdentifier campo que mostra que o trabalho pertence ao team-a compartilhamento e a capacityUsage matriz que mostra que o trabalho consome 5 ml.m5.large instâncias. O latestAttempt objeto contém o identificador do recurso de serviço que você pode usar para obter detalhes adicionais do serviço de destino.

Examine um trabalho de serviço específico

Depois de identificar um trabalho de serviço de interesse, use a DescribeServiceJoboperação para obter informações abrangentes sobre o trabalho, incluindo seu status atual, identificadores de recursos de serviço e informações detalhadas sobre tentativas.

Veja informações detalhadas sobre um trabalho de serviço específico:

aws batch describe-service-job \ --job-id a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d

Esse comando retorna informações abrangentes sobre o trabalho, incluindo:

  • ARN do trabalho e status atual

  • Identificadores de recursos de serviço (como ARN do trabalho SageMaker de treinamento)

  • Prioridade de agendamento e configuração de novas tentativas

  • Carga útil da solicitação de serviço contendo os parâmetros originais do serviço

  • Informações detalhadas da tentativa com horários de início e término

  • Mensagens de status do serviço de destino

Examine o trabalho SageMaker de treinamento subjacente

Ao monitorar os trabalhos de SageMaker treinamento AWS Batch, você pode acessar as informações do AWS Batch trabalho e os detalhes subjacentes do trabalho de SageMaker treinamento.

O identificador do recurso de serviço nos detalhes do trabalho contém o ARN do trabalho de SageMaker treinamento:

{ "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/my-training-job" } } }

Você pode usar esse ARN para obter detalhes adicionais diretamente de: SageMaker

aws sagemaker describe-training-job \ --training-job-name my-training-job

Monitore o progresso do trabalho verificando AWS Batch o status e o status do trabalho de SageMaker treinamento. O status do AWS Batch trabalho mostra o ciclo de vida geral do trabalho, enquanto o status do trabalho de SageMaker treinamento fornece detalhes específicos do serviço sobre o processo de treinamento.