应用压测功能通过对系统的压测,得到一系列的性能指标,从而指导您配置最优的防护规则,实现业务的高可用。本文介绍压测Spring Cloud服务的操作步骤。
前提条件
应用已接入AHAS应用防护,具体操作,请参见接入应用方式。
背景信息
应用压测需要满足以下条件才有功能入口:
- 应用SDK版本是1.8.5及以上。
- 应用防护为高级防护模式。
- 非公网环境。
步骤一:创建压测场景
- 登录AHAS控制台,然后在页面左上角选择地域。
- 在控制台左侧导航栏中选择 。
- 在应用防护页面的应用卡片页签单击目标应用卡片。
在应用详情页的左侧导航栏选择接口详情,然后单击Web服务页签。
在接口详情页面,单击
图标。
在压测配置面板中设置场景配置和压力配置相关参数。
场景配置页签相关参数说明如下。
参数
描述
示例
场景名称
压测场景名称。
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分钟。
- 在性能概要和实时性能数据区域,可以实时查看压测的性能指标。
步骤三:查看压测报告
压测完成后,可以查看压测报告。
- 在应用详情页的左侧导航栏选择应用压测,单击目标场景操作列的详情。
- 在性能数据面板,查看压测报告。说明 实时性能数据统计的是每10秒的所有施压机数据,具体根据压测总时间长度会有所变化。单击图上方的图例,可以显示或隐藏某些数据曲线。
参数 说明 总请求数 整个压测过程中,共发起的请求个数。 平均TPS 压测周期内,所有施压机发出的平均TPS值,TPS=调用总次数/总运行时间。 平均RT(ms) 所有压力机发出平均响应时间。 最小RT(ms) 所有压力机中最小的一次响应时间。 最大RT(ms) 所有压力机中最大的一次响应时间。 错误请求数 所有压力机中错误请求数之和。 错误率 所有压力机中的平均错误率。 TP80(ms) 所有压力机中80分位(P80)的平均值。 TP95(ms) 所有压力机中95分位(P95)的平均值。 TP99(ms) 所有压力机中99分位(P99)的平均值。 - 在性能数据面板,单击下载日志,可获取压测过程中的日志。
步骤四:设置防护规则
您可以根据压测报告的结果,在AHAS的应用防护中设置防护规则。在应用详情页的左侧导航栏,选择规则管理。具体操作,请参见配置流控规则。
Spring Cloud参考示例
ContentType | 参数编写格式 |
application/x-www-form-urlencoded | [{"name": "cart"},{"age": 20}] |
application/json(默认) | {"name": "cart", "age": 20} |