Azure自动缩放场景下如何实现扩容vCPU按设定时长自动缩容
Azure Autoscale 原生支持双向扩缩容,缩容规则和扩容规则在同一个配置入口,没有独立的缩容功能模块,所以你单独搜缩容文档很难找到对应内容。针对你需要「扩容后保留资源指定时长再自动缩容」的需求,直接按以下方式配置即可:
核心配置方法
你可以根据自身流量规律选择两种配置模式,都能满足定时长保持后缩容的要求:
模式1:指标触发型(适配流量波动不完全固定的场景)
这种模式下系统会先按指标触发扩容,之后保持你设定的时长,只有低负载状态持续满设定时长才会触发缩容:
- 先配置扩容规则:比如设置平均vCPU利用率超过70%、持续5分钟时,每次增加指定数量的实例,扩容冷却时间设为5分钟即可,避免短时间内重复扩容。
- 再配置缩容规则,这部分是实现定时长保持的核心:
- 在自动缩放规则页新建规则,将操作类型从默认的「增加实例数」改为「减少实例数」
- 触发阈值设为你的低负载判定标准,比如平均vCPU利用率低于30%
- 将规则的**持续时间(Duration)**参数设置为你需要保留扩容资源的预定时长,比如需要扩容后至少保持2小时再判断是否缩容,就把该值设为
02:00:00,时间聚合粒度选择「平均」 - 缩容操作每次减少1-2个实例即可,不要一次缩到最小实例数,同时把缩容冷却时间设为10-15分钟,避免流量短暂波动导致刚缩容又触发扩容的抖动问题。
模式2:固定计划型(适配高低峰时段完全固定的学习管理系统场景)
如果你的业务高峰时段是固定的(比如工作日早8点到晚10点是访问高峰,其余时段访问量低),用计划配置更稳定,不需要依赖指标判断:
- 在Autoscale配置页新建多个配置文件(Profile)
- 高峰配置文件:设置指定的生效时间周期(比如每周一至周日8:00-22:00),配置对应高峰的最小、最大、默认实例数
- 低峰配置文件:设置其余生效时段,配置更低的实例数规格
- 配置生效后,到了配置文件的切换时间点,系统会自动完成扩容/缩容操作,高峰时段结束后会自动缩到低峰配置的资源规格。
配置避坑提示
- 缩容阈值和扩容阈值不要设置得太接近,至少保留30%以上的差值,比如扩容阈值70%,缩容阈值设到30%-40%即可,避免出现扩缩容死循环。
- 缩容的持续时间不要设置过短,低于15分钟很容易因为流量临时回落触发不必要的缩容,影响业务可用性。
- 不管你用的是App Service Plan、虚拟机规模集(VMSS)还是AKS集群,Autoscale的这套扩缩容配置逻辑完全通用,vCPU利用率是所有计算类资源都支持的默认监控指标。
- 配置完成后可以在自动缩放的「运行历史记录」板块查看所有扩缩容操作的触发时间、触发原因,方便你后续调整阈值和时长参数。
内容的提问来源于stack exchange,提问作者codewith_VR
相关产品推荐
相关产品推荐

