Amazon ECS 服务利用率指标
服务利用率指标可用于 CPU、内存以及 EBS 文件系统利用率(条件是您的任务附加有 EBS 卷)。服务级别的指标仅支持具有 Amazon EC2 实例和 Fargate 上托管的任务的服务。
服务级别的 CPU 和内存利用率
CPU 和内存利用率以属于集群上某个服务的 Amazon ECS 任务使用的 CPU 和内存占该服务的任务定义中指定的 CPU 和内存的百分比的形式来度量。
(Total CPU units used by tasks in service) x 100
Service CPU utilization = ----------------------------------------------------------------------------
(Total CPU units specified in task definition) x (number of tasks in service)
(Total MiB of memory used by tasks in service) x 100
Service memory utilization = --------------------------------------------------------------------------------
(Total MiB of memory specified in task definition) x (number of tasks in service)
每分钟,Amazon ECS 容器代理都会计算当前用于服务所拥有的每个任务的 CPU 单元数和内存 MiB 数,并将此信息报告回 Amazon ECS。它还将计算用于由该服务拥有且正在该集群上运行的所有任务的 CPU 和内存的总量,并将这些数字以占在该服务的任务定义中为该服务指定的总资源的百分比的形式报告给 CloudWatch。如果您指定软限制 (memoryReservation
),它用于计算预留内存量。否则将使用硬限制 (memory
)。有关硬限制和软限制的更多信息,请参阅任务大小。
例如,某个服务的任务定义为其所有容器总共指定了 512 个 CPU 单元和 1,024 MiB 内存 (带硬限制 memory
参数)。该服务需要有 1 个正在运行的任务,并且该服务在一个包含 1 个 c4.large
容器实例 (具有 2,048 个 CPU 单元和 3,768 MiB 总内存) 的集群上运行,该集群上没有其他正在运行的任务。尽管该任务指定了 512 个 CPU 单元,但由于它是具有 2048 个 CPU 单元的容器实例上唯一一个正在运行的任务,它最多可以使用指定数量的四倍的资源 (2048/512)。但是,1024 MiB 的指定内存量是一个它无法超出的硬限制,因此在这种情况下,服务内存利用率不能超过 100%。
如果上述示例使用了软限制 memoryReservation
而不是硬限制 memory
参数,则该服务的任务可以根据需要使用超出指定的 1024MiB 的内存量。在这种情况下,该服务的内存利用率可能会超过 100%。
如果您的应用程序短时间内存利用率突然飙升,您将看不到服务内存利用率的提高,因为 Amazon ECS 每分钟收集多个数据点,然后将它们聚合发送到 CloudWatch 的一个数据点。
如果该任务在某个时间段内执行 CPU 密集型工作并且用尽了 2048 个可用 CPU 单元和 512 MiB 内存,则服务将报告 400% CPU 利用率和 50% 内存利用率。如果该任务处于空闲状态且使用了 128 个 CPU 单元和 128 MiB 内存,则服务将报告 25% CPU 利用率和 12.5% 内存利用率。
注意
在此示例中,在容器级别定义 CPU 单位时,CPU 使用率只会超过 100%。如果在任务级别定义 CPU 单元,利用率将不会超过定义的任务级别限制。
服务级别的 EBS 文件系统利用率
服务级别的 EBS 文件系统利用率是通过将属于该服务的任务使用的 EBS 文件系统的总量除以为属于该服务的所有任务分配的 EBS 文件系统存储总量计算得到的。
(Total GB of EBS filesystem used by tasks in the service x 100)
Service EBS filesystem utilization = -----------------------------------------------------------------
(Total GB of EBS filesystem allocated to tasks in the service)
服务 RUNNING
任务计数
您可以使用 CloudWatch 指标查看您的服务中处于 RUNNING
状态的任务数。例如,您可以为此指标设置一个 CloudWatch 警报,用于在您的服务中运行的任务数下降至指定值以下时提醒您。
Amazon ECS CloudWatch Container Insights 中的服务 RUNNING
任务计数
使用 Amazon ECS CloudWatch Container Insights 时,每个集群和每个服务都有一个“运行任务数”(RunningTaskCount
)指标。可以通过选择加入 containerInsights
账户设置来为创建的所有新集群使用 Container Insights,通过在集群创建期间启用集群设置来对单个集群使用它,或者通过 UpdateClusterSettings API 来对现有集群使用它。CloudWatch Container Insights 收集的指标按自定义指标收费。有关 CloudWatch 定价的信息,请参阅 CloudWatch 定价
要查看此指标,请参阅《Amazon CloudWatch 用户指南》中的 Amazon ECS Container Insights 指标。