Trabajos bloqueados en estado RUNNABLE - 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.

Trabajos bloqueados en estado RUNNABLE

Suponga que su entorno de computación contiene recursos de computación, pero sus trabajos no progresan más allá del estado RUNNABLE. Seguramente, algo impida que los trabajos se coloquen en un recurso informático y se bloqueen las colas de trabajos. A continuación, se explica cómo saber si un trabajo está esperando su turno o se ha atascado y bloqueado la cola.

Si AWS Batch detecta que tienes un RUNNABLE trabajo a la cabeza y bloquea la cola, recibirás un Recurso: eventos bloqueados por la cola de trabajos evento de Amazon CloudWatch Events con el motivo. El mismo motivo también se actualiza en el statusReason campo como parte de ListJobs and DescribeJobs API calls.

Si lo desea, puede configurar el jobStateTimeLimitActions parámetro mediante CreateJobQueue y UpdateJobQueueAPIacciones.

nota

Actualmente, la única acción que puede usar con jobStateLimitActions.action es cancelar un trabajo.

El jobStateTimeLimitActions parámetro se usa para especificar un conjunto de acciones que se AWS Batch realizan en trabajos en un estado específico. Puede establecer un umbral de tiempo en segundos en el campo maxTimeSeconds.

Cuando un trabajo ha estado en un RUNNABLE estado con el estado definidostatusReason, AWS Batch realiza la acción especificada maxTimeSeconds una vez transcurrido.

Por ejemplo, puede configurar el parámetro jobStateTimeLimitActions para que espere hasta 4 horas en cualquier trabajo con el estado RUNNABLE que esté esperando a que haya suficiente capacidad disponible. Para ello, establezca statusReason en CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY y maxTimeSeconds en 144000 antes de cancelar el trabajo y permitir que el siguiente pase a ocupar el primer lugar de la lista de trabajos.

Los siguientes son los motivos que se AWS Batch utilizan cuando detecta que una cola de trabajos está bloqueada. Esta lista proporciona los mensajes devueltos por las DescribeJobs API acciones ListJobs y. También son los mismos valores que puede definir para el parámetro jobStateLimitActions.statusReason.

  1. Motivo: todos los entornos de computación conectados tienen errores de capacidad insuficiente. Cuando se solicita, AWS Batch detecta EC2 las instancias de Amazon que experimentan errores de capacidad insuficiente. Si se cancela manualmente el trabajo, el siguiente pasará a ocupar el primer lugar de la lista, pero si no se resuelven los problemas relacionados con las funciones de servicio, es probable que el siguiente trabajo también quede bloqueado. Lo mejor es investigar y resolver este problema manualmente.

    • Mensaje de statusReason mientras el trabajo está atascado: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - Service cannot fulfill the capacity requested for instance type [instanceTypeName]

    • reason utilizado para jobStateTimeLimitActions: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY

    • Mensaje de statusReason después de cancelar el trabajo: Canceled by JobStateTimeLimit action due to reason: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY

    Nota:

    1. El rol AWS Batch de servicio requiere autoscaling:DescribeScalingActivities permiso para que esta detección funcione. Si usa el rol Permisos de rol vinculados al servicio para AWS Batch vinculado al servicio (SLR) o la política AWS política gestionada: AWSBatchServiceRolepolítica administrada, no necesita realizar ninguna acción porque sus políticas de permisos están actualizadas.

    2. Si utilizas la política gestionada SLR o la política gestionada, debes añadir los ec2:DescribeSpotFleetRequestHistory permisos autoscaling:DescribeScalingActivities y de forma que puedas recibir los eventos de las colas de trabajos bloqueadas y el estado de los trabajos actualizados cuando estés dentro. RUNNABLE Además, AWS Batch necesita estos permisos para realizar acciones de cancellation a través del parámetro jobStateTimeLimitActions, incluso si se han configurado en la cola de trabajos.

    3. En el caso de un trabajo parallel (MNP) de varios nodos, si el entorno de EC2 cómputo de Amazon de alta prioridad adjunto experimenta insufficient capacity errores, bloquea la cola incluso si un entorno de cómputo de menor prioridad experimenta este error.

  2. Motivo: todos los entornos de computación tienen un parámetro maxvCpus inferior a los requisitos del trabajo. Si se cancela el trabajo, ya sea manualmente o configurando el parámetro jobStateTimeLimitActions en statusReason, se permite que el trabajo siguiente pase al primer lugar en la cola. Si lo desea, puede aumentar el parámetro maxvCpus del entorno de computación principal para satisfacer las necesidades del trabajo bloqueado.

    • Mensaje de statusReason mientras el trabajo está atascado: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - CE(s) associated with the job queue cannot meet the CPU requirement of the job.

    • reason utilizado para jobStateTimeLimitActions: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE

    • Mensaje de statusReason después de cancelar el trabajo: Canceled by JobStateTimeLimit action due to reason: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE

  3. Motivo: ninguno de los entornos de procesamiento tiene instancias que cumplan con los requisitos del trabajo. Cuando un trabajo solicita recursos, AWS Batch detecta que ningún entorno informático conectado puede alojar el trabajo entrante. Si se cancela el trabajo, ya sea manualmente o configurando el parámetro jobStateTimeLimitActions en statusReason, se permite que el trabajo siguiente pase al primer lugar en la cola. Si lo desea, puede redefinir los tipos de instancias permitidos en el entorno de computación para añadir los recursos de trabajo necesarios.

    • Mensaje de statusReason mientras el trabajo está atascado: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - The job resource requirement (vCPU/memory/GPU) is higher than that can be met by the CE(s) attached to the job queue.

    • reason utilizado para jobStateTimeLimitActions: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT

    • Mensaje de statusReason después de cancelar el trabajo: Canceled by JobStateTimeLimit action due to reason: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT

  4. Motivo: todos los entornos de computación tienen problemas con los roles de servicio. Para resolver este problema, compare los permisos de su rol de servicio con AWS políticas administradas para AWS Batch y solucione las brechas. Nota: No se puede configurar una acción programable a través del jobStateTimeLimitActions parámetro para resolver este error.

    Se recomienda utilizar Permisos de rol vinculados al servicio para AWS Batch para evitar errores similares.

    Si se cancela el trabajo, ya sea manualmente o configurando el parámetro jobStateTimeLimitActions en statusReason, se permite que el trabajo siguiente pase al primer lugar en la cola. Si no se resuelven los problemas relacionados con los roles de servicio, es probable que también se bloquee el siguiente trabajo. Lo mejor es investigar y resolver este problema manualmente.

    • Mensaje de statusReason mientras el trabajo está atascado: MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS – Batch service role has a permission issue.

  5. Motivo: todos los entornos de computación no son válidos. Para obtener más información, consulte Entorno de computación INVALID. Nota: No se puede configurar una acción programable a través del parámetro jobStateTimeLimitActions para resolver este error.

    • Mensaje de statusReason mientras el trabajo está atascado: ACTION_REQUIRED - CE(s) associated with the job queue are invalid.

  6. Motivo: AWS Batch ha detectado una cola bloqueada, pero no ha podido determinar el motivo. Nota: No se puede configurar una acción programable a través del parámetro jobStateTimeLimitActions para resolver este error. Para obtener más información sobre la solución de problemas, consulta Why is my AWS Batch job stuck AWS in RUNNABLE Re:post.

    • Mensaje de statusReason mientras el trabajo está atascado: UNDETERMINED - Batch job is blocked, root cause is undetermined.

