Amazon ECS 集群预留指标
集群预留指标以所有 Amazon ECS 任务在某个集群上预留的 CPU、内存和 GPU 占已为该集群中每个活动容器实例注册的聚合 CPU、内存和 GPU 的百分比来度量。仅处于 ACTIVE
或 DRAINING
状态的容器实例将影响集群预留指标。此指标仅用于包含在 EC2 实例上托管的任务或服务的集群。包含在 Amazon Fargate 上托管任务的集群不支持此指标。
(Total CPU units reserved by tasks in cluster) x 100
Cluster CPU reservation = --------------------------------------------------------------
(Total CPU units registered by container instances in cluster)
(Total MiB of memory reserved by tasks in cluster x 100)
Cluster memory reservation = ------------------------------------------------------------------
(Total MiB of memory registered by container instances in cluster)
(Total GPUs reserved by tasks in cluster x 100)
Cluster GPU reservation = ------------------------------------------------------------------
(Total GPUs registered by container instances in cluster)
当您在某个集群中运行某项任务时,Amazon ECS 将分析该集群的任务定义并预留在该集群的容器定义中指定的聚合 CPU 单元数、内存 MiB 数和 GPU 数。Amazon ECS 每分钟都会计算当前为在该集群中运行的每个任务预留的 CPU 单元数、内存 MiB 数和 GPU 数。它还会计算为在该集群上运行的所有任务预留的 CPU、内存和 GPU 的总量,这些数字将以占该集群的注册资源总量的百分比的形式报告给 CloudWatch。如果您在任务定义中指定软限制(memoryReservation
),它将用于计算预留内存量。否则将使用硬限制 (memory
)。集群中的任务预留的总内存量(以 MiB 为单位)还包括临时文件系统(tmpfs
)卷大小,如果在任务定义中定义,还包括 sharedMemorySize
。有关软限制和硬限制、共享内存大小和 tmpfs 卷大小的更多信息,请参阅任务定义参数。
例如,某个集群注册了两个活动容器实例:一个 c4.4xlarge
实例和一个 c4.large
实例。c4.4xlarge
实例在集群中注册了 16,384 个 CPU 单元和 30,158 MiB 内存。c4.large
实例注册了 2,048 个 CPU 单元和 3,768 MiB 内存。此集群的聚合资源为 18,432 个 CPU 单元和 33,926 MiB 内存。
如果某个任务定义预留了 1024 个 CPU 单元和 2048 MiB 内存,并且在此集群上启动了 10 个使用此任务定义的任务(当前没有运行其他任务),则总共将预留 10240 个 CPU 单元和 20480 MiB 内存。此信息将以集群的 55% CPU 预留量和 60% 内存预留量的形式报告给 CloudWatch。
下图显示了在某个集群中注册的 CPU 单元总数,以及它们的预留和利用率对现有任务和新任务放置的意义。下面的块(已预留,已使用)和中间的块(已预留,未使用)表示为集群上运行的现有任务预留的总 CPU 单元数(即 CPUReservation
CloudWatch 指标)。下面的块表示正在运行的任务在集群上实际正在使用的预留 CPU 单元数(即 CPUUtilization
CloudWatch 指标)。上面的块表示现有任务未预留的 CPU 单元数;这些 CPU 单元可用于新任务放置。现有任务如果对 CPU 资源的需求增加,也可以使用这些未预留 CPU 单元。有关更多信息,请参阅 cpu 任务定义参数文档。
