AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何在 Amazon ECS 中为任务分配内存?
我想使用 Amazon Elastic Container Service (Amazon ECS) 为任务分配内存。
简短描述
在 Amazon ECS 中,您可以在以下 2 种任务定义中定义任务的内存:
Amazon ECS 会根据您使用的是 memoryReservation 参数还是 memory 参数来计算服务内存利用率指标。有关详细信息,请参阅服务级别的 CPU 和内存利用率。
在以下表中,您可以查看为 Amazon Elastic Compute Cloud (Amazon EC2) 和 AWS Fargate 启动类型配置的最低选项:
| 未定义任务大小的任务 | 已定义任务大小的任务 | |
| 任务 CPU | 可选配置 | 强制配置 |
| 任务内存 | 可选配置 | 强制配置 |
| 容器 CPU | 可选配置 | 可选配置 |
| 容器内存 | 强制配置 | 可选配置 |
| 启动类型兼容性 | 仅 EC2 | EC2 和 Fargate |
对于未定义任务大小的任务,必须为任务配置容器内存。您只能将这些任务用于 Amazon EC2 启动类型。对于已定义任务大小的任务,您可以将这些任务用于 Amazon EC2 或 AWS Fargate 启动类型。然后,配置任务内存和 CPU。有关详细信息,请参阅 Fargate 启动类型的 Amazon ECS 任务定义参数。
解决方法
查看您的容器内存分配
完成以下步骤:
- 打开 Amazon ECS 控制台。
- 在导航窗格中,选择 Clusters(集群),然后选择您的集群。
- 在集群详细信息页面上,选择 Infrastructure(基础架构)。
- 在 Container instances(容器实例)下,选择已注册到您的集群的容器实例 ID。
- 在 Resources and networking(资源和联网)下,查看 Memory(内存)详细信息。
memory 参数提供有关集群的以下详细信息:
- 调用 RegisterContainerInstance API 时可用的内存总容量
- 分配给实例上运行的 ECS 任务的已使用内存
- 可分配给新任务的可用内存
**注意:**要获取实例资源使用情况的统计数据,请使用 SSH 或 SSM 连接到该实例。然后,运行 docker stats 命令。有关详细信息,请参阅 Docker 网站上的 docker container stats(Docker 容器统计数据)。
对于 EC2 启动类型,您必须了解容器实例上的可用内存,以便在任务定义中正确指定内存。如果任务定义中指定的内存大于已注册实例上的可用内存,则任务将失败。
使用 Amazon ECS 控制台 JSON 编辑器
要创建 Amazon ECS 任务定义并为任务分配内存,您可以使用 Amazon ECS 控制台 JSON 编辑器。有关详细信息,请参阅过程。
使用 Amazon ECS 控制台
要使用 Amazon ECS 控制台为任务分配内存,请完成以下任务之一。
创建具有软限制 (memoryReservation) 的任务定义
完成以下步骤:
- 打开 Amazon ECS 控制台。
- 在导航窗格中,选择 Task Definition(任务定义),然后选择 Create new task definition(创建新任务定义)。
- 在 Create task definition(创建任务定义)屏幕上,输入以下信息:
对于 Task definition family name(任务定义系列名称),输入任务的名称。
对于 Launch type(启动类型),选择 Amazon EC2 instances(Amazon EC2 实例)。
在 Container(容器)部分下,对于 Container details(容器详细信息),输入容器的名称和映像 URI。
对于 Resource allocation limits(资源分配限制),输入 Memory soft limit(内存软限制)的值。然后,选择 Create(创建)。
**注意:**内存软限制将映射到 memoryReservation 参数。
创建具有硬限制 (memory) 的任务定义
完成以下步骤:
- 打开 Amazon ECS 控制台。
- 在导航窗格中,选择 Task Definition(任务定义),然后选择 Create new task definition(创建新任务定义)。
- 在 Create task definition(创建任务定义)屏幕上,输入以下信息:
对于 Task definition family name(任务定义系列名称),输入任务的名称。
对于 Launch type(启动类型),选择 Amazon EC2 instances(Amazon EC2 实例)。
在 Container(容器)部分下,对于 Container details(容器详细信息),输入容器的名称和映像 URI。
对于 Resource allocation limits(资源分配限制),输入 Memory hard limit(内存硬限制)的值。然后,选择 Create(创建)。
**注意:**内存硬限制将映射到 memory 参数。
查看容器的内存分配
完成以下步骤:
- 打开 Amazon ECS 控制台。
- 在导航窗格中,选择 Clusters(集群),然后选择您的集群。
- 在 Cluster details(集群详细信息)页面上,选择 Infrastructure(基础架构)选项卡。
- 选择已注册到集群的容器实例。
- 在 Container instance(容器实例)选项卡的 Resources(资源)下,查看 Memory registered(已注册内存)值。
**注意:**当正在运行的任务数为 0 时,Memory registered(已注册内存)值将等于 Memory available(可用内存)值。
**注意:**要获取实例资源使用情况的统计数据,请使用 SSH 或 SSM 连接到该实例。然后,运行 docker stats 命令。有关详细信息,请参阅 Docker 网站上的 docker container stats(Docker 容器统计数据)。
对于作为服务的一部分运行的任务,Service memory utilization(服务内存利用率)指标会以占总内存资源的百分比形式报告使用情况。这些资源是在任务定义中为服务指定的。有关详细信息,请参阅服务级别的 CPU 和内存利用率。
您还可以对集群使用 Container Insights 来查看 MemoryUtilized 指标。该指标显示任务和容器当前使用的内存。
相关信息
How Amazon ECS manages CPU and memory resources(Amazon ECS 如何管理 CPU 和内存资源)
为 Amazon EC2 启动类型创建 Amazon ECS 集群
Docker 网站上的 Resource Constraints(资源限制)
- 语言
- 中文 (简体)
