Estoy tratando de ejecutar un trabajo de AWS Batch de 100 nodos, cuando configuro mi entorno informático para usar solo instancias m4.xlarge y m5.xlarge , todo funciona bien y mi trabajo se recupera y se ejecuta.
Sin embargo, cuando empiezo a incluir otros tipos de instancias en mi entorno informático, como m5.2xlarge , el trabajo se bloquea en el estado runnable indefinidamente. La única variable que estoy cambiando en estas actualizaciones son los tipos de instancias en el entorno informático.
No estoy seguro de qué hace que este trabajo no se realice cuando incluyo otros tipos de instancias en el entorno informático. En la documentación de Compute Environment Parameters , la única nota es:
Cuando crea un entorno informático, los tipos de instancia que seleccione para el entorno informático deben compartir la misma arquitectura. Por ejemplo, no puede mezclar instancias x86 y ARM en el mismo entorno informático.
JobDefinition es multi-nodo:
El máximo de vCPU de mi entorno informático está establecido en 10,000 , siempre está en un estado VALID y siempre ENABLED . Además, mi límite de EC2 vCPU es 6,000 . CloudWatch no proporciona registros porque el trabajo no ha comenzado, no estoy seguro de qué más probar aquí. Tampoco estoy usando la configuración optimal para los tipos de instancias porque tuve problemas al no obtener suficientes instancias.
Acabo de resolver este problema, el problema es con la estrategia BEST_FIT en Batch. Los trabajos que estoy enviando no se acercan lo suficiente al tipo de instancia, por lo que nunca se seleccionan.
Lo descubrí modificando la definición del trabajo para usar 8 vCPU and 30GB de memoria y el trabajo comenzó con las instancias m5.2xlarge .
Voy a ver si usar la estrategia BEST_FIT_PROGRESSIVE resolverá este problema e informaré, aunque dudo que lo haga.
--
Actualización: hablé con AWS Support y obtuve más información. La estrategia de asignación BEST_FIT_PROGRESSIVE tiene protecciones integradas para el sobreescalamiento para que los clientes no lancen accidentalmente miles de instancias. Aunque esto tiene el efecto secundario de lo que estoy experimentando, lo que hace que los trabajos no se inicien.
La recomendación de los ingenieros de soporte fue usar un solo tipo de instancia en el entorno informático y la estrategia de asignación BEST_FIT . Dado que mis trabajos tienen diferentes requisitos de instancia, pude crear con éxito tres ComputeEnvironments separados dirigidos a diferentes tipos de instancias ( c5.large, c5.xlarge, m4.xlarge ), enviar trabajos y hacer que se ejecuten en el Compute Environment apropiado.