文档

基于ALB的单机QPS监控指标实现弹性扩缩容

更新时间:

弹性伸缩的系统报警任务支持基于ALB服务器组的单机QPS监控指标,本文为您介绍基于ALB服务器组的单机QPS监控指标实现弹性伸缩的扩缩容活动。

前提条件

  • 已注册阿里云账号。如果还未注册,请先注册阿里云账号

    说明

    如果您使用RAM用户,您还需要为RAM用户授予ALB的操作或查看等权限。具体操作,请参见为RAM用户授权

  • 已开通ALB服务功能。确保您账号已存在AliyunServiceRoleForAlb服务关联角色,更多信息,请参见ALB服务关联角色

  • 已创建专有网络VPC和交换机。具体操作,请参见创建专有网络和交换机

应用场景

本文适用于对服务器访问量比较敏感的应用场景。例如,您需要通过负载均衡ALB和弹性伸缩相结合的方式高效管理业务的场景,即您的业务需要通过ALB负责统一接收客户请求QPS,然后分发给后端服务器组(例如ECS或ECI)来处理,当用户请求QPS数增加时,需要更多的后端服务器来处理。

基于以上场景,您可以通过为伸缩组配置单机QPS监控报警任务,自动触发弹性扩缩容活动,提高应用的高可用性能,该弹性计算能力具有以下优势:

  • 当单机QPS指标大于监控阈值时,触发弹性扩容活动,降低了单机QPS负载,从而提升系统稳定性。

  • 当单机QPS指标小于监控阈值时,触发弹性缩容活动,从而节省成本。

概念介绍

  • 应用型负载均衡ALB(Application Load Balancer):是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模应用层流量处理能力。更多信息,请参见什么是应用型负载均衡ALB

  • 每秒查询数QPS(Query Per Second):是七层监听特有的概念,指负载均衡ALB每秒可以完成的HTTP(S)的查询(请求)的总数量。单机QPS指单个服务器的性能指标,表示负载均衡ALB每秒完成的客户请求总数量/后端服务器组的ECS或ECI总数量。

  • 性能测试PTS(Performance Testing Service):是一款简单易用,具备强大的分布式压测能力的SaaS压测平台。更多信息,请参见什么是性能测试PTS

步骤一:配置应用型负载均衡ALB

  1. 创建应用型负载均衡ALB。

    具体操作,请参见创建应用型负载均衡

    主要配置参数说明如下:

    配置

    说明

    示例

    实例名称

    输入自定义实例名称。

    alb-qps-instance

    VPC

    选择实例所属的专有网络(VPC)。

    vpc-test****-001

    可用区

    选择可用区和交换机。

    说明

    应用型负载均衡支持多可用区部署,若当前地域支持2个及以上可用区,为保障业务高可用,请至少选择2个或2个以上可用区。

    • 可用区:杭州 可用区G杭州 可用区H

    • 交换机:vsw-test003vsw-test002

  2. 创建应用型负载均衡ALB服务器组。

    具体操作,请参见创建和管理服务器组

    主要配置参数说明如下:

    配置

    说明

    示例

    服务器组名称

    输入自定义服务器组名称。

    alb-qps-servergroup

    VPC

    从VPC下拉列表中选择一个VPC,只有该VPC下的服务器可以加入到该服务器组。

    说明

    该步骤中VPC参数选步骤1中新创建ALB实例时使用的VPC。

    vpc-test****-001

  3. 配置监听。

    1. 在左侧导航栏,选择应用负载均衡ALB>实例

    2. 实例页面,找到已创建的ALB实例(即alb-qps-instance),单击对应操作列下的创建监听

    3. 配置监听配置向导,监听端口选择80,其他参数保持默认选项即可,单击下一步

      说明

      本步骤中监听端口选择以80为例,您可以根据实际业务场景选择其他端口。

    4. 选择服务器组配置向导,选择服务器类型下的后端服务器组为步骤2新创建的服务器组(即alb-qps-servergroup),然后单击下一步后端服务器-zh

    5. 配置审核配置向导,确认配置信息,单击提交,然后单击知道了

  4. 完成配置后,单击实例详情页签,获取ALB实例的弹性公网IP。ALB的IP-zh

步骤二:创建关联ALB服务器组的伸缩组

