如何配置 ECS 自动扩展来跟踪 CPU 和 RAM 利用率?

问题描述 投票:0回答:1

我正在致力于向 ECS 服务添加自动缩放功能。该服务当前配置为使用 3 个任务,但没有适当的扩展策略。 该服务处理许多不同的工作负载 - 一些工作负载受 CPU 限制(即指标计算),而其他工作负载则受内存限制(即检索大量数据)。根据一天中的不同时间,服务器上的工作负载会发生变化,因此我们希望能够根据两者 RAM 和 CPU 利用率进行扩展 - 以便针对两种类型的工作负载进行扩展。

我过去曾使用过 Kubernetes,并且我知道为同一个服务拥有两个单独的 HPA(水平 Pod 自动缩放器)可能会导致问题(例如,由于 HPA 跟踪内存,服务会被扩展,但随后跟踪 CPU 的 HPA 会缩减服务规模)。但是,我不确定 ECS 是否也存在同样的问题,即扩展策略冲突。

我查看了与 ECS 自动扩展相关的 AWS 文档,但是,该文档似乎讨论了识别一个单个指标来跟踪利用率 - 例如:

为了有效扩展,确定表明利用率或饱和度的指标至关重要

以上暗示使用单一指标,并且:

在负载测试时,检查每个利用率指标。随着负载增加的指标是最适合作为最佳利用率指标的候选指标。 [...] 同时,还要

检查利用率指标,看看哪个指标首先在高水平上趋于平稳。 [...] 因此,选择代表首先耗尽的资源的指标。 [...] 假设“关键指标”以以前一半的速度增加或减少。如果是这种情况,那么“指标”与容量成正比。这是自动缩放的一个很好的利用率指标。 上面的代码片段指导您从识别一组与负载相关的指标,到选择与负载最成比例的单个指标。

如上所述,我们的服务负载全天都会发生变化,因此我们理想情况下希望根据 RAM 和 CPU 利用率进行扩展,但 AWS 文档促使您选择单个指标。我们有没有办法将扩展与两个指标联系起来,或者跟踪多个指标会导致扩展指令冲突吗?

您应该能够根据 AWS 使用多个目标跟踪策略来做到这一点

如果任何目标跟踪策略已准备好横向扩展,它将横向扩展 Auto Scaling 组,但仅当所有目标跟踪策略(启用了缩减部分)已准备好缩减时才会缩减。

amazon-web-services amazon-ecs amazon-cloudwatch autoscaling aws-auto-scaling
1个回答
0
投票

https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html

© www.soinside.com 2019 - 2024. All rights reserved.