

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á.

# Filas de tarefas
<a name="job_queues"></a>

Tarefas são enviadas para uma fila, onde permanecem até que sejam programadas para execução em um ambiente de computação. Uma AWS conta pode ter várias filas de trabalho. Por exemplo, você pode criar uma fila com instâncias sob demanda Amazon EC2 para tarefas de alta prioridade e outra com instâncias spot Amazon EC2 para tarefas de menor prioridade. As filas de tarefas têm uma prioridade usada pelo programador para determinar quais tarefas em quais filas devem ser avaliadas para execução em primeiro lugar.

**Topics**
+ [Crie uma fila de trabalhos](create-job-queue.md)
+ [Exibir uma fila de trabalhos em AWS Batch](job_queue_viewing_status.md)
+ [Excluir uma fila de trabalhos no AWS Batch](delete-job-queue.md)
+ [Políticas de agendamento de compartilhamento justo](job_scheduling.md)
+ [Agendamento com reconhecimento de recurso](resource-aware-scheduling.md)
+ [Gerenciamento de cotas](quota-management.md)

# Crie uma fila de trabalhos
<a name="create-job-queue"></a>

Antes de enviar trabalhos em AWS Batch, você precisa criar uma fila. Ao criar uma fila de tarefas, você associa um ou mais ambientes de computação à fila e lhes atribui uma ordem de preferência.

Você também pode definir uma prioridade para a fila de tarefas para determinar a ordem na qual o programador AWS Batch irá posicionar as tarefas. Isso quer dizer que, se um ambiente de computação for associado a mais de uma fila de tarefas, aquela com prioridade mais alta terá preferência.

**Topics**
+ [Criar uma fila de trabalhos Amazon EC2](create-job-queue-ec2.md)
+ [Criar uma fila de trabalhos Fargate](create-job-queue-fargate.md)
+ [Criar uma fila de trabalhos Amazon EKS](create-job-queue-eks.md)
+ [Criar uma fila de trabalhos do SageMaker Training no AWS Batch](create-sagemaker-job-queue.md)
+ [Modelo de fila de trabalhos](job-queue-template.md)

# Criar uma fila de trabalhos Amazon EC2
<a name="create-job-queue-ec2"></a>

Conclua as etapas a seguir para criar uma fila de trabalhos para o Amazon Elastic Compute Cloud (Amazon EC2).

**Para criar uma fila de tarefas Amazon EC2**

1. Abra o console AWS Batch em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Na barra de navegação, selecione Região da AWS a ser usada.

1. No painel de navegação, escolha **Filas de Tarefas**.

1. Escolha **Criar**.

1. Para o **Tipo de orquestração,** escolha **Amazon Elastic Compute Cloud (Amazon EC2)**.

1. Para **Nome**, insira um nome exclusivo para a sua fila de tarefas. Ele pode ter até 128 caracteres e conter letras minúsculas, maiúsculas, números e sublinhados (\$1).

1. Em **Prioridade**, insira um valor inteiro para a prioridade da fila de tarefas. As filas com prioridade mais alta serão executadas antes das filas com prioridade mais baixa associadas ao mesmo ambiente de computação. A prioridade é determinada em ordem decrescente. Por exemplo, uma fila de tarefas com valor de prioridade 10 tem preferência de programação em relação a uma fila com valor de prioridade 1.

1. (Opcional) Para **Política de Agendamento do Nome do Recurso da Amazon (ARN)**, escolha uma política de agendamento existente.

1. Em **Ambientes de Computação Conectados**, selecione um ou mais ambientes de computação da lista para associar à lista de tarefas. Selecione ambientes de computação na ordem que quiser que a fila tente posicionar a fila de tarefas. O programador de trabalhos usará a ordem do ambiente de computação para determinar o ambiente de computação responsável por iniciar uma tarefa específica. Antes de poder associá-los a uma fila de tarefas, os ambientes de computação devem estar no estado `VALID`. Você pode associar até três ambientes de computação a uma fila de tarefas. Caso não possua um ambiente de computação existente, escolha **Criar Ambiente Computacional**
**nota**  
Todos os ambientes de computação associados a uma fila devem compartilhar o mesmo modelo de provisionamento. AWS Batch não é compatível com a mistura de modelos de provisionamento em uma única fila de tarefas.

1. Em **Computar Ordem de Provisionamento**, escolha as setas para cima e para baixo para configurar a ordem desejada.

1. Escolha **Criar Fila de Tarefas** para concluir e criar sua fila.

# Criar uma fila de trabalhos Fargate
<a name="create-job-queue-fargate"></a>

Conclua as etapas a seguir para criar uma fila de trabalho para o AWS Fargate.

**Para criar uma fila de tarefas**

1. Abra o console AWS Batch em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Na barra de navegação, selecione Região da AWS a ser usada.

1. No painel de navegação, escolha **Filas de Tarefas**.

1. Escolha **Criar**.

1. Para **Tipo de Orquestração**, escolha **Fargate**.

1. Para **Nome**, insira um nome exclusivo para a sua fila de tarefas. Ele pode ter até 128 caracteres e conter letras minúsculas, maiúsculas, números e sublinhados (\$1).

1. Em **Prioridade**, insira um valor inteiro para a prioridade da fila de tarefas. As filas com prioridade mais alta serão executadas antes das filas com prioridade mais baixa associadas ao mesmo ambiente de computação. A prioridade é determinada em ordem decrescente. Por exemplo, uma fila de tarefas com valor de prioridade 10 tem preferência de programação em relação a uma fila com valor de prioridade 1.

1. (Opcional) Para **Política de Agendamento do Nome do Recurso da Amazon (ARN)**, escolha uma política de agendamento existente.

1. Em **Ambientes de Computação Conectados**, selecione um ou mais ambientes de computação da lista para associar à lista de tarefas. Selecione ambientes de computação na ordem que quiser que a fila tente posicionar a fila de tarefas. O programador de trabalhos usará a ordem do ambiente de computação para determinar o ambiente de computação responsável por iniciar uma tarefa específica. Antes de poder associá-los a uma fila de tarefas, os ambientes de computação devem estar no estado `VALID`. Você pode associar até três ambientes de computação a uma fila de tarefas.
**nota**  
Todos os ambientes de computação associados a uma fila devem compartilhar o mesmo modelo de provisionamento. AWS Batch não é compatível com a mistura de modelos de provisionamento em uma única fila de tarefas.

1. Em **Computar Ordem de Provisionamento**, escolha as setas para cima e para baixo para configurar a ordem desejada.

1. Escolha **Criar Fila de Tarefas** para concluir e criar sua fila.

# Criar uma fila de trabalhos Amazon EKS
<a name="create-job-queue-eks"></a>

Conclua as etapas a seguir para criar uma fila de trabalho para o Amazon Elastic Kubernetes Service (Amazon EKS).

**Para criar uma fila de trabalhos Amazon EKS**

1. Abra o console AWS Batch em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Na barra de navegação, selecione Região da AWS a ser usada.

1. No painel de navegação, escolha **Filas de Tarefas**.

1. Escolha **Criar**.

1. Em **Tipo de Orquestração**, escolha **Amazon Elastic Kubernetes Service (Amazon EKS)**.

1. Para **Nome**, insira um nome exclusivo para a sua fila de tarefas. Ele pode ter até 128 caracteres e conter letras minúsculas, maiúsculas, números e sublinhados (\$1).

1. Para **Prioridade**, insira um valor inteiro para a prioridade da fila de tarefas. As filas com prioridade mais alta serão executadas antes das filas com prioridade mais baixa associadas ao mesmo ambiente de computação. A prioridade é determinada em ordem decrescente. Por exemplo, uma fila de tarefas com valor de prioridade 10 tem preferência de programação em relação a uma fila com valor de prioridade 1.

1. (Opcional) Para **Política de Agendamento do Nome do Recurso da Amazon (ARN)**, escolha uma política de agendamento existente.

1. Em **Ambientes de Computação Conectados**, selecione um ou mais ambientes de computação da lista para associar à lista de tarefas. Selecione ambientes de computação na ordem que quiser que a fila tente posicionar a fila de tarefas. O programador de trabalhos usará a ordem do ambiente de computação para determinar o ambiente de computação responsável por iniciar uma tarefa específica. Antes de poder associá-los a uma fila de tarefas, os ambientes de computação devem estar no estado `VALID`. Você pode associar até três ambientes de computação a uma fila de tarefas.
**nota**  
Todos os ambientes de computação associados a uma fila devem compartilhar o mesmo modelo de provisionamento. AWS Batch não é compatível com a mistura de modelos de provisionamento em uma única fila de tarefas.
**nota**  
Todos os ambientes de computação associados a uma fila de trabalhos devem compartilhar a mesma arquitetura. AWS Batch não oferece suporte à mistura de tipos de arquitetura de ambiente de computação em uma única fila de tarefas.