创建ECS类型的伸缩组与创建ECI类型伸缩组操作存在部分差异,请您以实际页面显示的参数配置为准,本步骤以创建ECI类型的伸缩组为例。

  1. 创建伸缩组。

    具体操作,请参见创建伸缩组。在创建过程中,主要配置项参数说明如下,其他参数请根据实际需要设置。

    配置项

    说明

    示例

    伸缩组名称

    输入自定义伸缩组名称。

    alb-qps-scalinggroup

    伸缩组类型

    指定伸缩组内提供计算能力的实例类型。

    ECI

    组内实例配置信息来源

    弹性伸缩使用该配置创建实例。

    从零开始创建

    组内最小实例数

    当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。

    1

    专有网络

    选择与ALB相同的专有网络(VPC)。

    vpc-test****-001

    选择交换机

    选择与ALB相同的交换机。

    vsw-test003vsw-test002

    关联负载均衡ALB、NLB服务器组

    选择步骤一新创建的ALB服务器组。端口输入80。

    • 服务器组:sgp-****/alb-qps-servergroup

    • 端口:80

  2. 创建并启动伸缩配置。

    具体操作,请参见创建伸缩配置(ECI实例)。在创建过程中,主要配置项参数说明如下,其他参数请根据实际需要设置。

    配置项

    说明

    示例

    容器组配置

    选择容器组的存储空间大小(例如CPU和内存)。

    • CPU:2 vCPU

    • 内存:4 GiB

    容器配置

    选择容器镜像和镜像版本。

    说明

    本步骤以选择nginx镜像为例。

    • 容器镜像:registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx

    • 镜像版本:latest

  3. 启动伸缩组。

    具体操作,请参见启用或停用伸缩组

    说明

    启动伸缩组后,因伸缩组最小实例数为1,伸缩组会自动触发弹性扩容活动,自动创建1台ECI实例。

  4. 访问步骤一中获取的ALB实例的弹性公网IP,确认可以正常访问nginx服务。访问ip

步骤三:配置基于ALB单机QPS指标的报警任务

  1. 登录弹性伸缩控制台

  2. 创建伸缩规则。

    本步骤以创建2条简单规则类型的伸缩规则为例,即伸缩规则(Add1)为增加1台实例的扩容规则,伸缩规则(Reduce1)为减少1台实例的缩容规则。具体操作,请参见配置伸缩规则

  3. 创建报警任务。

    1. 伸缩组管理页面,找到已创建的伸缩组(alb-qps-scalinggroup),单击对应操作列的查看详情

    2. 选择伸缩规则与报警任务>定时/报警任务>报警任务(系统),然后单击创建报警任务

      本步骤以创建2条报警任务为例,即报警认任务(Alarm1)为关联扩容规则(Add1)的报警任务,报警认任务(Alarm2)为关联缩容规则(Reduce1)的报警任务。具体操作,请参见配置报警任务

      • 报警任务(Alarm1):报警指标选择(ALB)服务器组单机QPS,监控指标选择Average(平均值)>100次/s

        说明

        单机QPS=总QPS/后端服务器上的实例数量。

        alarm1
      • 报警任务(Alarm2):报警指标选择(ALB)服务器组单机QPS,监控指标选择Average(平均值)<50次/salarm2-zh1

验证QPS监控效果

  1. 登录PTS控制台

  2. 配置ALB实例IP的压测场景。

    1. 在左侧导航栏,选择性能测试>创建场景,然后单击PTS压测

    2. 场景配置页签中,单击添加压测节点

      说明

      直接单击添加压测节点,系统会默认选择添加HTTP压测节点

    3. 输入压测API名称,然后输入压缩URL。

      本步骤中压测API名称以nginx_api为例,压测URL以步骤一中获取的ALB实例的弹性公网IP为例。

    4. 单击施压配置页签,配置压测模式。

      PTS

      主要配置参数说明如下,其他参数保持默认选项即可。

      配置项

      说明

      示例

      压力模式

      支持并发模式和RPS模式。

      • 并发模式:指虚拟并发用户数。

      • RPS模式:指每秒的请求数。

      RPS模式(Requests Per Second)

      压测总时长

      整个压测持续的时长。

      10分钟

      最大RPS

      在RPS模式下,摸底的是单API接口的服务端吞吐能力,故需要给每个API设置最大RPS与起始RPS。

      500

      起始RPS

      设置单个API的起始RPS。

      500

  3. 单击下方的调试场景,进行场景调试。

    调试成功后,单击关闭

  4. 单击下方的保存去压测,在弹出的对话框,执行周期选择为立即执行,然后单击确定,启动压测

    压测成功后,您可以查看压测报告、采样日志等。

  5. 查看QPS监控指标详情。

    具体操作,请参见查看伸缩组内实例的监控指标监控详情

    从上图可以看出,17:25~17:35时间段,启动了QPS为500的压测任务,伸缩组中初始ECI实例数为1台,在17:30、17:32、17:34以及17:36时间点,关联ALB的伸缩组分别触发扩容了1台ECI实例,随着每次扩容活动的执行,单机QPS数明显减少。您可以通过配置基于ALB服务器组的单机QPS监控指标实现伸缩组的弹性扩缩容。

  • 本页导读 (1)
文档反馈