Estrategias de reintento de trabajos de servicio en AWS Batch - AWS Batch

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.

Estrategias de reintento de trabajos de servicio en AWS Batch

Las estrategias de reintento de trabajos de servicio permiten AWS Batch reintentar automáticamente los trabajos de servicio fallidos en condiciones específicas.

Los trabajos de servicio pueden requerir varios intentos por diversos motivos:

  • Problemas de servicio temporales: los errores de servicio internos, las limitaciones o las interrupciones temporales pueden provocar que los trabajos fallen durante el envío o la ejecución.

  • Fallos en la inicialización del entrenamiento: los problemas durante el inicio del trabajo, como los problemas de extracción de imágenes o los errores de inicialización, pueden resolverse intentándolo de nuevo.

Con la configuración de las estrategias de reintentos adecuadas, se mejoran las tasas de éxito en el trabajo y se reduce la necesidad de intervención manual, especialmente en el caso de las cargas de trabajo de formación prolongadas.

nota

Los trabajos de servicio reintentan automáticamente ciertos tipos de errores, como los de capacidad insuficiente, sin consumir los reintentos configurados. La estrategia de reintentos se ocupa principalmente de otros tipos de errores, como los errores de algoritmo o los problemas de servicio.

Configuración de estrategias de reintento

Las estrategias de reintentos de los trabajos de servicio se configuran mediante ServiceJobRetryStrategy, lo que admite tanto el recuento simple de reintentos como la lógica de reintentos condicional.

Configuración de reintentos

La estrategia de reintentos más sencilla especifica el número de reintentos que se deben realizar si se produce un error en un trabajo de servicio:

{ "retryStrategy": { "attempts": 3 } }

Esta configuración permite volver a intentar el trabajo de servicio hasta 3 veces si se produce un error.

importante

El valor attempts representa la cantidad total de veces que se puede colocar el trabajo en el estado RUNNABLE, como el intento inicial. Un valor de 3 significa que, al principio, se intentará realizar el trabajo una vez y, si se produce un error, se volverá a intentar hasta 2 veces más.

Vuelva a intentar la configuración con evaluateOnExit

Puede utilizar el parámetro evaluateOnExit para especificar las condiciones en las que se deben volver a intentar los trabajos o permitir que fallen. Esto resulta útil cuando distintos tipos de errores requieren un tratamiento diferente.

La matriz evaluateOnExit puede contener hasta 5 estrategias de reintento, cada una de las cuales especifica una acción (RETRY o EXIT) y condiciones según los motivos del estado:

{ "retryStrategy": { "attempts": 5, "evaluateOnExit": [ { "action": "RETRY", "onStatusReason": "Received status from SageMaker: InternalServerError*" }, { "action": "EXIT", "onStatusReason": "Received status from SageMaker: ValidationException*" }, { "action": "EXIT", "onStatusReason": "*" } ] } }

Esta configuración:

  • Reintenta los trabajos que fallan debido a errores internos del servidor de SageMaker IA

  • marca como fallidos los trabajos de forma inmediata que encuentran excepciones de validación (errores del cliente que no se resuelven mediante reintentos),

  • incluye una regla general para la salida en caso de cualquier otro tipo de fallo.

Patrón de coincidencias de motivos de estado

El parámetro onStatusReason admite el patrón de coincidencias con hasta 512 caracteres. Los patrones pueden usar caracteres comodín (*) y coincidir con los motivos de estado devueltos por SageMaker la IA.

En el caso de los trabajos de servicio, los mensajes de estado de la SageMaker IA llevan el prefijo «Estado recibido de SageMaker:» para distinguirlos de los mensajes generados por la AWS Batch IA. Los patrones comunes incluyen lo siguiente:

  • Received status from SageMaker: InternalServerError*: coincide con errores internos del servicio

  • Received status from SageMaker: ValidationException*: coincide con errores de validación del cliente

  • Received status from SageMaker: ResourceLimitExceeded*: coincide con errores del límite de recursos

  • *CapacityError*: coincide con los fallos relacionados con la capacidad

sugerencia

Utilice una coincidencia de patrones específica para gestionar los diferentes tipos de errores de forma adecuada. Por ejemplo, reintentar los errores internos del servidor, pero fallar inmediatamente si se trata de errores de validación que indiquen problemas con los parámetros del trabajo.