如何排查 Fargate 上 Amazon ECS 任务的 CPU 使用率较高的问题?
上次更新日期:2020 年 12 月 17 日
我想了解 AWS Fargate 上 Amazon Elastic Container Service (Amazon ECS) 任务的 CPU 使用率较高的原因。
解决方法
作为服务一部分,排查 Fargate 任务的 CPU 使用率较高的问题
- 使用 Amazon CloudWatch 指标查看服务级 CPU 使用率。
- 检查 Amazon ECS 服务中是否存在正在进行的部署。在部署过程中,随着运行的任务增加,Amazon ECS 服务的总 CPU 使用率也会增加。部署完成后,总 CPU 使用率应该会降低。
如果没有正在进行的部署,请检查以下各项:
- 检查应用程序日志,查看您的任务是否正在执行 CPU 密集型操作。日志将导出到各个目标,具体取决于您的日志记录驱动程序。如果您使用的是 awslogs 驱动程序,则日志将导出到 CloudWatch。CPU 密集型操作会因 Fargate 任务中部署的应用程序而异。
- 通过查看负载均衡器的 CloudWatch 指标,检查 Amazon ECS 服务的传入流量是否会增加。如果任务的流量增加,请考虑使用 Auto Scaling 来增加服务中运行的所需任务数。这允许将传入流量分配到更多任务,从而降低任务的总 CPU 使用率。
排查独立 Fargate 任务的高 CPU 使用率问题
要通过性能日志查看任务级指标,您必须启用 CloudWatch Container Insights。有关更多信息,请参阅推出适用于 Amazon ECS 的 Amazon CloudWatch Container Insights。
如果应用程序的容器必须执行 CPU 密集型工作负载,请考虑升级到包含更多 vCPU 和内存的更大任务大小。有关更多信息,请参阅 AWS Fargate 定价。</p