应用压测功能通过对系统的压测,得到一系列的性能指标,从而指导您配置最优的防护规则,实现业务的高可用。本文介绍压测Spring Cloud服务的操作步骤。

前提条件

应用已接入AHAS应用防护,具体操作,请参见接入应用方式

背景信息

应用压测需要满足以下条件才有功能入口:

  • 应用SDK版本是1.8.5及以上。
  • 应用防护为高级防护模式。
  • 非公网环境。

步骤一:创建压测场景

  1. 登录AHAS控制台,然后在页面左上角选择地域
  2. 在控制台左侧导航栏中选择流量防护 > 应用防护
  3. 应用防护页面单击目标应用卡片。
  4. 在应用详情页的左侧导航栏选择接口详情,然后单击WEB服务页签。
  5. 接口详情页面,单击创建场景.png图标。
  6. 压测配置面板中设置场景配置压力配置相关参数。

    场景配置页签相关参数说明如下。

    参数 描述 示例
    场景名称 压测场景名称。 test-springcloud
    服务地址 包括IP和端口。您可以根据应用实际端口进行配置,多个服务地址以英文逗号(,)分隔。
    • 192.168.xx.xx:8080
    • 192.168.xx.xx,192.168.xx.xx:8081
    URI路径 请求路径URL。 /demo
    请求方式 选择请求方式,包括GET、POST、PUT、DELETE。
    说明 GET和DELETE只支持修改URL的Path路径。POST和PUT支持ContentType及参数编写格式。
    POST
    请求头 设置请求头。关于Spring Cloud微服务支持的ContentType类型和参数编写格式,请参见Spring Cloud参考示例 ContentType:application/json
    请求参数 设置请求头参数信息。关于Spring Cloud微服务支持的ContentType类型和参数编写格式,请参见Spring Cloud参考示例
    说明 请求方式为POST和PUT时,需填写请求参数。
    {"name": "cart", "age": 20}
    超时时间(毫秒) 设置超时时间,单位:毫秒。 1000
    打印日志 开启可自动打印日志信息,但会影响到服务压测性能,建议正常压测时关闭。 关闭

    压力配置页签相关参数说明如下。

    参数 描述
    压测模式 TPS吞吐量模式(Transaction Per Second),指系统每秒处理的事务数量。
    流量模型 流量模型包括固定压力、阶梯压力和脉冲压力。
    • 固定压力:以配置的固定并发值TPS进行施压。公测期间最大TPS为1000。
    • 阶梯压力:设置最大值、最小值、递增时长等信息。从最小值开始按照阶梯逐步递增,达到最大值后按照最大值持续施压。
    • 脉冲压力:设置峰值、谷值以及持续时间等信息,施压流量以峰值、峰谷的锯齿波的形式进行施压。
    TPS 设置TPS,上限为1000。
    压测时长(分钟) 指压测总时长,公测期间压测时长3~10分钟。

步骤二:执行压测任务

压测场景创建成功后,可以执行压测任务。

  1. 压测配置面板,单击保存配置并启动压测
    说明 压测环境准备需要等待约1分钟。
  2. 性能概要实时性能数据区域,可以实时查看压测的性能指标。
    性能数据2.png

步骤三:查看压测报告

压测完成后,可以查看压测报告。

  1. 在应用详情页的左侧导航栏选择应用压测,单击目标场景操作列的详情
  2. 性能数据面板,查看压测报告。
    性能数据.png
    说明 实时性能数据统计的是每10秒的所有施压机数据,具体根据压测总时间长度会有所变化。单击图上方的图例,可以显示或隐藏某些数据曲线。
    参数 说明
    总请求数 整个压测过程中,共发起的请求个数。
    平均TPS 压测周期内,所有施压机发出的平均TPS值,TPS=调用总次数/总运行时间。
    平均RT(ms) 所有压力机发出平均响应时间。
    最小RT(ms) 所有压力机中最小的一次响应时间。
    最大RT(ms) 所有压力机中最大的一次响应时间。
    错误请求数 所有压力机中错误请求数之和。
    错误率 所有压力机中的平均错误率。
    TP80(ms) 所有压力机中80分位(P80)的平均值。
    TP95(ms) 所有压力机中95分位(P95)的平均值。
    TP99(ms) 所有压力机中99分位(P99)的平均值。
  3. 性能数据面板,单击下载日志,可获取压测过程中的日志。

步骤四:设置防护规则

您可以根据压测报告的结果,在AHAS的应用防护中设置防护规则。在应用详情页的左侧导航栏,选择规则管理。具体操作,请参见配置流控规则

Spring Cloud参考示例

ContentType 参数编写格式
application/x-www-form-urlencoded [{"name": "cart"},{"age": 20}]
application/json(默认) {"name": "cart", "age": 20}