Slurmconmutación por error rápida e insuficiente de capacidad del clúster - AWS ParallelCluster

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Slurmconmutación por error rápida e insuficiente de capacidad del clúster

A partir deAWS ParallelCluster la versión 3.2.0, los clústeres se ejecutan con el modo de conmutación por error de capacidad insuficiente y rápida activado de forma predeterminada. Esto minimiza el tiempo dedicado a volver a intentar poner en cola un trabajo cuando se detectan errores de capacidad insuficiente de EC2. Esto es particularmente eficaz cuando configuras tu clúster con varios tipos de instancias.

EC2 detectó fallas de capacidad insuficientes:
  • InsufficientInstanceCapacity

  • InsufficientHostCapacity

  • InsufficientReservedInstanceCapacity

  • MaxSpotInstanceCountExceeded

  • SpotMaxPriceTooLow: Se activa si el precio de solicitud de spot es menor que el precio mínimo requerido de cumplimiento de solicitud de spot.

  • Unsupported: Se activa con el uso de un tipo de instancia que no es compatible con una instancia específicaRegión de AWS.

En el modo de conmutación rápida por error de capacidad insuficiente, si se detecta un error de capacidad insuficiente cuando se asigna un trabajo a un SlurmQueues/compute resource,AWS ParallelCluster hace lo siguiente:

  1. Establece el recurso informático en un estado discapacitado (DOWN) durante un período de tiempo predefinido.

  2. Se usaPOWER_DOWN_FORCE para cancelar los trabajos de nodo que fallan del recurso informático y para suspender el nodo que falla. Establece el nodo que falla en elPOWER_DOWN (!) estadoIDLE y y, a continuación, enPOWERING_DOWN (%).

  3. Exige que la tarea se transfiera a otro recurso informático.

Los nodos estáticos y encendidos del recurso informático deshabilitado no se ven afectados. Los trabajos se pueden completar en estos nodos.

Este ciclo se repite hasta que el trabajo se asigne correctamente a uno o varios nodos de recursos informáticos. Para obtener información sobre los estados de los nodos, consulte laSlurmguía para el modo de cola múltiple.

Si no se encuentran recursos informáticos para ejecutar el trabajo, el trabajo se establece en elPENDING estado hasta que transcurra el período de tiempo predefinido. En este caso, puede modificar el período de tiempo predefinido tal como se describe en la siguiente sección.

Parámetro de tiempo de espera de capacidad insuficiente

insufficient_capacity_timeout

insufficient_capacity_timeoutespecifica el período de tiempo (en segundos) durante el que el recurso informático permanece en estado deshabilitado (down) cuando se detecta un error de capacidad insuficiente.

Está activado deinsufficient_capacity_timeout forma predeterminada.

El valor predeterminadoinsufficient_capacity_timeout es de 600 segundos (10 minutos).

Si elinsufficient_capacity_timeout valor es inferior o igual a cero, se deshabilita el modo de conmutación por error de capacidad insuficiente rápida.

Puede cambiar elinsufficient_capacity_timeout valor añadiendo el parámetro en el archivo declustermgtd configuración ubicado/etc/parallelcluster/slurm_plugin/parallelcluster_clustermgtd.conf enHeadNode.

El parámetro se puede actualizar en cualquier momento sin detener la flota de cómputos.

Por ejemplo:

  • insufficient_capacity_timeout=600:

    Si se detecta un error de capacidad insuficiente, el recurso de cómputo se establece como desactivado (DOWN). Después de 10 minutos, el nodo fallido se establece en el estadoidle~ (POWER_SAVING).

  • insufficient_capacity_timeout=60:

    Si se detecta un error de capacidad insuficiente, el recurso informático está deshabilitado (DOWN). Después de 1 minuto, su nodo fallido se establece en elidle~ estado.

  • insufficient_capacity_timeout=0:

    El modo de conmutación por error de capacidad insuficiente rápida está deshabilitado. El recurso informático no está deshabilitado.

nota

Puede haber un retraso de hasta un minuto entre el momento en que los nodos fallan por errores de capacidad insuficiente y el momento en que el demonio de administración de clústeres detecta los errores de los nodos. Esto se debe a que el demonio de administración de clústeres comprueba si hay errores de capacidad insuficiente en los nodos y establece los recursos informáticos en eldown estado a intervalos de un minuto.

Estado del modo de conmutación por error de capacidad insuficiente y rápida

Cuando un clúster se encuentra en modo de conmutación por error de capacidad insuficiente y rápida, puede comprobar su estado y los estados de los nodos.

Estados de nodos

Cuando se envía un trabajo a un nodo dinámico de recursos informáticos y se detecta un error de capacidad insuficiente, el nodo se coloca en esedown# estado por motivos.

(Code:InsufficientInstanceCapacity)Failure when resuming nodes.

Luego, los nodos apagados (nodos enidle~ estado) se configurandown~ con razón.

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

El trabajo está en cola para otros recursos informáticos de la cola.

Los nodos estáticos de los recursos informáticos y los nodos queUP no se ven afectados por el modo de conmutación por error de capacidad insuficiente y rápida.

Tenga en cuenta los estados de los nodos que se muestra en el siguiente ejemplo.

$ 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 un trabajo a queue1 que requiere un nodo.

$ 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]

queue1-dy-c-1-1Se inicia el nodo para ejecutar el trabajo. Sin embargo, la instancia no se pudo iniciar debido a un error de capacidad insuficiente. queue1-dy-c-1-1El nodo está configurado endown. El nodo dinámico apagado dentro del recurso de cómputo (queue2-dy-c-1) está configurado endown.

Puede comprobar el motivo del nodo conscontrol 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]

El trabajo está en cola en otro tipo de instancia dentro de los recursos informáticos de la cola.

Una vezinsufficient_capacity_timeout transcurrido el tiempo, los nodos del recurso informático se restablecen alidle~ estado.

$ 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]

Una vezinsufficient_capacity_timeout transcurridos los períodos y los nodos del recurso informático se restablecen alidle~ estado, elSlurm planificador otorga a los nodos una prioridad inferior. El programador sigue seleccionando nodos de otros recursos informáticos de cola con pesos más altos, a menos que ocurra una de las siguientes situaciones:

  • Los requisitos de envío de un trabajo coinciden con el recurso informático recuperado.

  • No hay otros recursos informáticos disponibles porque están al límite de su capacidad.

  • slurmctldse reinicia.

  • La flotaAWS ParallelCluster de cómputos se detiene y comienza a apagar y encender todos los nodos.

Registros relacionados

Los registros relacionados con errores de capacidad insuficiente y el modo de conmutación por error de capacidad rápida e insuficiente se encuentran enSlurm elresume registro y elclustermgtd registro en el nodo principal.

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

Mensajes de error cuando un nodo no se inicia por falta de capacidad.

[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)

El recurso informático c-1 de la cola 1 está deshabilitado debido a una capacidad 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

Una vez transcurrido el tiempo de espera de capacidad insuficiente, se restablece el recurso de procesamiento y los nodos dentro de los recursos de procesamiento se configuran enidle~.

[root:_reset_insufficient_capacity_timeout_expired_nodes] - INFO - Reset the following compute resources because insufficient capacity timeout expired: {'queue1': ['c-1']}