我在 Amazon Elastic Container Service (Amazon ECS) 上将容器实例替换为了加密卷。现在,我的任务的 CPU 使用率很高。
**注意:**如果您在 AWS Fargate 上遇到 CPU 使用率率较高的问题,请参阅如何排查 Fargate 上 Amazon ECS 任务的 CPU 使用率较高的问题?
检查 Amazon ECS 服务事件日志和指标,以获取 CPU 相关消息。
完成以下步骤:
使用 Amazon ECS 控制台查看服务指标以及 Amazon ECS 的平均 CPU 和最大 CPU。
**注意:**要查看 Amazon ECS 任务的 CPU 指标,必须为现有 Amazon ECS 集群激活 Container Insights。有关可用指标的信息,请参阅 Amazon ECS Container Insights 指标。
检查您的负载均衡器请求指标,以确定当传入用户流量激增时是否会出现 CPU 使用率较高的情况。对于网络负载均衡器,请在 Metrics(指标)下选择 NetworkELB 命名空间,然后选择 Per LB,然后查看 ActiveFlowCount 和 NewFlowCount 指标。如果使用的是应用程序负载均衡器,请检查 ActiveConnectionCount 指标。
如果您为 Amazon Elastic Block Store (Amazon EBS) 卷激活加密,则加密和解密过程可能会导致 CPU 使用率较高。
要检查是否由于加密开销而导致 CPU 使用率较高,请比较 EBS 卷加密更改前后的 CPU 和应用程序指标。
检查您的应用程序日志,以确定您的任务是否在执行 CPU 密集型操作。要将应用程序日志发送到 CloudWatch,请参阅 Amazon ECS 任务定义示例: 将日志路由到 CloudWatch。
确保为您的 Amazon ECS 任务分配了正确的 CPU 和内存资源。如果 CPU 使用率始终较高,请横向扩展 Amazon ECS 服务的任务。
如果水平扩缩不能解决问题,请增加在任务定义中分配的 CPU 单位,以纵向扩展 Amazon ECS 服务任务。
要分析和调试分布式应用程序,请使用 AWS X-Ray 等工具。跟踪请求在应用程序的服务、函数和资源中传输的路径。有关详细信息,请参阅为 AWS X-Ray 测试应用程序。