自动扩展时 AWS 初始实例耗尽

AWS initial instance drains when auto-scaling

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

时添加一个新实例

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

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

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

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

有什么想法吗?

AutoScaling Group 将在 Activity 历史记录中向您展示它决定终止实例的原因(如果您仍在使用旧控制台,则必须按 'terminate' 消息).

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

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

  1. 警报中的手动更改或标度导致预期下降
  2. 健康检查失败(如果 ASG 上启用了 ELB 健康检查,则为 EC2 或 ELB)
  3. AZ 重新平衡等某种管理任务