预测型伸缩规则是一种新增的伸缩规则类型,可以利用机器学习的能力,通过分析伸缩组监控数据的历史值,预测未来伸缩组的监控指标值,实现智能配置伸缩组边界值的目的。
背景
弹性伸缩组最大值和最小值通常由用户自己设置,如果用户不清楚实际业务运行情况时,会出现不恰当的设置,过高的伸缩组最小值可能会导致计算资源和金钱的浪费,过低的伸缩组最大值可能会导致服务的不稳定。
介绍
预测型伸缩规则通过获取至少24小时的伸缩组历史监控数据,利用机器学习的能力预测未来48小时的伸缩组监控数据值,预测粒度为60分钟。预测监控值经过算法得出伸缩组每小时需要的实例数,称之为预测值。预测结果每天会更新一次,并可生成48个每小时执行的预测任务,预测任务执行后会改变伸缩组的最大值和最小值。
- 预测指标类型:目前支持CPU(单位:百分比),内网流出量和内网流入量(单位:KB/Min)三个指标。
- 目标值:想要达到的伸缩组内实例的监控指标值,影响预测值的计算。
- 预测任务:指定时间执行的定时任务,有最大值和最小值2个属性,其中最小值来源于预测值,即预测伸缩组需要的实例数,最大值会根据用户配置会有不同,在最大值处理方式中会介绍。任务执行后会改变伸缩组的最大值和最小值,可在定时任务列表中查看,执行成功之后会自行删除。
- 预测任务预启动时间(单位:分钟): 预测任务提前执行的时间,可用于预先准备资源。默认值为0,最大值为60。
- 初始最大值:用户定义的伸缩组最大值上限,与最大值处理方式结合使用。默认值为当前伸缩组最大值。
最大值处理方式:当预测值大于初始最大值时,预测值的处理方式分为以下三种:
- 初始最大值覆盖预测值:预测值大于初始最大值时,预测任务的最大值采用初始最大值。此值为默认值。
- 预测值覆盖初始最大值:预测值大于初始最大值时, 预测任务的最大值采用预测值
- 预测值按照比例扩大并覆盖初始最大值:预测值会按照一定比例增加,当新预测值大于初始最大值时,预测任务的最大值采用这个新值。
- 预测值增加比例: 最大值处理方式为预测值按照比例扩大并覆盖初始最大值时生效,默认值为0,最大值为100。
- 预测模式:分为两种模式,预测并伸缩和只预测不伸缩。 预测并伸缩表示伸缩规则会有预测结果产生,并且产生预测任务;只预测不伸缩表示只会有预测结果产生,不会生成具体的预测任务。用户可以通过伸缩规则详情来查看预测结果。默认值为预测并伸缩模式。
控制台使用介绍
用户可以在控制台直接创建预测型伸缩规则,伸缩规则详情可以查看预测结果。
- 创建预测型伸缩规则
- load展示
真实load值和预测load值展示,数据点表示监控值1小时的聚合值。
实例数展示
组内实例数展示,显示伸缩组历史实例数和预测值。
- 预测任务计划展示
用户如果只预测不伸缩,可以在这里查看预测任务计划
- 预测任务示例
预测任务名称有固定格式,PredictiveScaling-伸缩规则名-执行时间。
- 预测任务执行后伸缩活动示例
使用须知
- 需要至少24小时数据的伸缩组监控数据才会有预测结果产生。
- 当修改目标值后,现存预测任务会被清空,新的预测任务会在一小时内生成。
- 预测型伸缩规则会自动的修改伸缩组最大值最小值,可以与目标追踪模式或其他伸缩规则同时使用。
- 当与目标追踪模式一起使用时,推荐设置相同的监控项和目标值,防止因为目标不一致导致出现伸缩组实例数抖动的问题。
- 可以先创建预测模式为只预测不伸缩的伸缩规则,如果预测效果符合预期,再将预测模式改为预测并伸缩。