【问题标题】:AWS initial instance drains when auto-scaling自动扩展时 AWS 初始实例耗尽
【发布时间】:2020-11-07 02:03:04
【问题描述】:

我正在尝试配置 AWS 自动缩放设置(这是我第一次尝试)。到目前为止,我已经创建了一个警报来添加一个新实例

  • CPU 使用率超过 25%
  • 期间 1
  • 1 个数据点中的 1 个

然后我编写了一个 JMeter 脚本来为机器生成一个负载。当负载高时,警报会进入in-Alarm状态(大约CPU使用率约为60%,内存约为50%)。 我的问题是,

在第二个实例正常运行之前,我的两个实例都开始耗尽。如果 CPU 使用率为 100% 或内存为 100%,我预计会出现这样的情况。当我停止 Jmeter 脚本时,两个实例都会在几分钟内恢复正常。

然后如果我再次执行相同的加载(当两个实例都启动时),系统将平稳运行,甚至会添加第三个实例。

我的问题是,当 CPU 使用率不是 100% 时,工作实例耗尽的原因是什么?

有什么想法吗?

【问题讨论】:

  • 报警时间是多长?
  • “我的两个实例都开始耗尽”和“正在耗尽工作实例”是什么意思?另外,您说“两个实例都会变得健康”——您是说某些实例变得不健康?随时编辑您的问题以澄清细节。
  • @JohnRotenstein 我的意思是,我开始加载时有一个实例。然后我希望 AWS 添加多个实例。但是当第二个实例添加时,第一个实例将耗尽,第二个实例也将耗尽。基本上,应用程序已关闭,无法处理任何请求。
  • @hephalump 周期时间为 1 分钟,我们为新实例设置了 300 秒的时间间隔以保持健康。
  • 为什么实例“耗尽”?是因为 Auto Scaling 想要缩减并删除实例吗?我仍然不明白“当第二个实例添加时……第二个实例也在耗尽”是什么意思。您所说的“排水”是什么意思?

标签: amazon-web-services amazon-cloudwatch autoscaling


【解决方案1】:

AutoScaling Group 将在活动历史记录中向您显示它决定终止实例的原因(如果您仍在使用旧控制台,则必须按“终止”消息左侧的下拉箭头)。

我假设当您说它耗尽时,您的意思是 AutoScaling 正在从负载均衡器中注销它,并准备终止它。我假设正在发生的事情是实例未通过 ELB 运行状况检查,ASG 看到它,然后将实例标记为不正常并终止它。如果您有一个 Application Load Balancer,当您查看目标组的“实例”选项卡时,如果您将鼠标悬停在实例旁边的 (i) 上,它通常会显示运行状况检查失败的原因

一般来说,ASG 终止实例的唯一原因是:

  1. 手动更改或报警比例导致期望值下降
  2. 运行状况检查失败(EC2 或 ELB,如果在 ASG 上启用了 ELB 运行状况检查)
  3. 某种管理任务,例如 AZ 重新调整

【讨论】:

  • 感谢您的反馈。由于我对此很陌生,因此对正在发生的事情没有清晰的认识。将检查并更新您。
  • 原因是健康检查。 5s的时间间隔是不够的。谢谢!!
猜你喜欢
  • 2020-08-23
  • 2020-05-12
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
相关资源
最近更新 更多