1. Em **Computar Ordem de Provisionamento**, escolha as setas para cima e para baixo para configurar a ordem desejada.

1. Escolha **Criar Fila de Tarefas** para concluir e criar sua fila.

# Criar uma fila de trabalhos do SageMaker Training no AWS Batch
<a name="create-sagemaker-job-queue"></a>

As filas de trabalhos do SageMaker Training se integram diretamente ao serviço SageMaker AI para fornecer agendamento de tarefas em tecnologia sem servidor, sem exigir que você gerencie a infraestrutura computacional subjacente.

## Pré-requisitos
<a name="sagemaker-job-queue-prerequisites"></a>

Antes de criar uma lista de trabalhos do SageMaker Training, certifique-se de ter:
+ **Ambiente de serviço** — Um ambiente de serviço que define limites de capacidade. Para obter mais informações, consulte [Crie um ambiente de serviço em AWS Batch](create-service-environments.md).
+ **Permissões do IAM** — Permissões para criar e gerenciar filas de trabalhos AWS Batch e ambientes de serviço. Para obter mais informações, consulte [AWS Batch Políticas, funções e permissões do IAM](IAM_policies.md).

------
#### [ Create a SageMaker Training job queue (AWS Batch console) ]

1. Abra o console AWS Batch em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. No painel de navegação, escolha **Filas de trabalho** e **Criar**.

1. Em **Tipo de orquestração**, escolha **SageMaker Training**.

1. Em **Configuração da fila de trabalhos**:

   1. Em **Nome**, insira o nome da fila de trabalho.

   1. Em **Prioridade**, insira um valor entre 0 e 1000. Uma fila de trabalhos com maior prioridade tem preferência para ambientes de serviço.

   1. (Opcional) Para **Política de Agendamento do Nome do Recurso da Amazon (ARN)**, escolha uma política de agendamento existente.

   1. Para **Ambientes de serviços conectados**, selecione um ambiente de serviço da lista para associar à lista de tarefas. 

1. (Opcional) Em **Limites de estado de trabalho**:

   1. Em **Configuração incorreta**, escolha `SERVICE_ENVIRONMENT_MAX_RESOURCE` e insira o **Tempo máximo de execução (segundos) **.

   1. Em **Capacidade**, escolha `INSUFFICIENT_INSTANCE_CAPACITY` e insira o **Tempo máximo de execução (segundos)**.

1. Selecione **Criar fila de trabalho**.

------
#### [ Create a SageMaker Training job queue (AWS CLI) ]

Use o comando `create-job-queue` para criar uma fila de trabalhos do SageMaker Training.

O exemplo a seguir cria uma fila de trabalhos básica do SageMaker Training que usa um ambiente de serviço:

```
aws batch create-job-queue \
  --job-queue-name my-sm-training-fifo-jq \
  --job-queue-type SAGEMAKER_TRAINING \
  --priority 1 \
  --service-environment-order order=1,serviceEnvironment=ExampleServiceEnvironment
```

Substitua *ExampleServiceEnvironment* pelo nome do seu ambiente de serviço.

Esse comando retorna uma saída semelhante à seguinte:

```
{
  "jobQueueName": "my-sm-training-fifo-jq",
  "jobQueueArn": "arn:aws:batch:region:account:job-queue/my-sm-training-fifo-jq"
}
```

Depois de criar sua fila de trabalhos, verifique se ela foi criada com sucesso e se está em um estado válido.

Use o comando `describe-job-queues` para visualizar detalhes sobre a lista de trabalhos:

```
aws batch describe-job-queues --job-queues my-sm-training-fifo-jq
```

Esse comando retorna uma saída semelhante à seguinte:

```
{
  "jobQueues": [
    {
      "jobQueueName": "my-sm-training-fifo-jq",
      "jobQueueArn": "arn:aws:batch:region:account:job-queue/my-sm-training-fifo-jq",
      "state": "ENABLED",
      "status": "VALID",
      "statusReason": "JobQueue Healthy",
      "priority": 1,
      "computeEnvironmentOrder": [],
      "serviceEnvironmentOrder": [
        {
          "order": 1,
          "serviceEnvironment": "arn:aws:batch:region:account:service-environment/ExampleServiceEnvironment"
        }
      ],
      "jobQueueType": "SAGEMAKER_TRAINING",
      "tags": {},
      "jobStateTimeLimitActions": []
    }
  ]
}
```

Verifique se:
+ O `state` é `ENABLED`
+ O `status` é `VALID`
+ O `statusReason` é `JobQueue Healthy`
+ O `jobQueueType` é `SAGEMAKER_TRAINING`
+ `serviceEnvironmentOrder` faz referência ao seu ambiente de serviço

------

# Modelo de fila de trabalhos
<a name="job-queue-template"></a>

O seguinte é um modelo de fila de tarefas vazio. Você pode usar esse modelo para criar sua fila de trabalhos. Em seguida, você pode salvar essa fila de trabalhos em um arquivo e usá-la com a AWS CLI `--cli-input-json` opção. Para obter mais informações sobre esses parâmetros, consulte [CreateJobQueue](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateJobQueue.html) no *AWS Batch API Reference*.

**nota**  
Você pode gerar o modelo de fila de trabalhos com o comando da AWS CLI a seguir.  

```
$ aws batch create-job-queue --generate-cli-skeleton
```

```
{
   "computeEnvironmentOrder": [ 
      { 
         "computeEnvironment": "",
         "order": 0
      }
   ],
   "jobQueueName": "",
   "jobStateTimeLimitActions": [ 
      { 
         "state": "RUNNABLE",
         "action": "CANCEL",
		 "maxTimeSeconds": 0,
         "reason": ""

      }
   ],
   "priority": 0,
   "schedulingPolicyArn": "",
   "state": "ENABLED",
   "tags": { 
      "KeyName": ""
   }
}
```

# Exibir uma fila de trabalhos em AWS Batch
<a name="job_queue_viewing_status"></a>

Depois de criar uma fila de trabalho e enviar trabalhos, é importante poder monitorar o progresso. É possível usar a página **Detalhes do trabalho** para revisar, gerenciar e monitorar a fila de trabalhos.

## Visualizar informações sobre a fila de trabalhos
<a name="view-job-queue-info"></a>

No AWS Batch console, selecione **Filas de trabalhos** no painel de navegação e escolha a fila de trabalhos desejada para ver seus detalhes. Nessa página, é possível revisar e gerenciar a fila de trabalhos e ver informações adicionais sobre as operações da fila, como o snapshot da fila de trabalhos, limites de estado do trabalho, a ordem do ambiente, etiquetas e o código JSON da fila de trabalhos.

### Detalhes da fila de trabalhos
<a name="job-queue-info-details"></a>

Esta seção fornece uma visão geral e as opções de manutenção para a fila de trabalhos. Observação: é possível encontrar o nome do recurso da Amazon (ARN) nesta seção.

Para encontrar essas informações por meio do AWS Command Line Interface, use a [https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobQueues.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobQueues.html)operação junto com o nome da fila de trabalhos ou o ARN correspondente.

### Ações ativas
<a name="top-active-shares"></a>

Para filas de trabalho usando agendamento de compartilhamento justo, AWS Batch fornece visibilidade de como diferentes identificadores de compartilhamento consomem capacidade. Essas informações ajudam você a entender a distribuição de recursos e identificar os compartilhamentos que podem precisar de ajustes.

**nota**  
A guia **Compartilhamentos ativos** só está presente quando o **algoritmo de agendamento da fila de trabalhos** é Fair-share.

A seção dos 20 principais compartilhamentos ativos mostra identificadores de compartilhamento cujos trabalhos estão programados, iniciais e em execução. Essa visualização inclui:
+ **Nome do identificador de compartilhamento** - O identificador exclusivo do compartilhamento.

  Os identificadores de compartilhamento são rótulos que agrupam trabalhos para agendamento de compartilhamento justo. Quando você envia trabalhos com o mesmo identificador de compartilhamento, AWS Batch trata-os como parte da mesma carga de trabalho para fins de alocação de recursos. Os identificadores de compartilhamento ajudam a garantir a distribuição equitativa da capacidade computacional entre diferentes equipes, projetos ou tipos de carga de trabalho. Para obter mais informações, consulte [Usar identificadores de compartilhamento para identificar workloads](share-identifiers.md).
