Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Failover rápido de capacidade insuficiente do cluster Slurm - AWS ParallelCluster

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

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

Failover rápido de capacidade insuficiente do cluster Slurm

A partir do AWS ParallelCluster versão 3.2.0, os clusters são executados com o modo de failover rápido de capacidade insuficiente ativado por padrão. Isso minimiza o tempo gasto tentando enfileirar um trabalho quando erros de capacidade insuficiente do Amazon EC2 são detectados. Isso é particularmente eficaz quando você configura seu cluster com vários tipos de instâncias.

O Amazon EC2 detectou falhas de capacidade insuficiente:
  • InsufficientInstanceCapacity

  • InsufficientHostCapacity

  • InsufficientReservedInstanceCapacity

  • MaxSpotInstanceCountExceeded

  • SpotMaxPriceTooLow: ativado se o seu preço de solicitação spot é inferior ao preço mínimo de atendimento de solicitação spot exigido.

  • Unsupported: ativado com o uso de um tipo de instância que não é compatível com uma Região da AWS específica.

No modo rápido de failure-over de capacidade insuficiente, se um erro de capacidade insuficiente for detectado quando um trabalho for atribuído a SlurmQueues / compute resource, o AWS ParallelCluster faz o seguinte:

  1. Ele define o recurso de computação para um estado desativado (DOWN) por um período de tempo predefinido.

  2. Ele usa POWER_DOWN_FORCE para cancelar as tarefas do nó com falha do recurso de computação e para suspender o nó com falha. Ele define o nó com falha para o estado IDLE e POWER_DOWN (!) e, em seguida, para POWERING_DOWN (%).

  3. Ele enfileira o trabalho em outro recurso de computação.

Os nós estáticos e ativados do recurso de computação desativado não são afetados. Os trabalhos podem ser concluídos nesses nós.

Esse ciclo se repete até que o trabalho seja atribuído com êxito a um ou mais nós de recursos de computação. Para mais informações sobre os estados dos nós, consulte Slurm guia para o modo de fila múltipla.

Se nenhum recurso de computação for encontrado para executar o trabalho, o trabalho será definido no estado PENDING até que o período de tempo predefinido termine. Nesse caso, você pode modificar o período de tempo predefinido conforme descrito na seção a seguir.

Parâmetro de tempo limite de capacidade insuficiente

insufficient_capacity_timeout

insufficient_capacity_timeout especifica o período de tempo (em segundos) em que o recurso de computação é mantido no estado desativado (down) quando um erro de capacidade insuficiente é detectado.

Por padrão, insufficient_capacity_timeout é habilitado.

O insufficient_capacity_timeout padrão é 600 segundos (10 minutos).

Se o valor insufficient_capacity_timeout for menor ou igual a zero, o modo de failover rápido de capacidade insuficiente será desativado.

Você pode alterar o valor de insufficient_capacity_timeout adicionando o parâmetro no arquivo de configuração clustermgtd localizado em /etc/parallelcluster/slurm_plugin/parallelcluster_clustermgtd.conf no HeadNode.

O parâmetro pode ser atualizado a qualquer momento, sem interromper a frota de computação.

Por exemplo:

  • insufficient_capacity_timeout=600:

    Se um erro de capacidade insuficiente for detectado, o recurso de computação será definido como desativado (DOWN). Após 10 minutos, seu nó com falha é definido para o estado idle~ (POWER_SAVING).

  • insufficient_capacity_timeout=60:

    Se um erro de capacidade insuficiente for detectado, o recurso de computação será definido como desativado (DOWN). Após 1 minuto, seu nó com falha é definido para o estado idle~.

  • insufficient_capacity_timeout=0:

    O modo de failover rápido de capacidade insuficiente é desativado. O recurso de computação não é desativado.

nota

Pode haver um atraso de até um minuto entre o momento em que os nós falham com erros de capacidade insuficientes e o momento em que o daemon de gerenciamento de cluster detecta as falhas do nó. Isso ocorre porque o daemon de gerenciamento de cluster verifica falhas de capacidade insuficiente do nó e define os recursos de computação para o estado down em intervalos de um minuto.

Status do modo de failover rápido de capacidade insuficiente

Quando um cluster está no modo de failover rápido e de capacidade insuficiente, você pode verificar seu status e os estados dos nós.

Estados do nó

Quando uma tarefa é enviada a um nó dinâmico de recursos de computação e um erro de capacidade insuficiente é detectado, o nó é colocado nesse estado down# com razão.

(Code:InsufficientInstanceCapacity)Failure when resuming nodes.

Depois os nós desligados (nós no estado idle~) são configurados para down~ com razão.

(Code:InsufficientInstanceCapacity)Temporarily disabling node due to insufficient capacity.

O trabalho é enfileirado para outros recursos de computação na fila.

Os nós estáticos do recurso de computação e os nós que são UP não são afetados pelo modo de failover rápido de capacidade insuficiente.

