6

根据 AWS 文档:

Service CPU utilization = 
(Total CPU units used by tasks in service) x 100
------------------------------------------------------
(Total CPU units specified in task definition) x (number of tasks in service)

...那么,让服务以 500% 的服务 CPU 利用率运行是否有任何不利影响,超出了我的服务执行的 CPU 密集型工作比配置的更多?

换句话说:我的整个集群以 5% 的 CPU 运行,但我的服务以 500% 的 CPU Util 运行——这是否会以任何方式影响底层服务性能?

谢谢

4

1 回答 1

10

这是一个方便的指标,用于指定服务Service CPU Utilization的 CPU 使用率,例如ECS 集群服务。这不应与由该服务管理的每台主机的实际 CPU 使用率相混淆。

您设置的 CPU 单元在您的任务中定义 -设置了您希望健康任务看起来像的限制;ECS 和 CloudWatch 使用该指标来帮助您将集群保持在认为的“健康”状态。

AWS 服务利用率文档:

例如,服务的任务定义为其所有容器指定总共 512 个 CPU 单元和 1,024 MiB 内存(使用硬限制内存参数)。该服务的期望数量为 1 个正在运行的任务,该服务在具有 1 个 c4.large 容器实例(具有 2,048 个 CPU 单元和 3,768 MiB 的总内存)的集群上运行,并且集群上没有运行其他任务。该任务虽然指定了 512 个 CPU 单元,但由于它是唯一一个在具有 2048 个 CPU 单元的容器实例上运行的任务,它最多可以使用指定数量的四倍(2048 / 512);但是,指定的 1,024 MiB 内存是硬限制,不能超过,因此在这种情况下,服务内存利用率不能超过 100%。

[ ... ]

如果此任务在一段时间内执行 CPU 密集型工作并使用所有 2,048 个可用 CPU 单元和 512 MiB 内存,则该服务报告 400% 的 CPU 利用率和 50% 的内存利用率。如果任务空闲并使用 128 个 CPU 单元和 128 MiB 内存,则服务报告 25% 的 CPU 利用率和 12.5% 的内存利用率。

因此,要直接回答您是否会影响服务性能的问题,答案是……也许。该服务可以配置为仅了解或考虑集群中的某些主机(更多详细信息)。如果您的服务500%根据您设置的限制报告使用情况,但该服务有权访问的底层主机在主机级别是健康的,那么您可能会认为您的服务是“健康的”。

但是,我会考虑调整您的任务配置,以更好地与允许的 CPU 单元的正常非高峰限制保持一致。

请记住,虽然您的集群可能会向您显示5%使用情况,但您的集群完全有可能有 20 台主机,其中 19 台空闲,1 台完全被您的服务超载(同样,取决于您如何配置任务放置约束)。

于 2018-01-30T20:22:52.690 回答