

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# `作业在没有状态的情况下停留在 RUNNABLE 状态的常见原因原因`
<a name="job_stuck_in_runnable_common_causes"></a>

如果您没有收到来自事件 CloudWatch 的事件或收到未知原因事件，则以下是导致此问题的一些常见原因。

**计算资源上未配置 `awslogs` 日志驱动程序**  
AWS Batch 作业将其日志信息发送到 CloudWatch 日志。为了做到这一点，必须将计算资源配置为使用`awslogs`日志驱动程序。假设计算资源 AMI 基于 Amazon ECS 优化 AMI（或 Amazon Linux）。然后，该驱动程序默认会注册到`ecs-init`软件包中。假设现在使用的是不同的基础 AMI。然后，必须验证在启动 Amazon ECS 容器代理时，是否使用`ECS_AVAILABLE_LOGGING_DRIVERS`环境变量将`awslogs`日志驱动程序指定为可用的日志驱动程序。有关更多信息，请参阅[计算资源 &AMI; 规范](batch-ami-spec.md)和[教程：创建计算资源 AMI](create-batch-ami.md)：

**资源不足**  
如果作业定义指定的 CPU 或内存资源超出可分配的计算资源量，则作业将永远不会被放置。例如，假设作业指定了 4 GiB 的内存，而计算资源少于可用内存。那么，作业就不能放置在这些计算资源上。在这种情况下，必须减少作业定义中指定的内存，或者向环境中添加更大的计算资源。为 Amazon ECS 容器代理和其他关键系统进程保留了部分内存。有关更多信息，请参阅 [计算资源内存管理](memory-management.md)。

**无法通过互联网访问计算资源**  
计算资源需要访问才能与 Amazon ECS 服务端点通信。这可以通过接口 VPC 端点或具有公共 IP 地址的计算资源实现。  
有关接口 VPC 端点的更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的 [Amazon ECS 接口 VPC 端点(AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html)。  
如果没有配置接口 VPC 端点，并且计算资源没有公共 IP 地址，则必须使用网络地址转换 (NAT) 来提供这种访问。有关更多信息，请参阅*《Amazon VPC 用户指南》*中的。有关更多信息，请参阅 [创建 VPC](create-a-vpc.md)。

**已达到 Amazon EC2 实例限制**  
您的账户可以在中启动的 Amazon EC2 实例数量由您 AWS 区域 的 EC2 实例配额决定。某些实例类型也有基于实例类型的配额。有关账户的 Amazon EC2 实例配额（包括如何请求提高限制）的更多信息，请参阅《Amazon EC2 用户指南》**中的 [Amazon EC2 服务限制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)。

**未安装 Amazon ECS 容器代理**  
必须将 Amazon ECS 容器代理安装在亚马逊机器映像（AMI）上才能使 AWS Batch 运行作业。Amazon ECS 容器代理默认安装在 Amazon ECS 优化 AMI 上。有关 Amazon ECS 容器代理的更多信息，请参阅*《Amazon Elastic Container Service 开发人员指南》*中的 [Amazon ECS 容器代理](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_agent.html)。

**Long-running 启动模板中的用户数据脚本**  
如果您的启动模板包含需要很长时间才能完成的用户数据脚本，则实例在注册到 Amazon ECS 之前可能会超时。发生这种情况时，这些实例将永远无法接管作业，从而使所有任务都处于`RUNNABLE`状态。必须完成所有用户数据脚本，然后实例才能注册到 Amazon ECS 并开始运行作业。  
要解决此问题，请查看您的启动模板用户数据，了解是否存在长时间运行或阻止的操作。考虑优化脚本以缩短执行时间，异步运行非关键操作，或者将初始化逻辑完全移出用户数据。有关更多信息，请参阅 [使用 Amazon EC2 启动模板和 AWS Batch](launch-templates.md)。

如需了解更多信息，请参阅[为什么我的 AWS Batch 工作`RUNNABLE`状态停滞不前？](https://aws.amazon.com/premiumsupport/knowledge-center/batch-job-stuck-runnable-status/) 在 re*: post* 中。