本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 ECS CloudWatch 指标
您可以使用 Amazon 监控您的 Amazon ECS 资源 CloudWatch,亚马逊会收集来自 Amazon ECS 的原始数据并将其处理为可读的、近乎实时的指标。这些统计数据会保存两周,以便您能够访问历史信息并更好地了解您的群集或服务的运行情况。Amazon ECS 指标数据会 CloudWatch 在 1 分钟内自动发送到。有关的更多信息 CloudWatch,请参阅 Amazon CloudWatch 用户指南。
Amazon ECS 为集群和服务提供免费指标。只需支付额外费用,您就可以为集群启用 Amazon ECS CloudWatch 容器洞察功能,获取每项任务的指标,包括 CPU、内存和 EBS 文件系统利用率。有关安装 Container Insights 的更多信息,请参阅 Amazon ECS CloudWatch 容器见解。
使用 Amazon ECS CloudWatch 指标时的注意事项
在使用 Amazon ECS CloudWatch 指标时,应考虑以下几点。
-
Fargate 上托管的任何 Amazon ECS 服务都会自动获得 CloudWatch CPU 和内存利用率指标,因此您无需执行任何手动步骤。
-
对于托管在亚马逊 EC2 实例上的任何 Amazon ECS 任务或服务,Amazon EC2 实例需要容器代理版本
1.4.0
1.0.0
或更高版本 (Linux) 或更高版本 (Windows) 才能生成 CloudWatch 指标。但是,我们建议使用最新的容器代理版本。有关检查您的代理版本并更新到最新版本的信息,请参阅更新 Amazon ECS 容器代理。 -
为了获得可靠 CloudWatch 指标,Docker 的最低版本是 Docker 版本
20.10.13
及更高版本。 -
您的 Amazon EC2 实例还需要获得启动亚马逊 EC2 实例时使用的 IAM 角色的
ecs:StartTelemetrySession
权限。如果您在 Amazon ECS 提供 CloudWatch 指标之前创建了 Amazon ECS 容器实例 IAM 角色,则可能需要添加此权限。有关容器实例 IAM 角色以及为容器实例附加托管 IAM 策略的信息,请参阅Amazon ECS 容器实例 IAM 角色。 -
您可以通过在 Amazon ECS 容器代理配置
ECS_DISABLE_METRICS=true
中进行设置来禁用 CloudWatch 指标收集。有关更多信息,请参阅Amazon ECS 容器代理配置。
可用指标和维度
以下部分列出了 Amazon ECS 发送给亚马逊的指标和维度 CloudWatch。
统计数据概述
统计数据是指定时间段内的指标数据聚合。 CloudWatch 根据您的自定义数据提供的指标数据点或其他服务提供的指标数据点 Amazon 提供统计信息 CloudWatch。聚合通过使用命名空间、指标名称、维度以及数据点度量单位在您指定的时间段内完成。
Amazon ECS CloudWatch 每分钟都会向其发送以下指标。当 Amazon ECS 收集指标时,每分钟会收集多个数据点。然后将它们聚合成一个数据点,并将数据发送到 CloudWatch。因此 CloudWatch,一个样本计数实际上是一分钟内多个数据点的聚合。因此,Average
是以下可用统计数据中最有用的:
统计数据 | 描述 |
---|---|
Average |
指定时间段内 |
Maximum |
指定时间段内的最高观察值。可以使用此值来决定应用程序的活动量是否较高。 |
Minimum |
指定时间段内的最低观察值。可以使用此值来决定应用程序的活动量是否较低。 |
SampleCount |
数据点计数 (数量) 用于统计信息的计算。 |
Sum |
为匹配指标所提交的所有的值添加在一起。此统计信息的作用是决定指标的总量。 |
Amazon ECS 指标
Amazon ECS 提供了可用于监控资源的免费 CloudWatch 指标。使用这些指标可以衡量整个集群的 CPU 和内存预留以及 CPU、内存和 EBS 文件系统利用率,以及集群中服务的 CPU、内存和 EBS 文件系统利用率。对于您的 GPU 工作负载,您可以度量集群中的 GPU 预留。
您的 Amazon ECS 任务托管在集群中的基础设施决定了哪些指标可用。对于托管在 Fargate 基础设施上的任务,Amazon ECS 提供 CPU、内存,并提供 EBS 文件系统利用率指标来帮助监控您的服务。对于托管在 EC2 实例上的任务,Amazon ECS 提供集群和服务级别的 CPU、内存和 GPU 预留指标以及 CPU 和内存利用率指标。您需要单独监控构成底层基础设施的 Amazon EC2 实例。有关监控您的亚马逊 EC2 实例的更多信息,请参阅亚马逊 EC2 Linux 实例用户指南中的监控 Amazon EC2。
中的AWS/ECS
命名空间 CloudWatch 包括以下指标。
CPUReservation
-
集群中正在运行的任务所预留的 CPU 单位的百分比。
集群级别 CPU 预留量的计算方法是 Amazon ECS 任务在集群上预留的 CPU 总单位除以集群中注册的所有 Amazon EC2 实例的 CPU 总单位数。此指标只能按以下条件筛选
ClusterName
。只有处于ACTIVE
或DRAINING
状态的 Amazon EC2 实例才会影响 CPU 预留指标。此指标仅支持托管在 Amazon EC2 实例上的任务。有效维度:
ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:百分比。
CPUUtilization
-
集群或服务中使用的 CPU 单位的百分比。
集群级别 CPU 利用率指标(按
ClusterName
不使用筛选ServiceName
)的计算方法为:集群上的 Amazon ECS 任务使用的 CPU 总单位除以为集群中所有 Amazon EC2 实例注册的 CPU 单位总数。只有处于ACTIVE
或DRAINING
状态的 Amazon EC2 实例才会影响 CPU 利用率指标。集群级别 CPU 利用率指标仅支持托管在 Amazon EC2 实例上的任务。服务级别 CPU 利用率指标(按
ClusterName
和筛选ServiceName
)的衡量方式为属于该服务的任务使用的 CPU 单位总数,除以为属于该服务的任务预留的 CPU 单元总数。Fargate 和 Amazon EC2 实例上托管的任务都支持服务级别 CPU 利用率指标。有效维度:
ClusterName
、ServiceName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:百分比。
MemoryReservation
-
集群中正在运行的任务所预留的内存的百分比。
集群内存预留的计算方法是 Amazon ECS 任务在集群上预留的总内存量除以在集群中注册的所有 Amazon EC2 实例的内存总量。此指标只能按以下条件筛选
ClusterName
。只有处于ACTIVE
或DRAINING
状态的 Amazon EC2 实例才会影响内存预留指标。只有在 Amazon EC2 实例上托管的任务才支持集群级别的内存预留指标。有效维度:
ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:百分比。
注意
计算内存利用率时,如果
MemoryReservation
已指定,则在计算中使用内存利用率而不是总内存。 MemoryUtilization
-
集群或服务中使用的内存的百分比。
集群级别的内存利用率指标(按
ClusterName
不使用筛选ServiceName
)的计算方法为:集群上的 Amazon ECS 任务使用的总内存除以集群中注册的所有 Amazon EC2 实例的内存总量。只有处于ACTIVE
或DRAINING
状态的 Amazon EC2 实例才会影响内存利用率指标。只有在 Amazon EC2 实例上托管的任务才支持集群内存利用率指标。服务级别内存利用率(按
ClusterName
和筛选ServiceName
)的计算方法为属于该服务的任务使用的总内存量除以为属于该服务的任务保留的总内存。Fargate 和 Amazon EC2 实例上托管的任务都支持服务级别内存利用率指标。有效维度:
ClusterName
、ServiceName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:百分比。
EBSFilesystemUtilization
-
服务中任务使用的 Amazon EBS 文件系统的百分比。
服务级别 EBS 文件系统利用率指标(按
ClusterName
、筛选ServiceName
)的衡量方式为:属于该服务的任务使用的 EBS 文件系统的总量除以为属于该服务的所有任务分配的 EBS 文件系统存储总量。服务级别 EBS 文件系统利用率指标仅适用于在 Fargate 上运行的、使用平台版本的 Amazon ECS 基础设施上运行的任务,或者使用容器代理版本1.79.0
或更高版本1.4.0
的 Amazon EC2 实例上运行的附加 EBS 卷的任务。注意
对于在 Fargate 上运行的任务,磁盘上有只能由 Fargate 使用的空间。Fargate 使用的空间不会产生任何成本,但可以使用类似
df
的工具看到额外的存储空间。有效维度:
ClusterName, ServiceName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:百分比。
GPUReservation
-
集群中正在运行的任务所预留的总可用 GPU 的百分比。
集群级 GPU 预留指标的衡量方法是:集群上由 Amazon ECS 任务预留的 GPU 数量除以在集群中注册了 GPU 的所有 Amazon EC2 实例上可用的 GPU 总数。只有处于
ACTIVE
或DRAINING
状态的 Amazon EC2 实例才会影响 GPU 预留指标。有效维度:
ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:百分比。
ActiveConnectionCount
-
从客户端到在共享选定
DiscoveryName
的任务中运行的 Amazon ECS Service Connect 代理的并发活动连接总数。此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
DiscoveryName
和DiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
NewConnectionCount
-
从客户端到在共享选定
DiscoveryName
的任务中运行的 Amazon ECS Service Connect 代理建立的新连接总数。此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
DiscoveryName
和DiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
ProcessedBytes
-
Service Connect 代理处理的入站流量的总字节数。
此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
DiscoveryName
和DiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:字节。
RequestCount
-
Service Connect 代理处理的入站流量请求的数量。
此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
DiscoveryName
和DiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
GrpcRequestCount
-
Service Connect 代理处理的 gRPC 入站流量请求的数量。
此指标仅在您配置了 Amazon ECS Service Connect 且
appProtocol
为位于任务定义的端口映射中的GRPC
时才可用。有效维度:
DiscoveryName
和DiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
HTTPCode_Target_2XX_Count
-
应用程序在这些任务中生成的编号为 200 到 299 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应,不计入直接发送的响应。
此指标仅在您配置了 Amazon ECS Service Connect 且
appProtocol
为位于任务定义的端口映射中的HTTP
或HTTP2
时才可用。有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
HTTPCode_Target_3XX_Count
-
应用程序在这些任务中生成的编号为 300 到 399 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应,不计入直接发送的响应。
此指标仅在您配置了 Amazon ECS Service Connect 且
appProtocol
为位于任务定义的端口映射中的HTTP
或HTTP2
时才可用。有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
HTTPCode_Target_4XX_Count
-
应用程序在这些任务中生成的编号为 400 到 499 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应,不计入直接发送的响应。
此指标仅在您配置了 Amazon ECS Service Connect 且
appProtocol
为位于任务定义的端口映射中的HTTP
或HTTP2
时才可用。有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
HTTPCode_Target_5XX_Count
-
应用程序在这些任务中生成的编号为 500 到 599 的 HTTP 响应代码的数量。这些任务是目标。此指标仅计入应用程序在这些任务中发送给 Service Connect 代理的响应,不计入直接发送的响应。
此指标仅在您配置了 Amazon ECS Service Connect 且
appProtocol
为位于任务定义的端口映射中的HTTP
或HTTP2
时才可用。有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
RequestCountPerTarget
-
共享所选
DiscoveryName
的每个目标收到的平均请求数。此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:计数。
TargetProcessedBytes
-
Service Connect 代理处理的总字节数。
此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:字节。
TargetResponseTime
-
应用程序请求处理的延迟。请求到达目标任务中的 Service Connect 代理到从目标应用程序收到返回代理的响应所用的时间(以毫秒为单位)。
此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
TargetDiscoveryName
和TargetDiscoveryName, ServiceName, ClusterName
。有效统计数据:平均值、最小值、最大值、总计和样本数。
单位:毫秒。
ClientTLSNegotiationErrorCount
-
TLS 连接失败的总次数。此指标仅在启用 TLS 时使用。
此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效尺寸:
DiscoveryName
和DiscoveryName
、ServiceName
、ClusterName
。有效统计数据:最小值、最大值、总和、、平均值SampleCount、pnn.nn。
单位:计数。
TargetTLSNegotiationErrorCount
-
由于缺少客户端证书、验证失败或 SAN Amazon Private CA 验证失败而导致 TLS 连接失败的总次数。此指标仅在启用 TLS 时使用。
此指标仅在您配置了 Amazon ECS Service Connect 时可用。
有效维度:
ServiceName
ClusterName
、TargetDiscoveryName
和TargetDiscoveryName
。有效统计数据:最小值、最大值、总和、、平均值SampleCount、pnn.nn。
单位:计数。
Amazon ECS 指标的维度
Amazon ECS 指标使用 AWS/ECS
命名空间并提供以下维度的指标。Amazon ECS 仅为任务处于 RUNNING
状态的资源发送指标。例如,如果您的集群包含一个服务,但该服务没有处于 RUNNING
状态的任务,则不会向 CloudWatch 发送任何指标。如果您有两个服务,其中一个服务具有正在运行的任务,而另一个服务没有,则仅发送具有正在运行的任务的服务的指标。
ClusterName
-
此维度将筛选您为指定集群中的所有资源请求的数据。将按
ClusterName
筛选所有 Amazon ECS 指标。 ServiceName
-
此维度将筛选您为指定集群内的指定服务中的所有资源请求的数据。
DiscoveryName
-
该维度将您为流量指标请求的数据筛选到所有 Amazon ECS 集群的指定 Service Connect 发现名称。
请注意,正在运行的容器中的特定端口可能有多个发现名称。
DiscoveryName, ServiceName, ClusterName
-
此维度会将您请求的流量指标数据筛选到所有任务中的指定 Service Connect 发现名称,这些任务具有此发现名称且由此服务在此集群中创建。
如果您在不同命名空间的多个服务中重复使用了相同的发现名称,则可以使用此维度来查看特定服务的入站流量指标。
请注意,正在运行的容器中的特定端口可能有多个发现名称。
TargetDiscoveryName
-
该维度将您为流量指标请求的数据筛选到所有 Amazon ECS 集群的指定 Service Connect 发现名称。
与
DiscoveryName
不同的是,这些流量指标仅衡量来自在此命名空间中具有 Service Connect 配置的其他 Amazon ECS 任务的传送到该DiscoveryName
的入站流量。这包括具有仅限客户端配置或客户端/服务器 Service Connect 配置的服务执行的任务。请注意,正在运行的容器中的特定端口可能有多个发现名称。
TargetDiscoveryName, ServiceName, ClusterName
-
此维度会将您请求的流量指标数据筛选到指定 Service Connect 发现名称,但仅计入来自此服务在此集群中创建的任务的流量。
使用此维度可以查看来自其他服务中特定客户端的入站流量指标。
与
DiscoveryName, ServiceName, ClusterName
不同的是,这些流量指标仅衡量来自在此命名空间中具有 Service Connect 配置的其他 Amazon ECS 任务的传送到该DiscoveryName
的入站流量。这包括具有仅限客户端配置或客户端/服务器 Service Connect 配置的服务执行的任务。请注意,正在运行的容器中的特定端口可能有多个发现名称。
集群预留
集群预留指标以所有 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 内存。这被报告 CloudWatch 为集群预留了 55% 的 CPU 和 60% 的内存预留。
下图显示了在某个集群中注册的 CPU 单元总数,以及它们的预留和利用率对现有任务和新任务放置的意义。较低的(已保留,已使用)和中心(已保留,未使用)块表示为集群上正在运行的现有任务预留的 CPU 总单位或CPUReservation
CloudWatch 指标。下方块表示正在运行的任务在集群上实际使用的预留 CPU 单位或CPUUtilization
CloudWatch 指标。上面的块表示现有任务未预留的 CPU 单元数;这些 CPU 单元可用于新任务放置。现有任务如果对 CPU 资源的需求增加,也可以使用这些未预留 CPU 单元。有关更多信息,请参阅 cpu 任务定义参数文档。
集群利用率
集群利用率指标可用于 CPU、内存,如果您的任务有 EBS 卷,还有 EBS 文件系统利用率。这些指标仅适用于在 Amazon EC2 实例上托管任务或服务的集群。托管任务的集群不支持它们 Amazon Fargate。
集群级别 CPU 和内存利用率
CPU 和内存利用率以集群上所有任务使用的 CPU 和内存占注册到集群的每个活动 Amazon EC2 实例的聚合 CPU 和内存的百分比来衡量。只有处于ACTIVE
或DRAINING
状态的 Amazon EC2 实例才会影响集群利用率指标。
(Total CPU units used by tasks in cluster) x 100
Cluster CPU utilization = --------------------------------------------------------------
(Total CPU units registered by container instances in cluster)
(Total MiB of memory used by tasks in cluster x 100)
Cluster memory utilization = ------------------------------------------------------------------
(Total MiB of memory registered by container instances in cluster)
每分钟,每个 Amazon EC2 实例上的 Amazon ECS 容器代理都会计算该亚马逊 EC2 实例上运行的每项任务当前使用的 CPU 单位数和 MiB 内存,并将这些信息报告给 Amazon ECS。计算出集群上运行的所有任务所使用的 CPU 和内存总量,并将这些数字报告 CloudWatch 为集群注册资源总量的百分比。
例如,一个集群注册了两个活跃的 Amazon EC2 实例,一个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 的内存。
如果此集群上正在运行十个任务,并且每个任务消耗 1,024
CPU 单位和 Mi 2,048
B 内存,则集群上总10,240
共使用了 CPU 单位和 20,480
MiB 内存。据报告,集群的 CPU 利用率 CloudWatch 为 55%,内存使用率为 60%。
集群级 EBS 文件系统利用率
集群级 EBS 文件系统利用率指标的衡量方法是:集群上运行的任务使用的 EBS 文件系统总量除以为集群中所有任务分配的 EBS 文件系统存储总量。
(Total GB of EBS filesystem used by tasks in cluster x 100)
Cluster EBS filesystem utilization = ---------------------------------------------------------------
(Total GB of EBS filesystem allocated to tasks in cluster)
服务利用率
服务利用率指标可用于 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 容器见解中的服务RUNNING
任务数
当您使用 Amazon ECS CloudWatch 容器洞察时,每个集群和每项服务都有一个 “正在运行的任务数” (RunningTaskCount
) 指标。您可以将 Container Insights 用于通过选择containerInsights
账户设置创建的所有新集群、在创建集群期间打开集群设置的单个集群,或者使用 UpdateClusterSettings API 在现有集群上使用 Container Insights。Contain CloudWatch er Insights 收集的指标按自定义指标计费。有关 CloudWatch 定价的更多信息,请参阅 CloudWatch 定价
要查看此指标,请参阅亚马逊 CloudWatch 用户指南中的 Amazon ECS 容器洞察指标。
来自 Amazon ECS 提供的指标的服务 RUNNING
任务计数
但是,Amazon ECS 会提供监控指标,无需额外费用。要使用这些指标来计算正在运行的任务,请在 CloudWatch控制台中执行以下步骤。
查看服务中正在运行的任务数
打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,依次选择 Metrics(指标)、All metrics(所有指标)。
-
在 Browse(浏览)选项卡上,选择 ECS 命名空间。
-
选择 ClusterName,ServiceName然后选择与服务对应的任何指标(
CPUUtilization
或MemoryUtilization
),以查看正在运行的任务。 -
在绘成图表的指标选项卡上,将周期更改为 1 分钟,将统计数据更改为样本数。
图中显示的值表示服务中的
RUNNING
任务的数量。