在业务负载有显著的波峰波谷时,为了不造成资源浪费,您可以开启水平自动扩缩容功能。开启后,服务会自动调整实例数量,实现动态管理线上服务的计算资源,从而保障业务平稳运行的同时提高资源利用率。本文为您介绍如何管理水平自动扩缩容功能及扩缩容功能的伸缩策略说明。
背景信息
管理水平自动扩缩容功能支持两种方式(方式一:通过控制台管理水平自动扩缩容功能和方式二:通过本地客户端管理水平自动扩缩容功能)。开启水平自动扩缩容功能后,服务如何自动计算目标实例数请参见扩缩容功能的伸缩策略说明。
方式一:通过控制台管理水平自动扩缩容功能
开启水平自动扩缩容功能
- 登录PAI控制台。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 您可以使用以下任意一种方式,打开自动弹性扩缩容设置对话框。
- 方式一:
- 按照下图操作指引,进入服务详情页签。
- 切换到自动伸缩页签,在弹性伸缩区域,单击开启弹性伸缩。
- 按照下图操作指引,进入服务详情页签。
- 方式二:按照下图操作指引,打开自动弹性扩缩容设置对话框。
- 方式一:
- 在自动弹性扩缩容设置对话框,配置参数。
参数 描述 最小实例数 自动弹性扩缩容的下界,支持设置的下限大于0。 最大实例数 自动弹性扩缩容的上界,支持设置的上限为300。 单实例QPS伸缩阈值 当单实例的平均QPS大于该值时会触发扩容。 CPU利用率阈值 当单实例的平均CPU使用率大于该值时会触发扩容。 - 单击开启。
更新水平自动扩缩容配置信息
- 您可以使用以下任意一种方式,打开自动弹性扩缩容设置对话框。
- 方式一:在自动伸缩页签的弹性伸缩区域,单击更新。
- 方式二:按照下图操作指引,打开自动弹性扩缩容设置对话框。
- 在自动弹性扩缩容设置对话框,修改最小实例数、最大实例数、单实例的QPS伸缩阈值或CPU利用率阈值的配置信息。
- 单击更新。
关闭水平自动扩缩容功能
- 在自动伸缩页签的弹性伸缩区域,单击关闭弹性伸缩。
- 在确定关闭弹性伸缩对话框,单击确定。
方式二:通过本地客户端管理水平自动扩缩容功能
开启或更新水平自动扩缩容功能
创建服务之后,默认不开启Autoscaling(水平自动扩缩容)功能。您可以登录eascmd客户端后使用autoscale子命令开启Autoscaling功能。如何登录eascmd客户端,请参见下载并认证客户端。开启和更新Autoscaling功能策略方式相同,均支持使用以下两种方式:
- 参数形式(推荐)
- 命令格式
eascmd autoscale [region]/[service_name] -D[attr_name]=[attr_value]
- 使用示例
eascmd autoscale cn-shanghai/test_hpa -Dmin=2 -Dmax=5 -Dstrategies.qps=10
- 命令格式
- 配置形式
- 命令格式
eascmd autoscale [region]/[service_name] -s [desc_json]
Autoscaling功能通过配置desc_json来控制伸缩策略,desc_json参数配置示例如下。{ "min": 2, "max": 5, "strategies": { "qps": 10 } }
参数 描述 min 最小实例个数,min需要大于0。 说明 即使按伸缩指标计算后所需的实例数小于min,服务实例也不会小于min值。max 最大实例个数,max最大值为300。 说明 即便按伸缩指标计算后所需的实例数多于max,服务实例也不会多于max值。strategies 根据业务使用场景,您可以选择qps、cpu定义伸缩策略: - qps:单实例的QPS伸缩阈值,当单实例的平均QPS大于该值时会触发扩容。
- cpu:单实例的CPU使用率阈值,取值范围(0,100),当单实例的平均CPU使用率大于该值时会触发扩容。
- 使用示例
eascmd autoscale cn-shanghai/test_hpa -s scaler.json
- 命令格式
关闭水平自动扩缩容功能
- 命令格式
eascmd autoscale rm [region]/[service_name]
- 使用示例
eascmd autoscale rm cn-shanghai/test_hpa
扩缩容功能的伸缩策略说明
- 自动伸缩过程中目标实例个数的计算公式
desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]
- 参数说明
- desiredReplicas:目标实例个数。
- currentReplicas:当前实例个数。
- currentMetricValue:当前的伸缩指标均值。
- desiredMetricValue:期望的伸缩指标的均值。
- 使用示例
以QPS伸缩为例,您部署服务时压测或预估单实例能够承载的QPS量为10,将单实例的QPS伸缩阈值(strategies.qps)设置为10。当每个实例平均QPS量增加至23时,实例个数为2。根据公式计算目标实例个数为5:
ceil[2 * (23/10)] = 5
。若单实例承载的QPS量下降至10,即每个实例平均QPS量为2。根据公式计算目标实例个数为1:
ceil[5 * (2/10)] =1
。此时实例个数会逐步缩容至1,缩容过程相对平滑一些,避免因请求波动引起异常缩容。