En caso de que no hayas recibido un evento de CloudWatch Events o hayas recibido un evento con un motivo desconocido, estas son algunas de las causas más comunes de este problema.

El controlador de registros awslogs no está configurado en los recursos de computación

AWS Batch los trabajos envían su información de registro a CloudWatch Logs. Para activarlo, debe configurar sus recursos de computación para utilizar el controlador de registro awslogs. Supongamos que basa su recurso informático AMI en Amazon ECS Optimized AMI (o Amazon Linux). A continuación, este controlador se registra de forma predeterminada en el paquete ecs-init. Ahora supongamos que utiliza una base diferenteAMI. A continuación, debe comprobar que el controlador de awslogs registro esté especificado como un controlador de registro disponible con la variable de ECS_AVAILABLE_LOGGING_DRIVERS entorno cuando se inicie el agente ECS contenedor de Amazon. Para obtener más información, consulte Especificaciones de AMI de recursos de computación y Tutorial: crear una AMI de recursos de computación.

Recursos insuficientes

Si sus definiciones de trabajo especifican más recursos CPU o recursos de memoria de los que pueden asignar sus recursos informáticos, sus trabajos nunca se colocan. Por ejemplo, supongamos que su trabajo especifica 4 GiB de memoria y que sus recursos de computación tienen menos de los disponibles. Entonces, se da el caso de que el trabajo no se puede asignar a esos recursos de computación. En ese caso, debe reducir la memoria especificada en la definición del trabajo o añadir más recursos de computación en su entorno. Parte de la memoria está reservada para el agente ECS contenedor de Amazon y otros procesos críticos del sistema. Para obtener más información, consulte Administración de la memoria de recurso de computación.

No hay acceso a Internet para los recursos de computación

Los recursos informáticos necesitan acceso para comunicarse con el punto final del ECS servicio de Amazon. Esto puede hacerse a través de un VPC punto final de interfaz o a través de los recursos de cómputo de que tienen direcciones IP públicas.

Para obtener más información sobre los VPC puntos de enlace de la interfaz, consulte Amazon ECS Interface VPC Endpoints (AWS PrivateLink) en la Guía para desarrolladores de Amazon Elastic Container Service.

Si no tiene configurado un VPC punto final de interfaz y los recursos informáticos de sus no tienen direcciones IP públicas, deberán utilizar la traducción de direcciones de red (NAT) para proporcionar este acceso. Para obtener más información, consulta NATlas pasarelas en la Guía del VPC usuario de Amazon . Para obtener más información, consulte Tutorial: crear un registro de seguimiento.

Se alcanzó el límite de EC2 instancias de Amazon

La cantidad de EC2 instancias de Amazon en las que puede lanzar tu cuenta Región de AWS viene determinada por tu cuota de EC2 instancias. Algunos tipos de instancias también tienen una per-instance-type cuota. Para obtener más información sobre la cuota de EC2 instancias de Amazon de tu cuenta, incluida la forma de solicitar un aumento del límite, consulta Amazon EC2 Service Limits en la Guía del EC2 usuario de Amazon.

El agente de ECS contenedores de Amazon no está instalado

El agente ECS contenedor de Amazon debe estar instalado en Amazon Machine Image (AMI) para poder AWS Batch ejecutar los trabajos. El agente de ECS contenedores de Amazon se instala de forma predeterminada en Amazon ECS OptimizedAMIs. Para obtener más información sobre el agente de ECS contenedores de Amazon, consulte el agente de ECScontenedores de Amazon en la Guía para desarrolladores de Amazon Elastic Container Service.

Para obtener más información, consulte ¿Por qué mi AWS Batch trabajo está RUNNABLE estancado? en Re:post.