+ **Utilização da capacidade** - A quantidade de recursos que a tarefa está configurada para usar. Isso é medido em `instances``cpu`, ou `vCPU` dependendo do ambiente.
+ **Exibir ação de vagas** - Um link para ver todas as vagas desse compartilhamento.

Você pode visualizar essas informações nos formatos de lista e gráfico:
+ **Visualização de lista** - Exibição tabular com números exatos de capacidade
+ **Visualização do gráfico** - Gráfico de barras visual mostrando a utilização relativa

### Snapshot da fila de trabalhos
<a name="job-queue-info-snapshot"></a>

Esta seção fornece uma lista estática dos primeiros 100 `RUNNABLE` trabalhos que estão na fila. É possível usar o campo de pesquisa para restringir a lista, procurando informações em qualquer coluna da seção de resultados. Os trabalhos na área de resultados do snapshot são classificados com base na estratégia de execução da fila de trabalhos. Para filas de trabalhos first-in-first-out (FIFO), a ordem dos trabalhos é baseada no tempo de envio. Para as filas de trabalho de [agendamento de compartilhamento justo](fair-share-scheduling.md), a ordem dos trabalhos se baseia na prioridade do trabalho e no uso do compartilhamento. O campo **Capacidade necessária** mostra a quantidade de recursos que a tarefa está configurada para usar.

Como os resultados são um snapshot da fila de trabalhos, a lista não é atualizada automaticamente. Para atualizá-la, selecione Atualizar na parte superior da seção. Selecione o hiperlink do nome do trabalho para navegar até **Detalhes do trabalho** e visualizar o status do trabalho e outras informações relacionadas.