Considere os estados dos nós mostrados no exemplo a seguir.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 30 idle~ queue1-dy-c-1-[1-15],queue1-dy-c-2-[1-15] queue2 up infinite 30 idle~ queue2-dy-c-1-[1-15],queue2-dy-c-2-[1-15]

Enviamos um trabalho para a queue1, que requer um nó.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 1 down# queue1-dy-c-1-1 queue1* up infinite 15 idle~ queue1-dy-c-2-[1-15] queue1* up infinite 14 down~ queue1-dy-c-1-[2-15] queue2 up infinite 30 idle~ queue2-dy-c-1-[1-15],queue2-dy-c-2-[1-15]

O nó queue1-dy-c-1-1 é iniciado para executar o trabalho. No entanto, a instância falhou ao ser iniciada devido a um erro de capacidade insuficiente. O nó queue1-dy-c-1-1 está definido como down. O nó dinâmico desligado dentro do recurso de computação (queue2-dy-c-1) está definido como down.

Você pode verificar a razão do nó com scontrol show nodes.

$ scontrol show nodes queue1-dy-c-1-1 NodeName=broken-dy-c-2-1 Arch=x86_64 CoresPerSocket=1 CPUAlloc=0 CPUTot=96 CPULoad=0.00 ... ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s Reason=(Code:InsufficientInstanceCapacity)Failure when resuming nodes [root@2022-03-10T22:17:50] $ scontrol show nodes queue1-dy-c-1-2 NodeName=broken-dy-c-2-1 Arch=x86_64 CoresPerSocket=1 CPUAlloc=0 CPUTot=96 CPULoad=0.00 ... ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s Reason=(Code:InsufficientInstanceCapacity)Temporarily disabling node due to insufficient capacity [root@2022-03-10T22:17:50]

O trabalho é enfileirado em outro tipo de instância dentro dos recursos de computação da fila.

Depois de decorrido o insufficient_capacity_timeout, os nós no recurso de computação são redefinidos para o estado idle~.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 30 idle~ queue1-dy-c-1-[1-15],queue1-dy-c-2-[1-15] queue2 up infinite 30 idle~ queue2-dy-c-1-[1-15],queue2-dy-c-2-[1-15]

Depois de decorrido o insufficient_capacity_timeout e os nós no recurso de computação são redefinidos para o estado idle~, o programador Slurm atribui prioridade menor aos nós. O programador continua selecionando nós de outros recursos de computação da fila com pesos maiores, a menos que ocorra uma das seguintes situações:

  • Os requisitos de envio de um trabalho correspondem ao recurso de computação recuperado.

  • Nenhum outro recurso de computação está disponível porque eles estão lotados.

  • slurmctld é reiniciado.

  • A frota de computação do AWS ParallelCluster é interrompida e começa a desligar e ligar todos os nós.

Logs relacionados

Os logs relacionados a erros de capacidade insuficiente e ao modo rápido de failover de capacidade insuficiente podem ser encontrados no log resume do Slurm e no log clustermgtd no nó principal.

Slurm resume (/var/log/parallelcluster/slurm_resume.log)

Mensagens de erro quando um nó falha na inicialização devido à capacidade insuficiente.

[slurm_plugin.instance_manager:_launch_ec2_instances] - ERROR - Failed RunInstances request: dcd0c252-90d4-44a7-9c79-ef740f7ecd87 [slurm_plugin.instance_manager:add_instances_for_nodes] - ERROR - Encountered exception when launching instances for nodes (x1) ['queue1-dy-c-1-1']: An error occurred (InsufficientInstanceCapacity) when calling the RunInstances operation (reached max retries: 1): We currently do not have sufficient p4d.24xlarge capacity in the Availability Zone you requested (us-west-2b). Our system will be working on provisioning additional capacity. You can currently get p4d.24xlarge capacity by not specifying an Availability Zone in your request or choosing us-west-2a, us-west-2c.
Slurm clustermgtd (/var/log/parallelcluster/clustermgtd)

O recurso de computação c-1 em queue1 está desativado devido à capacidade insuficiente.

[slurm_plugin.clustermgtd:_reset_timeout_expired_compute_resources] - INFO - The following compute resources are in down state due to insufficient capacity: {'queue1': {'c-1': ComputeResourceFailureEvent(timestamp=datetime.datetime(2022, 4, 14, 23, 0, 4, 769380, tzinfo=datetime.timezone.utc), error_code='InsufficientInstanceCapacity')}}, compute resources are reset after insufficient capacity timeout (600 seconds) expired

Depois que o tempo limite de capacidade insuficiente expirar, o recurso de computação é redefinido e os nós dentro dos recursos de computação são definidos como idle~.

[root:_reset_insufficient_capacity_timeout_expired_nodes] - INFO - Reset the following compute resources because insufficient capacity timeout expired: {'queue1': ['c-1']}
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.