跳至内容

如何对替换容器实例后 Amazon ECS 任务的 CPU 使用率较高的问题进行故障排除?

1 分钟阅读
0

我在 Amazon Elastic Container Service (Amazon ECS) 上将容器实例替换为了加密卷。现在,我的任务的 CPU 使用率很高。

解决方案

**注意:**如果您在 AWS Fargate 上遇到 CPU 使用率率较高的问题,请参阅如何排查 Fargate 上 Amazon ECS 任务的 CPU 使用率较高的问题?

查看 Amazon ECS 服务事件日志

检查 Amazon ECS 服务事件日志和指标,以获取 CPU 相关消息

查看容器实例的 CPU 使用率

完成以下步骤:

  1. 打开 Amazon ECS 控制台
  2. 在导航窗格中,选择 Clusters(集群),然后选择您的集群。
  3. 选择 Infrastructure(基础设施)选项卡。
  4. 在搜索栏中输入 Amazon Elastic Compute Cloud (Amazon EC2) 实例 ID,然后选择您的实例。
    **注意:**此操作将打开 Amazon EC2 控制台。
  5. 选择 Monitoring(监控)选项卡,然后选中 CPU utilization (%)(CPU 利用率(%))卡片,以查看容器实例的 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,然后查看 ActiveFlowCountNewFlowCount 指标。如果使用的是应用程序负载均衡器,请检查 ActiveConnectionCount 指标

检查是否存在加密开销

如果您为 Amazon Elastic Block Store (Amazon EBS) 卷激活加密,则加密和解密过程可能会导致 CPU 使用率较高。

要检查是否由于加密开销而导致 CPU 使用率较高,请比较 EBS 卷加密更改前后的 CPU 和应用程序指标。

确保您的 Amazon ECS 任务具有正确的资源分配

检查您的应用程序日志,以确定您的任务是否在执行 CPU 密集型操作。要将应用程序日志发送到 CloudWatch,请参阅 Amazon ECS 任务定义示例: 将日志路由到 CloudWatch

确保为您的 Amazon ECS 任务分配了正确的 CPU 和内存资源。如果 CPU 使用率始终较高,请横向扩展 Amazon ECS 服务的任务

如果水平扩缩不能解决问题,请增加在任务定义分配的 CPU 单位,以纵向扩展 Amazon ECS 服务任务。

优化应用程序代码

要分析和调试分布式应用程序,请使用 AWS X-Ray 等工具。跟踪请求在应用程序的服务、函数和资源中传输的路径。有关详细信息,请参阅为 AWS X-Ray 测试应用程序

AWS 官方已更新 1 年前