Para encontrar essas informações por meio do AWS CLI, use a [https://docs.aws.amazon.com/batch/latest/APIReference/API_GetJobQueueSnapshot.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_GetJobQueueSnapshot.html)operação junto com o nome da fila de trabalhos ou o ARN correspondente.

```
aws batch get-job-queue-snapshot --job-queue my-sm-training-fifo-jq
```

### Limites de estados de trabalhos
<a name="job-queue-info-state-limits"></a>

Use essa guia para rever as informações de configuração relacionadas a quanto tempo um trabalho pode permanecer em um estado `RUNNABLE` antes de ser cancelado.

Para encontrar essas informações por meio do AWS CLI, use a [https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobQueues.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobQueues.html)operação junto com o nome da fila de trabalhos ou o ARN correspondente.

### Ordem do ambiente
<a name="job-queue-info-env-order"></a>

Se a sua fila de tarefas é executada em vários ambientes, essa guia fornece a ordem e uma visão geral deles. 

Para encontrar essas informações por meio do AWS CLI, use a [https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobQueues.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobQueues.html)operação junto com o nome da fila de trabalhos ou o ARN correspondente.

### Tags
<a name="job-queue-info-tags"></a>

Use essa guia para rever e gerenciar as etiquetas associadas a essa fila de trabalho.

### JSON
<a name="job-queue-info-json"></a>

Use essa guia para copiar o código JSON que está associado a essa fila de trabalho. Em seguida, você pode reutilizar o JSON para AWS CloudFormation modelos e AWS CLI scripts.

# Excluir uma fila de trabalhos no AWS Batch
<a name="delete-job-queue"></a>

Quando você não precisar mais da fila de trabalhos, ela poderá ser desativada e excluida.

------
#### [ Delete a job queue (AWS Batch console) ]

1. Abra o console AWS Batch em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. No painel de navegação, escolha **Filas de trabalhos** e, depois, uma fila de trabalhos.

1. Escolha **Ações** e, em seguida, **Desativar**.

1. Quando o estado da fila de trabalhos estiver **Desativado**, escolha **Ações** e, em seguida, **Excluir**.

1. Na janela modal, escolha **Excluir fila de trabalhos**.

------
#### [ Delete a job queue (AWS CLI) ]

1. Desative a fila de trabalhos para evitar novos envios de trabalhos:

   ```
   aws batch update-job-queue \
     --job-queue my-sm-training-fifo-jq \
     --state DISABLED
   ```

1. Aguarde a conclusão de todos os trabalhos em execução e, em seguida, exclua a fila de trabalhos:

   ```
   aws batch delete-job-queue \
     --job-queue my-sm-training-fifo-jq
   ```

------

# Políticas de agendamento de compartilhamento justo
<a name="job_scheduling"></a>

O AWS Batch agendador avalia quando, onde e como executar trabalhos que são enviados para uma fila de trabalhos. Se você não especificar uma política de agendamento ao criar uma fila de trabalhos, o AWS Batch agendador de trabalhos usará como padrão uma estratégia FIFO (primeiro a entrar, primeiro a sair). Uma estratégia FIFO (por ordem de chegada) pode fazer com que trabalhos importantes fiquem “presos” atrás de trabalhos que foram enviados anteriormente. Ao especificar uma política de agendamento diferente, você pode alocar recursos de computação de acordo com suas necessidades específicas. 

**nota**  
Se você quiser programar a ordem específica em que os trabalhos são executados, use o `[dependsOn](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html#Batch-SubmitJob-request-dependsOn)` parâmetro in [SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html)para especificar as dependências de cada trabalho.

Se você criar uma política de agendamento e anexá-la a uma fila de trabalhos, o agendamento de compartilhamento justo será ativado. Se a fila de trabalhos tiver uma política de agendamento, a política de agendamento determinará a ordem em que os trabalhos serão executados. Para obter mais informações, consulte [Usar políticas de agendamento de compartilhamento justo para atribuir identificadores de compartilhamento](scheduling-policies.md).

**Topics**
+ [Usar identificadores de compartilhamento para identificar workloads](share-identifiers.md)
+ [Usar políticas de agendamento de compartilhamento justo para atribuir identificadores de compartilhamento](scheduling-policies.md)
+ [Usar o agendamento de compartilhamento justo para ajudar a agendar trabalhos](fair-share-scheduling.md)
+ [Tutorial: Crie uma política de agendamento de compartilhamento justo](create-scheduling-policy.md)
+ [Referência: Modelo de política de agendamento de compartilhamento justo](scheduling-policy-template.md)

# Usar identificadores de compartilhamento para identificar workloads
<a name="share-identifiers"></a>

Você pode usar identificadores de compartilhamento para marcar trabalhos e diferenciar usuários e workloads. O AWS Batch programador rastreia o uso de cada identificador de compartilhamento usando a `(T * weightFactor)` fórmula, onde *`T`*está o uso da vCPU ao longo do tempo. O agendador seleciona trabalhos com o menor uso do identificador de compartilhamento. Você pode usar um identificador de compartilhamento sem substituí-lo.

**nota**  
Os identificadores de compartilhamento são exclusivos em uma fila de trabalhos e não são agregados nas filas de trabalhos. 

Você pode definir a prioridade do agendamento de compartilhamento justo para configurar a ordem em que os trabalhos são executados em um identificador de compartilhamento. Trabalhos com prioridade de agendamento mais alta são agendados primeiro. Se você não especificar uma política de agendamento de compartilhamento justo, todos os trabalhos enviados à fila de trabalhos serão agendados na ordem FIFO. Ao enviar um trabalho, você não pode especificar um identificador de compartilhamento ou a prioridade de agendamento do compartilhamento justo.

**nota**  
Os recursos de computação anexados são alocados igualmente entre todos os identificadores de compartilhamento, a menos que sejam explicitamente substituídos.

# Usar políticas de agendamento de compartilhamento justo para atribuir identificadores de compartilhamento
<a name="scheduling-policies"></a>

Você pode usar políticas de agendamento de compartilhamento justo para configurar como os recursos computacionais em uma fila de trabalhos são alocados entre usuários ou cargas de trabalho. Usando políticas de agendamento de compartilhamento justo, você pode atribuir diferentes identificadores de compartilhamento a cargas de trabalho ou usuários. AWS Batch atribui a cada identificador de compartilhamento uma porcentagem do total de recursos que estão disponíveis durante um período de tempo. 

A percentagem de compartilhamento justo é calculada usando os valores `shareDecaySeconds` e `shareDistribution`. Você pode adicionar tempo à análise de compartilhamento justo atribuindo um tempo de decaimento à política. Adicionar tempo dá mais peso ao tempo e menos ao peso definido. Você pode reservar recursos de computação para identificadores de compartilhamento que não estejam ativos especificando uma reserva de computação. Para obter mais informações, consulte [SchedulingPolicyDetail](https://docs.aws.amazon.com/batch/latest/APIReference/API_SchedulingPolicyDetail.html).

# Usar o agendamento de compartilhamento justo para ajudar a agendar trabalhos
<a name="fair-share-scheduling"></a>

O agendamento de compartilhamento justo fornece um conjunto de controles para ajudar a agendar trabalhos. Para obter mais informações sobre parâmetros de política de agendamento, consulte [SchedulingPolicyDetail](https://docs.aws.amazon.com/batch/latest/APIReference/API_SchedulingPolicyDetail.html). 
+ **Segundos de diminuição do compartilhamento —** O período de tempo (em segundos) que o AWS Batch programador usa para calcular uma porcentagem de participação justa para cada identificador de compartilhamento. Um valor zero indica que somente o uso atual é medido. Um tempo de degradação mais longo dá mais peso ao tempo.
**nota**  
O período de tempo de degradação é calculado como: *`shareDecaySeconds + OrderMinutes`*, onde *`OrderMinutes `* é o tempo na ordem em minutos.
+ **Reserva de computação:** impede que trabalhos em um único identificador de compartilhamento usem todos os recursos anexados à fila de trabalhos. A proporção reservada é `(computeReservation/100)^ActiveFairShares` onde `ActiveFairShares` é o número de identificadores de compartilhamento ativos.
**nota**  
Se um identificador de compartilhamento tiver trabalhos em um estado `SUBMITTED`, `PENDING`, `RUNNABLE`,`STARTING` ou `RUNNING`, ele será considerado um identificador de compartilhamento ativo. Após o período de degradação expirar, um identificador de compartilhamento é considerado inativo.
+ **Fator de ponderação:** o fator de ponderação para o identificador de compartilhamento justo. O valor padrão é 1. Um valor menor permite que trabalhos do identificador de compartilhamento sejam executados ou forneça runtime adicional ao identificador de compartilhamento. Por exemplo, trabalhos que usam um identificador de compartilhamento com um fator de ponderação de 0,125 (1/8) obtêm oito vezes os recursos de computação dos trabalhos que usam um identificador de compartilhamento com um fator de ponderação 1.
**nota**  
Você só precisa definir esse atributo quando precisar atualizar o fator de peso padrão de 1.

Quando a fila de trabalhos estiver ativa e processando trabalhos, é possível revisar uma lista dos 100 primeiros trabalhos `RUNNABLE` por meio do snapshot da Fila de trabalhos. Para obter mais informações, consulte [Exibir uma fila de trabalhos em AWS Batch](job_queue_viewing_status.md). 

# Tutorial: Crie uma política de agendamento de compartilhamento justo
<a name="create-scheduling-policy"></a>

Antes de criar uma fila de tarefas com uma política de agendamento, você precisa criar uma política de agendamento. Ao criar uma política de agendamento justo, você associa um ou mais identificadores de compartilhamento, ou prefixos de identificadores de compartilhamento, com pesos para a fila e, opcionalmente, atribui um período de decaimento, além de calcular a reserva para a política.

**Para criar uma política de agendamento de compartilhamento justo**

1. Abra o AWS Batch console em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Na barra de navegação, selecione a Região a ser usada.

1. No painel de navegação, escolha **Políticas de Agendamento**, **Criar**.

1. Em **Nome**, insira um nome exclusivo para a sua política de agendamento. São permitidos até 128 caracteres (caixa alta e baixa), números, hifens e sublinhados.

1. (Opcional) Para **Segundos de decaimento de compartilhamento**, insira um valor inteiro para o tempo de decaimento de compartilhamento da política de programação de compartilhamento justo. Um tempo maior de decaimento de compartilhamentos usará consideravelmente mais recursos de computação por um período maior ao agendar trabalhos. Isso permitirá que trabalhos utilizando um identificador de compartilhamento utilizem mais recursos de computação temporariamente do que o peso do identificador de compartilhamento permitiria, caso não estivesse usando recursos de computação recentes.

1. (Opcional) Em **Reserva de computação**, insira um valor inteiro para reserva de computação da política de programação de compartilhamento justo. A reserva de computação manterá alguns v CPUs em reserva para serem usados para identificadores de compartilhamento que não estão ativos no momento.

   A proporção reservada é `(computeReservation/100)^ActiveFairShares` onde *ActiveFairShares* é o número de identificadores de compartilhamento ativos.

   Por exemplo, um `computeReservation` valor de 50 indica que AWS Batch deve reservar 50% da VCPU máxima disponível se houver apenas um identificador de compartilhamento, 25% se houver dois identificadores de compartilhamento e 12,5% se houver três identificadores de compartilhamento. Um valor `computeReservation` de 25 indica que AWS Batch deve reservar 25% da vCPU máxima disponível caso haja apenas um identificador de compartilhamento, 6,25% em caso de dois identificadores de compartilhamento e 1,56% caso haja três identificadores de compartilhamento.

1. Na seção **Atributos de compartilhamento**, é possível especificar o identificador de compartilhamento e peso de cada identificador de compartilhamento associado à política de agendamento.

   1. Escolha **Adicionar Identificador de Compartilhamento**.

   1. Para **Identificador de compartilhamento**, especifique o identificador de compartilhamento. Se a string terminar com “\$1”, isso torna-se um prefixo de identificador de compartilhamento para equiparar identificadores de compartilhamento para trabalhos. Todos os identificadores de compartilhamento e prefixos de identificador de compartilhamento em uma política de agendamento devem ser exclusivos e não podem se sobrepor. Por exemplo, você não pode ter identificadores de compartilhamento justo com prefixo “UserA\$1” e identificador de compartilhamento “UserA1” na mesma política de programação de compartilhamento justo.

   1. Para o **Fator de peso**, especifique o peso relativo para o identificador de compartilhamento. O valor padrão é 1.0. Um valor mais baixo terá prioridade mais alta para recursos de computação. Se um prefixo de identificador de compartilhamento for usado, trabalhos com identificadores de compartilhamento que começarem com o prefixo compartilharão o fator peso. Isso aumenta efetivamente o fator peso desses trabalhos, enquanto diminui sua prioridade individual e mantém o mesmo fator para o prefixo do identificador de compartilhamento.

1. (Opcional) Na seção **Tags**, você pode especificar a chave e o valor de cada tag associada à política de agendamento. Para mais informações, consulte [Marcar com tag os recursos do AWS Batch](using-tags.md).

1. Escolha **Enviar** para finalizar e criar sua política de agendamento.

# Referência: Modelo de política de agendamento de compartilhamento justo
<a name="scheduling-policy-template"></a>

Um modelo vazio de política de agendamento de compartilhamento justo é mostrado abaixo. Você pode usar esse modelo para criar sua política de agendamento, que pode ser salva em um arquivo e usada com a AWS CLI `--cli-input-json` opção. Para obter mais informações sobre esses parâmetros, consulte [CreateSchedulingPolicy](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateSchedulingPolicy.html)a *Referência AWS Batch da API*.

**nota**  
Você pode gerar um modelo de fila de trabalhos com o AWS CLI comando a seguir.  

```
$ aws batch create-scheduling-policy --generate-cli-skeleton
```

```
{
    "name": "",
    "fairsharePolicy": {
        "shareDecaySeconds": 0,
        "computeReservation": 0,
        "shareDistribution": [
            {
                "shareIdentifier": "",
                "weightFactor": 0.0
            }
        ]
    },
    "tags": {
        "KeyName": ""
    }
}
```

# Agendamento com reconhecimento de recurso
<a name="resource-aware-scheduling"></a>

AWS Batch agenda trabalhos com base na vCPU, na GPU e na disponibilidade de memória no Compute Environment (CE) associado à Job Queue (JQ). Mas, às vezes, apenas a disponibilidade desses recursos de CE não garante que o trabalho seja executado com sucesso, pois pode depender de outros recursos necessários, portanto, esses trabalhos são cancelados ou encerrados. Isso resulta no uso ineficiente dos recursos computacionais. Para resolver esse problema, o agendamento com reconhecimento de recursos pode verificar a disponibilidade de recursos dependentes que não sejam do CE antes de programar o trabalho para execução em um CE.

AWS Batch o agendamento com reconhecimento de recursos permite que você agende trabalhos com base nos recursos consumíveis necessários para executar seus trabalhos — tokens de licença de terceiros, largura de banda de acesso ao banco de dados, necessidade de limitar as chamadas para uma API de terceiros e assim por diante. Você especifica os recursos consumíveis necessários para a execução de um trabalho e o Batch leva essas dependências de recursos em consideração ao agendar um trabalho. Você pode evitar intervenções manuais para eliminar falhas no trabalho e longas esperas causadas pela escassez de recursos consumíveis. Você pode reduzir a subutilização dos recursos computacionais alocando somente os trabalhos que têm todos os recursos necessários disponíveis.

O agendamento com reconhecimento de recursos está disponível para políticas de agendamento FIFO e de compartilhamento justo e pode ser usado com todas as plataformas de computação compatíveis com o Batch, incluindo EKS, ECS e Fargate. Ele pode ser usado com trabalhos de matriz, trabalhos de paralelos de vários nós (MNP) e trabalhos de Batch regulares.

Para configurar o agendamento com reconhecimento de recursos, primeiro você especifica todos os recursos consumíveis necessários para executar seus trabalhos, junto com a contagem total disponível de cada recurso. Em seguida, para cada trabalho que requer um recurso consumível, você especifica o nome e as quantidades necessárias de cada recurso necessário. O Batch acompanha quantos recursos consumíveis estão disponíveis para os trabalhos em suas filas de trabalhos e garante que um trabalho seja programado para execução somente quando todos os recursos consumíveis necessários estiverem disponíveis para que o trabalho seja executado com sucesso. 

**Topics**
+ [Criar recursos consumíveis](resource-aware-scheduling-how-to-create.md)
+ [Especificar os recursos necessários para executar um trabalho](resource-aware-scheduling-how-to-for-jobs.md)
+ [Verificar quantos recursos estão em uso e disponíveis](resource-aware-scheduling-how-to-check-resources-check-resources.md)
+ [Atualizar a quatidade de um recurso enquanto ele é usado em trabalhos](resource-aware-scheduling-how-to-update-quantity.md)
+ [Encontrar os trabalhos que exigem um recurso consumível específico](resource-aware-scheduling-how-to-find-jobs.md)
+ [Excluir um recurso consumível](resource-aware-scheduling-how-to-delete.md)

# Criar recursos consumíveis
<a name="resource-aware-scheduling-how-to-create"></a>

Primeiro, você deve criar os recursos consumíveis que representam os recursos não CE que são consumidos quando um trabalho está em execução e estão disponíveis somente em quantidades limitadas. Cada recurso consumível tem o seguinte: 
+ nome do recurso (`consumableResourceName`) que deve ser exclusivo no nível da conta.
+ (opcional) tipo de recurso (`resourceType`) que indica se o recurso está disponível para ser reutilizado após a conclusão de um trabalho. Isto pode ser:
  + `REPLENISHABLE` (padrão)
  + `NON_REPLENISHABLE`
+ quantidade total (`totalQuantity`) que especifica a quantidade total do recurso consumível disponível.

O número máximo de recursos consumíveis por conta é de 50 mil.

**Consola:**

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Recursos consumíveis**.

1. Escolha **Criar recurso consumível**.

1. Insira um **Nome de recurso** exclusivo, a **Quantidade total de recursos** e selecione se o **Tipo de recurso** é **Renovável** ou **Não renovável**.

1. Escolha **Criar recurso consumível**.

**API:**

Use a [API `CreateConsumableResource`](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateConsumableResource.html) para definir os recursos que você deseja.

# Especificar os recursos necessários para executar um trabalho
<a name="resource-aware-scheduling-how-to-for-jobs"></a>

Ao registrar um trabalho, você pode especificar o nome de um ou mais recursos criados (`consumableResource`) e a quantidade desse recurso que cada instância do trabalho exige (`quantity`).

O Batch acompanha as unidades disponíveis de cada recurso a qualquer momento. Para cada trabalho na fila de trabalhos, o agendador Batch garante que seu trabalho seja executado somente quando as dependências de recursos especificadas estiverem disponíveis.

Se um recurso consumível para o trabalho não estiver disponível quando o trabalho chegar ao topo da fila, o trabalho aguardará em estado `RUNNABLE` até que todos os recursos necessários estejam disponíveis ou que o limite de tempo do estado do trabalho seja atingido (consulte [Exibir uma fila de trabalhos em AWS Batch](job_queue_viewing_status.md)). Depois que o Batch valida que todos os recursos estão disponíveis, a tarefa passa para o estado `STARTING` e depois para `RUNNING`. Os recursos são bloqueados quando o trabalho é transferido para `STARTING` e, em seguida, são desbloqueados quando o trabalho é transferido para `SUCCEEDED` ou `FAILED`.

Você também pode atualizar a quantidade de um recurso necessário para um trabalho específico ao enviar o trabalho.

**Consola:**

**Para especificar recursos e suas quantidades necessárias ao definir um trabalho:**

1. Defina um trabalho usando o assistente de definição de trabalhos do [Console AWS Batch](https://console.aws.amazon.com/batch) (**Definições de trabalhos** -> **Criar**).

1. Na Etapa 4: **Configurar contêineres** do assistente, em **Recurso consumível**, selecione o **Nome** de um recurso necessário na lista. No campo **Valor solicitado**, insira a quantidade desse recurso necessária para uma instância desse trabalho e escolha **Adicionar recurso consumível.**

1. Repita a etapa anterior para todos os recursos consumíveis exigidos pelo trabalho. É possível especificar até cinco recursos para cada trabalho definido.

1. Você verá uma lista dos recursos consumíveis que você criou depois de concluir o assistente de definição de trabalho, mas antes de escolher **Criar definição de trabalho**.

**Para atualizar as quantidades necessárias de recursos ao enviar um trabalho:**

1. No painel de navegação da esquerda do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Trabalhos** e, em seguida, escolha **Enviar novo trabalho**.

1. Na Etapa 2: **Configurar substituições** do assistente, em **Substituições de recursos consumíveis**, insira um novo **Valor solicitado** para qualquer recurso consumível cuja quantidade necessária você queira substituir para o trabalho.

1. Depois de concluir todas as substituições que você deseja fazer para esse trabalho, escolha **Avançar** para continuar para **Revisar e enviar**.

**API:**

Ao registrar um trabalho na [API `RegisterJobDefinition`](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html), use o `consumableResourceList` na parte `consumableResourceProperties` da solicitação para especificar os recursos consumíveis necessários para executar uma instância do trabalho e a quantidade de cada um.

Ao enviar um trabalho com a [API `SubmitJob`](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html), você pode substituir a lista de recursos consumíveis e a quantidade de cada um usando a parte `consumableResourcePropertiesOverride` da solicitação. Observe que isso substitui apenas a quantidade do recurso necessária para cada instância do trabalho, não a quantidade total disponível.

# Verificar quantos recursos estão em uso e disponíveis
<a name="resource-aware-scheduling-how-to-check-resources-check-resources"></a>

O Batch permite que você consulte o número de recursos disponíveis (`availableQuantity`), o número de recursos em uso (`inUseQuantity`) e o total de recursos (`totalQuantity`) em um determinado momento.

Quando um trabalho vai para o estado `STARTING`, os recursos consumidos serão subtraídos da quantidade disponível desse recurso. Se o recurso for `REPLENISHABLE`, o número de recursos consumidos será adicionado de volta à quantidade disponível assim que o trabalho for movido para o estado SUCCEEDED ou FAILED, e a quantidade total permanecerá a mesma. Se o recurso for `NON_REPLENISHABLE`, o número de recursos consumidos será subtraído das quantidades totais e disponíveis e não será adicionado novamente se o trabalho for transferido para o estado `SUCCEEDED` ou `FAILED`.

**nota**  
Essas informações podem ter um atraso de até 30 segundos.

**Consola:**

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Recursos consumíveis**.

1. Selecione a guia **Renovável** ou **Não Renovável** para visualizar os recursos desse tipo que você criou.

1. Para cada recurso **Renovável**, o console exibe o **Nome**, a quantidade **Total** do recurso, o número atualmente **Em uso** e quantos ainda estão **Disponíveis**, junto com um cálculo da **Utilização** (o número de recursos em uso dividido pela quantidade total desse recurso).

   Para cada recurso **Não Renovável**, o console exibe o **Nome**, o número atualmente **Em uso** e quantos ainda estão **Disponíveis**.

Você também pode visualizar as informações atuais sobre recursos consumíveis na página de detalhes do trabalho no console.

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Trabalhos** e selecione o nome de um trabalho para abrir a página de detalhes desse trabalho.

1. Informações sobre **Recursos Renováveis** e **Recursos não Renováveis** estão disponíveis para verificar se são exigidos pelo trabalho. Para ambos os tipos, o console exibe o **Nome** do recurso, a quantidade **Solicitada** para o trabalho, quantos ainda estão **Disponíveis**, o número atualmente **Em uso**, a quantidade **Total** do recurso, junto com um cálculo da **Utilização atual** (o número de recursos em uso pelo trabalho dividido pela quantidade total desse recurso).

**API:**

Use a [API `DescribeConsumableResource`](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeConsumableResource.html), que retorna as seguintes informações:

```
{
   "availableQuantity": number,
   "consumableResourceArn": "string",
   "consumableResourceName": "string",
   "createdAt": number,
   "inUseQuantity": number,
   "resourceType": "string",
   "tags": { 
      "string" : "string" 
   },
   "totalQuantity": number
}
```

A [API `ListConsumableResources`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListConsumableResources.html) também relata o número de recursos em uso (`inUseQuantity`) e o número total de recursos atualmente disponíveis (`totalQuantity`) como parte da lista de todos os recursos consumíveis que você criou em sua conta. Essa API também permite filtrar a consulta da lista de recursos consumíveis com base no nome do recurso consumível.

# Atualizar a quatidade de um recurso enquanto ele é usado em trabalhos
<a name="resource-aware-scheduling-how-to-update-quantity"></a>

Você pode redefinir a quantidade total de um recurso para um novo valor, adicionar à quantidade total ou subtrair dela.

Se a nova quantidade total especificada for maior do que antes, o Batch agenda mais trabalhos de acordo com isso. Se a nova quantidade total for menor do que antes e não houver unidades desse recurso em uso, o Batch apenas reduzirá a quantidade total (ou disponível). Se houver unidades em uso, o Batch reduz a quantidade disponível imediatamente e, à medida que os trabalhos são concluídos, o Batch reduz a quantidade total (disponível) para que, eventualmente, chegue ao novo número. 

**Consola:**

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Recursos consumíveis**.

1. Selecione a guia **Renovável** ou **Não Renovável** para visualizar os recursos desse tipo que você criou.

1. Para recursos **Renováveis**:

   1. Escolha o recurso que você deseja atualizar, selecione **Ações** e escolha **Definir recursos**, **Adicionar recursos** ou **Remover recursos**.

   1. É exibida uma janela pop-up na qual você pode **Definir o valor total**, **Adicionar recursos** ou **Remover recursos**, dependendo da ação escolhida na etapa anterior. Insira a quantidade que você deseja definir como o novo valor total, que deseja adicionar à quantidade total ou que deseja subtrair da quantidade total e selecione **OK**.

   Para recursos **Não renováveis**:

   1. Escolha o recurso que você deseja atualizar, selecione **Ações** e escolha **Definir recursos**, **Adicionar recursos** ou **Remover recursos**.

   1. É exibida uma janela pop-up na qual você pode **Definir o valor disponível**, **Adicionar recursos** ou **Remover recursos**, dependendo da ação escolhida na etapa anterior. Insira a quantidade que você deseja definir como o novo valor disponível, que deseja adicionar à quantidade disponível ou que deseja subtrair da quantidade disponível e, em seguida, selecione **OK**.

**API:**

Use a [API `UpdateConsumableResource`](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateConsumableResource.html) para definir uma nova quantidade total para o recurso ou para aumentar ou reduzir a quantidade total.

# Encontrar os trabalhos que exigem um recurso consumível específico
<a name="resource-aware-scheduling-how-to-find-jobs"></a>

O Batch permite recuperar uma lista de trabalhos que exigem um recurso consumível específico.

**Consola:**

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Recursos consumíveis**.

1. Na lista, selecione o nome do recurso consumível. A página de detalhes desse recurso é aberta.

1. Em **Pesquisar trabalhos**, insira os filtros que você deseja aplicar à lista de trabalhos. É possível filtrar por **Nome do trabalho** (“igual a”, “começa com”), por **Intervalo de datas** (quando o trabalho foi criado) e por **Critérios adicionais** (“fila de trabalhos”, “definição do trabalho”, “identificador de trabalho compartilhado”). Para cada tipo de filtro que você deseja aplicar, selecione entre as opções disponíveis na lista suspensa e insira as informações adicionais solicitadas.

   Selecione a opção **Pesquisar**.

1. Uma lista (filtrada) de trabalhos que exigem o recurso consumível é exibida, incluindo o nome do trabalho, status, número de unidades solicitadas do recurso consumível, outros recursos consumíveis necessários e assim por diante. Nessa lista, é possível selecionar um ou mais trabalhos para **Cancelar** ou **Encerrar**. Você também pode selecionar o nome de um trabalho para abrir a respectiva página de detalhes.

1. Em **Pesquisar trabalhos**, agora é possível **Atualizar os resultados** ou **Limpar a pesquisa** e começar de novo.

**API:**

Você pode obter uma lista de trabalhos que usam um recurso consumível específico com a [API `ListJobsByConsumableResource`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListJobsByConsumableResource.html). Essa API também permite filtrar a consulta da lista de trabalhos usando o status do trabalho ou o nome do trabalho.

# Excluir um recurso consumível
<a name="resource-aware-scheduling-how-to-delete"></a>

Você pode excluir um recurso consumível a qualquer momento, mesmo quando os trabalhos que exigem o recurso ainda estão em execução. Depois que um recurso consumível é excluído, pode haver uma lacuna entre o momento em que o comando de excluir é recebido e quando o agendador de trabalhos honra a exclusão, portanto, é possível que os trabalhos que consomem o recurso sejam agendados logo após a chamada de exclusão. Se o recurso consumível excluído tiver o tipo de recurso (`resourceType`) `REPLENISHABLE`, isso será ignorado quando os trabalhos forem concluídos. Se você excluir um recurso consumível e recriá-lo com o mesmo nome, ele será considerado o mesmo recurso e poderá ser usado por trabalhos `RUNNABLE`.

**Consola:**

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Recursos consumíveis**.

1. Selecione a guia **Renovável** ou **Não Renovável** para visualizar os recursos desse tipo que você criou.

1. Selecione cada recurso que deseja excluir e escolha **Excluir**. Uma janela pop-up **Excluir recurso consumível** aparece. Para confirmar a exclusão, selecione **Excluir**.

Também é possível excluir um recurso consumível de sua página de detalhes no console.

1. No painel de navegação esquerdo do [Console AWS Batch](https://console.aws.amazon.com/batch), escolha **Recursos consumíveis**.

1. Selecione a guia **Renovável** ou **Não Renovável** para visualizar os recursos desse tipo que você criou.

1. Escolha o nome do recurso que deseja excluir. A página de detalhes do recurso consumível é exibida. Escolha **Excluir**. Uma janela pop-up **Excluir recurso consumível** aparece. Para confirmar a exclusão, selecione **Excluir**.

**API:**

Use a [API `DeleteConsumableResource`](https://docs.aws.amazon.com/batch/latest/APIReference/API_DeleteConsumableResource.html) para excluir um recurso consumível.

# Gerenciamento de cotas
<a name="quota-management"></a>

AWS Batch programa trabalhos com base nos recursos que o trabalho exige e na capacidade disponível no Ambiente de Serviço (SE) conectado, permitindo a alta utilização dos recursos computacionais. Com o gerenciamento de cotas, os administradores também podem controlar quantos recursos uma equipe ou projeto pode consumir por meio de alocações de recursos mais refinadas.

O gerenciamento de cotas permite que os administradores aloquem com eficiência recursos computacionais compartilhados entre equipes e projetos definindo **compartilhamentos de cotas associados — AWS Batch recursos que incluem cotas** de computação (**limites de capacidade**) e estratégias de compartilhamento de recursos para computação ociosa. Cada compartilhamento de cota opera como uma fila virtual aninhada em uma fila de trabalhos associada. Ao agendar trabalhos para uma fila de trabalhos, AWS Batch percorrerá todos os compartilhamentos de cota anexados.

Os administradores podem habilitar o compartilhamento de recursos entre cotas com confiança, pois a **preempção** permitirá que qualquer compartilhamento de cota recupere recursos que tenha emprestado a outras pessoas quando necessário. Em um compartilhamento de cota, você pode escolher se os trabalhos em execução devem ser substituídos por trabalhos de maior prioridade ou se deseja permitir que os trabalhos em execução sejam concluídos. As prioridades do trabalho podem ser definidas no envio e atualizadas posteriormente; as prioridades atualizadas são levadas em consideração à medida que as decisões de preempção são tomadas. A utilização da capacidade pode ser monitorada na fila, no compartilhamento de cotas e na granularidade no nível do trabalho.

O gerenciamento de cotas só é suportado para filas de tarefas conectadas a um ambiente de `SAGEMAKER_TRAINING` serviço.

**Topics**
+ [Ações de cota](quota-shares.md)
+ [Preempção](preemption.md)
+ [Crie recursos de gerenciamento de cotas](create-quota-management-resources.md)
+ [Criação de compartilhamentos de cotas](create-quota-shares.md)
+ [Envio de trabalhos para um compartilhamento de cota](submit-job-quota-share.md)

# Ações de cota
<a name="quota-shares"></a>

Os **compartilhamentos de cotas** são filas virtuais aninhadas em uma fila de trabalhos. No máximo 20 podem ser anexados a qualquer fila de trabalhos. Os compartilhamentos de cota permitem alocar uma cota de computação para uma equipe ou projeto, por meio do uso de **limites de capacidade**; um compartilhamento de cota exige que pelo menos um limite de capacidade seja fornecido e suporta no máximo 5 limites de capacidade. Cada limite de capacidade deve ser expresso como limites de instância para os tipos de instâncias de trabalho de SageMaker treinamento compatíveis.

## Estratégia de compartilhamento de recursos de cotas
<a name="quota-share-resource-sharing"></a>

Os compartilhamentos de cotas também têm uma configuração explícita de compartilhamento de recursos.
+ Se a computação ociosa de um compartilhamento de cota precisar ser reservada somente para seus trabalhos, selecione. `RESERVE`
+ Se a computação ociosa de um compartilhamento de cota puder ser emprestada a outros compartilhamentos de cota, selecione. `LEND`
+ Se a computação ociosa de um compartilhamento de cota puder ser emprestada a outros compartilhamentos de cota e os trabalhos do compartilhamento de cota precisarem ter permissão para emprestar computação ociosa, selecione com um limite de empréstimo configurado. `LEND_AND_BORROW`

## Restauração de capacidade por meio de preempção
<a name="capacity-limit-restoration"></a>

AWS Batch realizará a **preempção de ações cruzadas** para restaurar a capacidade emprestada de volta a uma cota quando os empregos chegarem. Ao escolher quais trabalhos antecipar, AWS Batch considere o número e o tipo de instâncias que um trabalho está tomando emprestado, as prioridades relativas dos trabalhos e a duração do trabalho, e aplica uma heurística personalizada.

Os administradores que reduzem os limites de capacidade de um compartilhamento de cota também podem tornar ou `RUNNING` trabalhos dentro dessa cota elegíveis para preempção `SCHEDULED``STARTING`, mesmo que tenham `RESERVE` sido selecionados como a estratégia de compartilhamento de recursos, se `LEND` a capacidade já consumida por esse compartilhamento de cota estiver acima dos limites de capacidade reduzidos.

# Preempção
<a name="preemption"></a>

O gerenciamento de cotas é o único algoritmo AWS Batch de agendamento que incorpora a **preempção**, em que AWS Batch interrompe um `SCHEDULED` `RUNNING` trabalho ou para criar capacidade para um trabalho. `STARTING` `RUNNABLE`

## Preempção de compartilhamento cruzado
<a name="cross-share-preemption"></a>

O gerenciamento de cotas usa a **preempção de compartilhamento cruzado** para restaurar a capacidade emprestada de volta a uma cota quando os trabalhos chegam.

Os administradores que reduzem os limites de capacidade de um compartilhamento de cota também podem tornar`SCHEDULED`, ou `RUNNING` trabalhos dentro desse compartilhamento de cota`STARTING`, elegíveis para preempção, se a capacidade consumida por esse compartilhamento de cota agora estiver acima dos limites de capacidade configurados.

## Preempção em ações
<a name="in-share-preemption"></a>

Os compartilhamentos de cota podem ser configurados para permitir a **preempção em compartilhamento**, o que permite que `RUNNABLE` trabalhos de maior prioridade acionem preempções de trabalhos de menor prioridade dentro do mesmo compartilhamento de cota inserido,, ou. `SCHEDULED` `STARTING` `RUNNING`

## Algoritmo de seleção por preempção
<a name="preemption-selection-algorithm"></a>

Ao escolher quais trabalhos antecipar, AWS Batch considere o número e o tipo de instâncias que um trabalho está tomando emprestado, as prioridades relativas dos trabalhos e a duração dos trabalhos, e aplica uma heurística personalizada. Você pode usar a chamada `schedulingPriority` de [UpdateServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateServiceJob.html)API para atualizar o trabalho após o envio. Isso pode ser útil tanto para diminuir a prioridade de um `RUNNING` trabalho (aumentando a probabilidade de preempção) quanto para aumentar a prioridade de um `RUNNABLE` trabalho em uma cota com a preempção em ações ativada, possibilitando que o trabalho se antecipe a um trabalho já em execução.

## Tentativas de preempção
<a name="preemption-retries"></a>

O padrão é que trabalhos antecipados sejam colocados novamente em fila sem limite. `RUNNABLE` Para limitar o número de preempções que um trabalho experimenta, defina `preemptionRetriesBeforeTermination` no envio do trabalho. Quando `preemptionRetriesBeforeTermination` está definido como 0, os trabalhos são iniciados `FAILED` em sua primeira preempção.

Uma janela deslizante de tentativas recentes de preempção é armazenada na tarefa e visível por meio dela. [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html)

# Crie recursos de gerenciamento de cotas
<a name="create-quota-management-resources"></a>

O gerenciamento de cotas exige configurações específicas ao criar uma política de agendamento, um ambiente de serviço e uma fila de trabalhos associados.

## Pré-requisitos
<a name="quota-management-resources-prerequisites"></a>

Antes de criar recursos de gerenciamento de cotas, verifique se você tem:
+ **Permissões do IAM** — Permissões para criar e gerenciar filas de AWS Batch trabalhos, políticas de agendamento e ambientes de serviço. Para obter mais informações, consulte [AWS Batch Políticas, funções e permissões do IAM](IAM_policies.md).

------
#### [ Configure quota management resources (AWS Batch console) ]

O AWS Batch console fornece um fluxo de trabalho integrado para criar todos os recursos necessários para o gerenciamento de cotas. O fluxo de trabalho de criação de filas de tarefas de gerenciamento de cotas também cria políticas de agendamento e ambientes de serviço habilitados para gerenciamento de cotas.

1. Abra o AWS Batch console em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. **No painel de navegação, escolha **Job queues** e, em seguida, Create.**

1. **Em **Tipo de orquestração**, escolha SageMaker Treinamento.**

1. Em **Configuração da fila de trabalhos**:

   1. Em **Nome**, insira o nome da fila de trabalhos.

   1. Em **Prioridade**, insira um valor entre 0 e 1000. Uma fila de trabalhos com maior prioridade tem preferência para ambientes de serviço.

1. Para **agendamento**:

   1. Em **Algoritmo de agendamento**, escolha Gerenciamento de **cotas**.

   1. Para o **ARN da política de agendamento**:
      + Se já existir uma política de agendamento que especifique o gerenciamento de cotas, selecione-a no menu suspenso.
      + Caso contrário, escolha **Criar política de agendamento**.

        1. Uma barra lateral é aberta para configurar a política de agendamento do gerenciamento de cotas.

        1. Forneça um **nome** para a política de agendamento.

        1. Escolha **Criar**. O campo **ARN da política de agendamento** agora está preenchido.

1. Para configuração do **ambiente de serviço**, em **Ambiente de serviço conectado**:
**nota**  
Ambientes de serviço habilitados para gerenciamento de cotas só podem ser conectados a uma única fila de trabalhos habilitada para gerenciamento de cotas.

   1. Se já tiver sido criado um ambiente de serviço compatível com o gerenciamento de cotas e ainda não estiver conectado a uma fila de trabalhos habilitada para gerenciamento de cotas, selecione-o no menu suspenso.

   1. Caso contrário, escolha **Criar um ambiente de serviço**. Uma barra lateral é aberta para configurar o ambiente de serviço.

      1. Forneça um **nome** para o ambiente de serviço.

      1. Forneça pelo menos um limite de capacidade (e no máximo 5). Para cada limite de capacidade, escolha um **tipo de instância** no menu suspenso e um **número máximo de** instâncias.

1. (Opcional) Em **Limites de estado de trabalho**:

   1. Em **Configuração incorreta**, escolha uma `SERVICE_ENVIRONMENT_MAX_RESOURCE` e insira o **Tempo máximo de execução (**segundos).

   1. Em **Capacidade**, escolha `INSUFFICIENT_INSTANCE_CAPACITY` e insira o **Tempo máximo de execução (segundos)**.

1. Escolha **Criar fila de trabalhos**.

------
#### [ Configure quota management resources (AWS CLI) ]

Para configurar o gerenciamento de cotas por meio da AWS CLI, crie uma política de agendamento, um ambiente de serviço e uma fila de trabalhos. Tanto a política de agendamento quanto o ambiente de serviço devem ser compatíveis com o gerenciamento de cotas e criados antes da criação da fila de trabalhos.

**Crie uma política de agendamento**

Use o `create-scheduling-policy` comando para criar uma política de agendamento compatível com o gerenciamento de cotas. Forneça uma política de compartilhamento de cotas durante a criação:

```
aws batch create-scheduling-policy \
  --name my-qm-sagemaker-scheduling-policy \
  --quota-share-policy idleResourceAssignmentStrategy="FIFO"
```

Verifique se a política de agendamento foi criada com sucesso:

```
aws batch describe-scheduling-policies \
  --arns arn-for-my-qm-sagemaker-scheduling-policy
```

**Crie um ambiente de serviço**

Use o `create-service-environment` comando para criar um ambiente de serviço habilitado para gerenciamento de cotas. Certifique-se de que os limites de capacidade usem tipos de instância aceitos pelos trabalhos de SageMaker treinamento, como `ml.g6.xlarge` ou`ml.p4d.24xlarge`.

```
aws batch create-service-environment \
  --service-environment-name my-qm-sagemaker-service-env \
  --service-environment-type SAGEMAKER_TRAINING \
  --capacity-limits capacityUnit=instance_type,maxCapacity=instance_count
```

Verifique se o ambiente do serviço foi criado com sucesso:

```
aws batch describe-service-environments \
  --service-environments my-qm-sagemaker-service-env
```

**Crie uma fila de trabalhos**

Use o `create-job-queue` comando para criar uma fila de trabalhos habilitada para gerenciamento de cotas. Os seguintes critérios devem ser atendidos:
+ Deve ser fornecido um único ambiente de `SAGEMAKER_TRAINING` serviço que não esteja conectado atualmente a outra fila de trabalhos.
+ O ambiente de serviço deve expressar limites de capacidade em termos de tipos de instância, como`ml.m6i.xlarge`, em vez de`NUM_INSTANCES`.
+ Deve ser conectada uma política de agendamento que contenha uma`quotaSharePolicy`.
+ O `jobQueueType` deve ser `SAGEMAKER_TRAINING`.

```
aws batch create-job-queue \
  --job-queue-name my-qm-sagemaker-jq \
  --job-queue-type SAGEMAKER_TRAINING \
  --priority 1 \
  --service-environment-order order=1,serviceEnvironment=my-qm-sagemaker-service-env \
  --scheduling-policy-arn arn-for-my-qm-sagemaker-scheduling-policy
```

Verifique se a fila de trabalhos foi criada com sucesso:

```
aws batch describe-job-queues \
  --job-queues my-qm-sagemaker-jq
```

Verifique se:
+ O `state` é `ENABLED`
+ O `status` é `VALID`
+ O `statusReason` é `JobQueue Healthy`

------

# Criação de compartilhamentos de cotas
<a name="create-quota-shares"></a>

Os compartilhamentos de cotas funcionam como filas virtuais dentro da fila de trabalhos associada entre as quais o AWS Batch agendador itera durante o agendamento. Eles permitem que os administradores aloquem uma cota de computação para uma equipe ou projeto por meio de` capacity limits `, com configuração explícita para a estratégia de compartilhamento de recursos. 

## Pré-requisitos
<a name="create-quota-shares-prerequisites"></a>

Antes de criar cotas compartilhadas, verifique se você tem:
+ **Política de agendamento de gerenciamento de cotas, ambiente de serviço e fila de trabalhos** — Uma política de agendamento de gerenciamento de cotas, ambiente de serviço e fila de trabalhos com o gerenciamento de cotas ativado. Para obter mais informações, consulte [Crie recursos de gerenciamento de cotas](create-quota-management-resources.md).
+ **Permissões do IAM** — Permissões para criar e gerenciar compartilhamentos de AWS Batch cotas. Para obter mais informações, consulte [AWS Batch Políticas, funções e permissões do IAM](IAM_policies.md).

------
#### [ Configure quota shares (AWS Batch console) ]

1. Abra o AWS Batch console em [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. No painel de navegação, escolha Filas de **trabalhos e selecione uma fila** de trabalhos habilitada para gerenciamento de cotas na lista. Escolha o link do nome da fila de trabalhos.

1. Na seção **Compartilhamentos de cota**, escolha **Criar compartilhamento de cota**.

1. Forneça um **nome** para o compartilhamento da cota.

1. Em **Limites de capacidade**, escolha **Adicionar limites de capacidade**. Pelo menos um limite de capacidade deve ser especificado.

   1. Selecione um **tipo de instância** no menu suspenso e defina o **máximo de instâncias** que esse compartilhamento de cota alocou para ela.

   1. (Opcional) Escolha **Adicionar limites de capacidade** e repita para anexar no máximo cinco limites de capacidade.

1. Em **Compartilhamento de capacidade**, escolha como esse compartilhamento de cota compartilha sua capacidade com outros compartilhamentos de cota na mesma fila de trabalhos:
   + Selecione **Reservar** se o compartilhamento da cota não emprestar ou emprestar computação ociosa.
   + Selecione **Emprestar** se o compartilhamento de cota puder emprestar computação ociosa a outros compartilhamentos de cota.
   + Selecione **Emprestar e emprestar se o compartilhamento da cota puder emprestar** e emprestar computação ociosa, com a computação emprestada recuperada por meio da preempção de compartilhamento cruzado quando o trabalho chegar.

1. (Opcional) Para **preempção em compartilhamento**, escolha se deseja ativar ou desativar a preempção em compartilhamento. Habilitar a preempção compartilhada permite que trabalhos de maior prioridade se antecipem a trabalhos de menor prioridade que já estão em,, ou estado. `SCHEDULED` `STARTING` `RUNNING` Desativar a preempção de compartilhamento significa que os trabalhos de maior prioridade aguardarão a disponibilidade da capacidade.

1. Escolha **Criar compartilhamento de cota**.

------
#### [ Configure quota shares (AWS CLI) ]

Use o `create-quota-share` comando para criar um compartilhamento de cota. Você deve escolher uma estratégia de compartilhamento de recursos e se deseja ativar a preempção no compartilhamento.

**Exemplo de empréstimo e empréstimo**

O exemplo a seguir cria um compartilhamento de cota que pode emprestar e emprestar capacidade ociosa, com um limite de empréstimo de 100% dos limites de capacidade configurados. Ele também permite a preempção de compartilhamento, para que os trabalhos de maior prioridade não esperem pela conclusão dos trabalhos de menor prioridade que foram agendados na SageMaker IA.

```
aws batch create-quota-share \
  --quota-share-name lend_and_borrow_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=5,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=LEND_AND_BORROW,borrowLimit=100 \
  --preemption-configuration inSharePreemption=ENABLED
```

**Dê apenas um exemplo**

Os compartilhamentos de cotas podem ser configurados apenas para fornecer capacidade ociosa, mas não para emprestá-la sozinhos. O exemplo a seguir combina `LEND` com a desativação da preempção de compartilhamento.

```
aws batch create-quota-share \
  --quota-share-name lend_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=8,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=LEND \
  --preemption-configuration inSharePreemption=DISABLED
```

**Exemplo de reserva**

Os compartilhamentos de cota também podem ser configurados para reservar capacidade ociosa. Os trabalhos recém-enviados quando um compartilhamento de cota tem capacidade ociosa podem começar mais cedo, mas a utilização geral da fila será menor se um compartilhamento de cota não tiver trabalhos.

```
aws batch create-quota-share \
  --quota-share-name reserved_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=2,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=RESERVE \
  --preemption-configuration inSharePreemption=DISABLED
```

------

# Envio de trabalhos para um compartilhamento de cota
<a name="submit-job-quota-share"></a>

As filas de trabalhos de gerenciamento de cotas exigem que todos os trabalhos especifiquem um compartilhamento de cota no envio do trabalho. Para enviar trabalhos para um compartilhamento de cota, especifique a entrada`quotaShareName`. [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) Opcionalmente, um A `preemptionConfiguration` pode ser fornecido para limitar o número de tentativas de preempção antes que uma tentativa de emprego entre. `FAILED` Para limitar o número de preempções que um trabalho experimenta, defina `preemptionRetriesBeforeTermination` dentro do envio do [ServiceJobPreemptionConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_ServiceJobPreemptionConfiguration.html)trabalho.

## Envie um trabalho usando o AWS CLI
<a name="submit-job-quota-share-cli"></a>

O exemplo a seguir usa o **submit-service-job** comando para enviar um trabalho para um compartilhamento de cota.

```
aws batch submit-service-job \
    --job-name "my-sagemaker-training-job" \
    --job-queue "my-sagemaker-job-queue" \
    --service-job-type "SAGEMAKER_TRAINING" \
    --quota-share-name "my_quota_share" \
    --timeout-config '{"attemptDurationSeconds":3600}' \
    --scheduling-priority 5 \
    --service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\":  [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'"
```