AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 868353
Accepted
Philipp Claßen
Philipp Claßen
Asked: 2017-08-13 13:50:15 +0800 CST2017-08-13 13:50:15 +0800 CST 2017-08-13 13:50:15 +0800 CST

EC2 Auto-Scaling:配置目标跟踪策略以首选 Spot 实例

  • 772

亚马逊最近为 EC2 Auto Scaling 引入了目标跟踪策略。

在我的生产服务中,我使用两个单独的自动扩展组来支持混合自动扩展,同时混合使用 Spot 和 On-Demand 实例。我想要的是我的 CPU 使用率不应该超过 70%,它应该尽可能使用 Spot 实例,但如果有必要则回退到按需实例。

首先,我将两个 Auto-Scaling 组(Spot 和 On-Demand)设置为使用 Target Tracking 来实现 70% 的 CPU 负载,并将两个组的最小大小设置为一个。我的服务的流量是可以预测的(没有突然增加,白天流量更多,晚上流量很少)。

有一次,有两个 On-Demand 和两个 Spot 实例正在运行。由于五台服务器的 CPU 负载变得非常低(大约 35%),系统刚刚缩减了规模。使用四台服务器时,CPU 负载上升,几分钟后短暂超过 70%(可能当时的流量增长非常小)。

系统保守地决定再次扩展,但由于两个自动扩展组同时独立做出决定,因此启动了两个实例(一个 Spot 实例和一个 On-Demand 实例)。此时,现在有六台服务器在运行。过了一会儿,它再次缩小,最终达到了运行四个实例的设置。

为了避免这种影响,我现在将设置更改如下:

  • 按需:目标 70% 的 CPU 使用率,最少一台服务器
  • 现货:目标 65% CPU 使用率,最少一台服务器

我的假设是它应该有助于防止我描述的那种情况。我希望按需组比 Spot 组更早地缩减规模(无论如何,这是可取的,因为它们的成本更高)。而且我希望 Spot 实例能够更快地扩展,这应该可以防止按需组进行不必要的扩展。

这是我的期望,但我没有在文档中找到太多细节来确认它。有人可以详细说明新的目​​标跟踪扩展如何工作,以及如何将其应用于具有 Spot 和 On-Demand 实例的混合设置吗?

问题:

  • 如果我将目标设置为 70% CPU 利用率,它什么时候决定扩大规模,什么时候缩小规模?
  • 如果我有两个 Auto-Scaling 组,一个的 CPU 利用率目标为 70%,另一个为 65%,它什么时候决定扩大或缩小?它会一直倾向于缩小 70% 的群体吗?它总是更喜欢扩大 65% 的群体吗?
  • 如果现货市场的价格突然上涨超过我的出价限制,会发生什么情况。按需自动扩展组会接管吗?
  • 我的理解是否正确,手动定义所需实例的数量只会产生短期影响,并且会由 Auto Scaling 策略自动调整?
  • 例如,如果它在夜间缩小到最小值并在第二天再次放大,是否意味着前一天的初始“所需实例数”设置现在已过时?换句话说,我是否只需要担心为最小值和最大值设置合理的值,而 AWS 会解决剩下的问题吗?
amazon-ec2
  • 1 1 个回答
  • 482 Views

1 个回答

  • Voted
  1. Best Answer
    Shahad
    2019-01-31T15:40:10+08:002019-01-31T15:40:10+08:00
    If I set the target to 70% CPU utilization, when will it decide to scale up and when to scale down?
    

    - AWS 没有确切说明它是如何工作的,但它会为每个目标跟踪策略创建两个 CloudWatch 警报,一个用于扩展,一个用于扩展,您可以检查这些阈值以查看它们何时会被触发

    If I have two Auto-Scaling groups, one with a 70% CPU utilization target and the other with 65%, when will it decide to scale up or down? Will it always prefer to scale down the 70% group? Will it always prefer to scale up the 65% group?
    
    
    What happens if the prices in the Spot market suddenly rise to exceed my bid limit. Will the On-Demand auto-scaling group take over?
    

    - 最终,Spot 实例将被终止,这将导致 On-Demand 实例的负载增加,从而导致它们扩展。

    Is my understanding correct that manually defining the number of desired instances has only a short-term effect and will be automatically adjusted by the Auto Scaling policy?
    

    - 正确,“所需容量”是扩展策略更改以使实例终止或启动的内容

    For example, if it scaled down to the minimum during the night and scaled up again next day, does it mean that the initial "number of desired instances" settings from the previous day are now obsolete? In other words, do I need to worry only about setting reasonable value for minimum and maximum, and will AWS will figure out the rest?
    

    - 正确,最小值和最大值是所需的界限(不能低于最小值或高于最大值)

    您应该研究的一件事是一项新功能,您现在可以在单个 AutoScaling 组中混合 Spot 和 On-Demand。您还可以一次在一个 AutoScaling 组中拥有多个实例类型。因此,理论上您可以选择一组不同的备份实例类型,在任何给定时间使用 2 个最便宜的 Spot 实例,如果这两个实例运行我们的 Spot 容量,则将其他实例用作备用。

    关于此新功能需要注意的两个重要事项:1) 如果您为您选择的任何实例类型选择的任何可用区域中没有现货容量,它不会自动回退到按需。因此,如果您将其设置为 50% 的 Spot 和 50% 的 On-Demand,并且所需的是 10 个,并且没有 Spot 可用性,那么您将只有 5 个 On-Demand 实例。如果您选择了足够多的不同实例类型,我想这不会是一个问题,但谁知道呢。

    2)他们的大多数负载平衡使用循环或类似的方法来分配实例的连接,所以如果有 1 个快速实例和 1 个慢速实例,它们都会收到相同数量的连接,而慢速实例最终会得到越陷越深

    https://aws.amazon.com/blogs/aws/new-ec2-auto-scaling-groups-with-multiple-instance-types-purchase-options/

    • 3

相关问题

  • 权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 管理员如何管理他们的 EC2 EBS 和快照?

  • 云有多大?[关闭]

  • EC2 映像启动

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve