如果我的服务超过100%“服务CPU利用率”会有什么影响

时间:2018-01-30 19:48:54

标签: amazon-web-services aws-ecs

AS per AWS docs:

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 - 这是否会以任何方式影响基础服务性能?

由于

1 个答案:

答案 0 :(得分:5)

Service CPU Utilization是一个便利指标,用于指定服务的CPU使用情况,如ECS Cluster Service。这不应与实际的CPU使用量每个主机混淆,后者由该服务管理。

您设置的CPU单位在您的任务中定义 - 设置您希望健康任务看起来像什么的限制; ECS和CloudWatch使用该指标来帮助您将群集保持在认为健康的#34;州。

AWS服务利用率文档:

  

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

     

[...]

     

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

因此,要直接回答您是否影响服务性能的问题,答案是...... 也许。可以将该服务配置为仅了解或考虑群集中的某些主机(more details)。如果您的服务根据您设置的限制报告500%的使用情况,但该服务可以访问的基础主机在主机级别是健康的,那么您可以认为您的服务是&# 34;健康&#34 ;.

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

请注意,虽然您的群集可能显示5%使用情况,但您的群集完全可能有20台主机,其中19台处于空闲状态,1台服务器完全超载(再次,取决于您如何配置任务放置限制)。