

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

# Trabalho com Instâncias spot


AWS ParallelCluster usa instâncias spot se a configuração do cluster tiver definido [`cluster_type`](cluster-definition.md#cluster-type) = spot. As instâncias spot são mais econômicas do que as instâncias sob demanda, mas podem ser interrompidas. O efeito da interrupção varia dependendo do programador específico usado. Pode ser útil aproveitar os *avisos de interrupção da Instância Spot*, que fornecem um aviso de dois minutos antes que o Amazon EC2 deva parar ou encerrar sua Instância Spot. Para ter mais informações, consulte [Interrupções de instâncias spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) no *Guia do usuário do Amazon EC2*. As seções a seguir descrevem três cenários nos quais as instâncias spot podem ser interrompidas.

**nota**  
O uso de Instâncias spot exige que a função `AWSServiceRoleForEC2Spot` vinculada ao serviço exista na sua conta. Para criar essa função na sua conta usando o AWS CLI, execute o seguinte comando:  

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```
Para ter mais informações, consulte [Função vinculada ao serviço para solicitações de instâncias spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests) no *Guia do usuário do Amazon EC2*.

## Cenário 1: Uma instância spot sem trabalhos em execução é interrompida


Quando essa interrupção ocorre, AWS ParallelCluster tenta substituir a instância se a fila do agendador tiver trabalhos pendentes que exijam instâncias adicionais ou se o número de instâncias ativas for menor que a configuração. [`initial_queue_size`](cluster-definition.md#configuration-initial-queue-size) Se o AWS ParallelCluster não conseguir provisionar novas instâncias, uma solicitação de novas instâncias será repetida periodicamente.

## Cenário 2: Uma instância spot que executa trabalhos de nó único é interrompida


O comportamento dessa interrupção depende do programador que está sendo usado.

Slurm  
O trabalho falha com um código de estado de `NODE_FAIL`, e o trabalho é colocado novamente na fila (a menos que `--no-requeue` seja especificado quando o trabalho é enviado). Se o nó for estático, ele será substituído. Se o nó for um nó dinâmico, o nó será encerrado e redefinido. Para obter mais informações sobre o `sbatch`, incluindo o parâmetro `--no-requeue`, consulte [https://slurm.schedmd.com/sbatch.html](https://slurm.schedmd.com/sbatch.html) na *documentação do Slurm*.  
Esse comportamento mudou na AWS ParallelCluster versão 2.9.0. As versões anteriores encerraram o trabalho com um código de estado de `NODE_FAIL` e o nó foi removido da fila do programador.

SGE  
Isso se aplica somente às AWS ParallelCluster versões até a versão 2.11.4, inclusive. A partir da versão 2.11.5, AWS ParallelCluster não suporta o uso de programadores SGE ou Torque.
O trabalho está encerrado. Se o trabalho tiver habilitado o sinalizador de nova execução (usando um `qsub -r yes` ou `qalter -r yes`) ou se a fila tiver a configuração `rerun` definida como `TRUE`, o trabalho será reprogramado. A instância de computação é removida da fila do programador. Esse comportamento vem destes parâmetros de configuração SGE:  
+ `reschedule_unknown 00:00:30`
+ `ENABLE_FORCED_QDEL_IF_UNKNOWN`
+ `ENABLE_RESCHEDULE_KILL=1`

Torque  
Isso se aplica somente às AWS ParallelCluster versões até a versão 2.11.4, inclusive. A partir da versão 2.11.5, AWS ParallelCluster não suporta o uso de programadores SGE ou Torque.
O trabalho é removido do sistema e o nó é removido do programador. O trabalho não é executado novamente. Se vários trabalhos estiverem em execução na instância quando ela for interrompida, o tempo limite do Torque poderá se esgotar durante a remoção do nó. Um erro pode ser exibido no arquivo de log [`sqswatcher`](processes.md#sqswatcher). Isso não afeta a lógica de escalabilidade e uma limpeza adequada é realizada por novas tentativas subsequentes.

## Cenário 3: Uma instância spot que executa trabalhos de vários nós é interrompida


O comportamento dessa interrupção depende do programador que está sendo usado.

Slurm  
O trabalho falha com um código de estado de `NODE_FAIL`, e o trabalho é colocado novamente na fila (a menos que `--no-requeue` seja especificado quando o trabalho é enviado). Se o nó for estático, ele será substituído. Se o nó for um nó dinâmico, o nó será encerrado e redefinido. Outros nós que estavam executando os trabalhos encerrados podem ser reduzidos após o término do tempo [`scaledown_idletime`](scaling-section.md#scaledown-idletime) configurado.  
Esse comportamento mudou na AWS ParallelCluster versão 2.9.0. As versões anteriores encerraram o trabalho com um código de estado de `NODE_FAIL` e o nó foi removido da fila do programador. Outros nós que estavam executando os trabalhos encerrados podem ser reduzidos após o término do tempo [`scaledown_idletime`](scaling-section.md#scaledown-idletime) configurado.

SGE  
Isso se aplica somente às AWS ParallelCluster versões até a versão 2.11.4, inclusive. A partir da versão 2.11.5, AWS ParallelCluster não suporta o uso de programadores SGE ou Torque.
O trabalho não é encerrado e continua a ser executado nos nós restantes. O nó de computação é removido da fila do programador, mas aparecerá na lista de hosts como um nó órfão e indisponível.  
O usuário deve excluir o trabalho quando isso ocorre (`qdel <jobid>`). O nó ainda é exibido na lista de hosts (`qhost`), embora isso não afete o AWS ParallelCluster. Para remover o host da lista, execute o seguinte comando depois de substituir a instância.  

```
sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist <hostname> @allhosts; qconf -de <hostname>'
```

Torque  
Isso se aplica somente às AWS ParallelCluster versões até a versão 2.11.4, inclusive. A partir da versão 2.11.5, AWS ParallelCluster não suporta o uso de programadores SGE ou Torque.
O trabalho é removido do sistema e o nó é removido do programador. O trabalho não é executado novamente. Se vários trabalhos estiverem em execução na instância quando ela for interrompida, o tempo limite do Torque poderá se esgotar durante a remoção do nó. Um erro pode ser exibido no arquivo de log [`sqswatcher`](processes.md#sqswatcher). Isso não afeta a lógica de escalabilidade e uma limpeza adequada é realizada por novas tentativas subsequentes.

Para ter mais informações sobre instâncias spot, consulte [Instâncias spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) no *Guia do usuário do Amazon EC2*.