如何监控 Fargate 上的 Amazon ECS 任务的高内存利用率问题?
上次更新时间:2020 年 11 月 12 日
我想监控 AWS Fargate 上运行的 Amazon Elastic Container Service (Amazon ECS) 任务的高内存利用率问题。
解决方法
要监控 Fargate 上的 Amazon ECS 任务的高内存利用率问题,请尝试以下选项:
查看 Amazon CloudWatch 指标
在 Amazon ECS 控制台或 CloudWatch 控制台中查看 Amazon CloudWatch指标。
注意:系统会自动为 Amazon CloudWatch 内存和 CPU 利用率指标启用任何使用 Fargate 启动类型的 Amazon ECS 服务。
为 Fargate 任务启用 CloudWatch 日志
3. 向您的 Amazon ECS 任务执行 AWS Identity and Access Management (IAM) 角色授予向 Amazon CloudWatch Logs 发送日志的权限。
注意:您的任务必须进入 Running(正在运行)状态,然后才能查看日志。
使用 Container Insights 来监控内存利用率
您可以使用 CloudWatch Container Insights 来监控 Fargate 任务中每个容器的内存利用率。
1. 打开 CloudWatch 控制台。
2. 在导航窗格的 Container Insights 部分,选择 Resources(资源)。
3. 要获取有关某个资源的更多信息,请选择该资源的名称。
注意:任务按每个集群的任务定义进行分组。
4. 选择您要了解更多信息的任务定义的名称。
5. 在 Container Performance(容器性能)部分,选择 Actions(操作),然后选择 View performance logs(查看性能日志)。这将为您的 ECS 集群打开 CloudWatch Logs Insights 。
6. 在查询框中,输入以下查询,然后选择 Run query(运行查询):
stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
| filter Type = "Task" | sort period desc, TaskDefinitionFamily | limit 10
使用 Container Insights 设置高内存利用率警报
1. 打开 CloudWatch 控制台。
2. 在导航窗格的 Container Insights 部分,选择 Performance Monitoring(性能监控)。
3. 从下拉菜单中,选择 ECS Tasks(ECS 任务)或 ECS Services(ECS 服务)。
4. 在 Memory Utilization(内存利用率)卡上,选择展开(垂直的点),然后选择 View in Metrics(在指标中查看)。
5. 选择 Graphed metrics(绘成图表的指标)选项卡,然后在 Actions(操作)列中选择您想了解更多信息的任务的钟形图标。
6. 在 Specify metric and conditions(指定指标和条件)页面上,选择所需的值或保留默认值。
7. 在 Conditions(条件)部分,对于 Define the threshold value(定义阈值),输入 70。这会将警报的内存利用率阈值设置为 70%。
8. 选择 Next (下一步)。
9. 在 Configure actions(配置操作)页面的 Select an SNS topic(选择 SNS 主题)部分,选择 Create new topic(创建新主题)。
10. 对于 Send a notification to(发送通知到),输入要向其发送警报通知的电子邮件 ID。
11. 选择下一步。
12. 在 Add name and description(添加名称和描述)页面上,对于 Alarm name(警报名称),输入警报的名称。
13. (可选)对于 Alarm description(警报描述),输入警报的描述。
14. 选择 Next(下一步),然后选择 Create alarm(创建警报)。
15. 按照从 AWS 收到的确认电子邮件中的说明确认订阅。
注意:为帮助您管理 Container Insights 成本,CloudWatch 不会自动利用日志数据创建所有可能的指标。您可以使用 CloudWatch Logs Insights 来分析原始性能日志事件,从而查看其他指标和额外的粒度级别。