

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`
<a name="job_stuck_in_runnable"></a>

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 [Eventos bloqueados en la cola de trabajos](batch-job-queue-blocked-events.md) evento de Amazon CloudWatch Events con el motivo. El mismo motivo también se actualiza en el campo `statusReason` como parte de las llamadas a las API `[ListJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListJobs.html)` y `[DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html)`. 

Si lo desea, puede configurar el parámetro `jobStateTimeLimitActions` mediante `[CreateJobQueue](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateJobQueue.html)` y las acciones de la API [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateJobQueue.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateJobQueue.html).

**nota**  
Actualmente, en el caso de las colas de trabajos conectadas a entornos informáticos de Amazon ECS, Amazon EKS o Fargate, la única acción que puede realizar `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 definido`statusReason`, AWS Batch realiza la acción especificada una `maxTimeSeconds` 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. `statusReason`Para ello, establezca el valor entre 14400 `CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY` y `maxTimeSeconds` 14400 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 utilizan AWS Batch cuando detecta que una cola de trabajos está bloqueada. Esta lista proporciona los mensajes devueltos por las acciones de `DescribeJobs` y las acciones de API `ListJobs`. 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 las instancias de Amazon EC2 que experimentan errores de capacidad insuficiente. La cancelación manual del trabajo permitirá que el trabajo siguiente pase al principio de la cola.
   + **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 utiliza el rol vinculado al servicio (SLR) [Utilizar funciones vinculadas al servicio para AWS Batch](using-service-linked-roles.md) o la política administrada [AWS política gestionada: **AWSBatchServiceRole**política](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSBatchServiceRolePolicy), no tiene que realizar ninguna acción porque sus políticas de permisos están actualizadas.

   1. Si utiliza el SLR o la política gestionada, debe añadir los permisos `autoscaling:DescribeScalingActivities` y `ec2:DescribeSpotFleetRequestHistory` para poder recibir los eventos de las colas de trabajos bloqueadas y el estado actualizado de los trabajos cuando esté en `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.

   1. En el caso de un trabajo paralelo de varios nodos (MNP), si el entorno de computación de Amazon EC2 de alta prioridad adjunto experimenta errores `insufficient capacity`, bloquea la cola aunque otro entorno de computación de prioridad inferior sufra este error.

1. **Motivo:** todos los entornos de computación tienen un parámetro [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-maxvCpus](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-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`

1. **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`

1. **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 gestionadas para AWS Batch](security-iam-awsmanpol.md) y solucione las brechas. Nota: No se puede configurar una acción programable a través del parámetro `jobStateTimeLimitActions` para resolver este error.

   Se recomienda utilizar [Utilizar funciones vinculadas al servicio para AWS Batch](using-service-linked-roles.md) 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.`

1.  **Motivo:** Su entorno de computación tiene una configuración que no es compatible con ese tipo de instancia. Esto puede ocurrir cuando los tipos de instancias no están disponibles en las zonas de disponibilidad seleccionadas o cuando la plantilla o configuración de lanzamiento contiene ajustes incompatibles con los tipos de instancias especificados. Para resolver este problema, compruebe que los tipos de instancia sean compatibles con las zonas de disponibilidad Región de AWS y especificadas, compruebe que la configuración de la plantilla de lanzamiento sea compatible con los tipos de instancias y considere la posibilidad de actualizarlos a tipos de instancias de nueva generación. Para obtener más información sobre la búsqueda de tipos de instancias compatibles, consulte [Búsqueda de un tipo de instancia de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-discovery.html) en la *Guía del usuario de Amazon EC2*.
   + **Mensaje de `statusReason` mientras el trabajo está atascado:** `MISCONFIGURATION:EC2_INSTANCE_CONFIGURATION_UNSUPPORTED - Your compute environment associated with this job queue has an unsupported instance type configuration.`

1. **Motivo:** todos los entornos de computación no son válidos. Para obtener más información, consulte [Entorno de computación de `INVALID`](invalid_compute_environment.md). 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.`

1. **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, consulte [¿Por qué mi trabajo de AWS Batch está atascado como RUNNABLE en AWS?](https://repost.aws/knowledge-center/batch-job-stuck-runnable-status) en *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 la AMI de sus recursos de computación en la AMI optimizada para Amazon ECS (o Amazon Linux). A continuación, este controlador se registra de forma predeterminada en el paquete `ecs-init`. Ahora supongamos que usa una AMI base diferente. Luego, debe verificar que el controlador de registro `awslogs` esté especificado como un controlador de registro disponible con la variable de entorno `ECS_AVAILABLE_LOGGING_DRIVERS` cuando se inicia el agente de contenedor de Amazon ECS. Para obtener más información, consulte [Especificaciones de AMI de recursos de computación](batch-ami-spec.md) y [Tutorial: creación de una AMI de recursos de computación](create-batch-ami.md).

**Recursos insuficientes**  
Si sus definiciones de trabajo especifican más recursos de memoria o CPU de lo que pueden asignar los recursos de computación, los trabajos no se asignarán. 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. Una parte de la memoria se reserva para el agente de contenedor de Amazon ECS y otros procesos críticos del sistema. Para obtener más información, consulte [Administración de la memoria de recurso de computación](memory-management.md).

**No hay acceso a Internet para los recursos de computación**  
Los recursos de computación de las deben obtener acceso para comunicarse con el punto de conexión del servicio de Amazon ECS. Esto puede ser a través de un punto de conexión de VPC de la interfaz o a través de recursos de computación de las con direcciones IP públicas.  
Para obtener más información acerca de los puntos de enlace de la VPC de la interfaz, consulte [Puntos de enlace de la VPC de la interfaz de Amazon ECS (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.  
Si no tiene configurado un punto de conexión de la VPC de la interfaz y los recursos de computación de las no tienen direcciones IP públicas, deberán utilizar traducción de direcciones de red (NAT) para proporcionar este acceso. Para obtener más información, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) en la *Guía del usuario de Amazon VPC*. Para obtener más información, consulte [Creación de una VPC](create-a-vpc.md).

**Se ha alcanzado el límite de instancias de Amazon EC2**  
La cantidad de instancias de Amazon EC2 en las que puede lanzar su cuenta Región de AWS viene determinada por su cuota de instancias EC2. Algunos tipos de instancias también tienen una per-instance-type cuota. Para obtener más información sobre la cuota de instancias de Amazon EC2 de su cuenta, incluida la forma de solicitar un aumento del límite, consulte los [Límites de servicio de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) en la *Guía del usuario de Amazon EC2*.

**El agente de contenedor de Amazon ECS no está instalado**  
El agente contenedor Amazon ECS debe estar instalado en la Imagen de máquina de Amazon (AMI) para permitir a AWS Batch ejecutar los trabajos. El agente de contenedores Amazon ECS se instala de forma predeterminada en Amazon ECS Optimized AMIs. Para obtener más información sobre el agente de contenedor de Amazon ECS, consulte [Agente de contenedor de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_agent.html) 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?](https://aws.amazon.com/premiumsupport/knowledge-center/batch-job-stuck-runnable-status/) en *Re:post*.