我有 1 个实例。如果 3 分钟内延迟超过 1 秒,则将添加另一个实例。
问题就在这里:50 分钟后(由于扩展冷却时间),第二个实例终止。而且,如果负载仍然很高,延迟会跳回到 1 秒以上。
但由于冷却时间缩减,无法再次添加新的!
是否可以分别设置上升和下降冷却时间?或者有其他建议可以解决这个问题?
减少冷却时间没有帮助,实例只会更频繁地上升和死亡,因此应用程序停机时间仍然很长。
答案1
我认为您最好设置更短的冷却时间,并根据自己的需要调整 Cloudwatch 阈值,使其更敏感或更不敏感。通常,冷却时间应该是允许 Autoscaling 启用(停用)实例并允许 Cloudwatch 根据新容量进行自我填充的最短时间,并允许它更好地做出新的 Autoscaling 决策。对于大多数 Web 应用程序来说,10-15 分钟就足够了。
现在,对于决策,基本的经验法则是:快速扩展,缓慢缩减。您可以根据超过阈值的几个 1 分钟值来扩展,而仅根据每 15 分钟的多个指标来缩减。例如,如果连续 3 个 1 分钟的 CPU 值>50%,则可以配置 50% 以上的容量,如果连续 4 个 15 分钟的 CPU 值<25%,则可以停用单个实例。