应用压力测试与性能评估最佳实践
前提条件
本实践适用企业版V3.12及以上版本。
主要涉及阿里云应用高可用服务AHAS产品的性能测试PTS功能。
背景信息
高可用服务AHAS的提供架构感知、全链路压测、性能压测、流量防护、故障演练、功能开关等高可用能力。零代码改动,一键启用为业务核心场景全面提升稳定性和韧性。
性能测试PTS(Performance Testing Service)是具备强大的分布式压测能力的SaaS压测平台,可模拟海量用户的真实业务场景,全方位验证业务站点的性能、容量和稳定性。
PTS旨在简化性能压测本身的工作。
PTS目标是将性能压测本身的工作持续简化,使您可以将更多的精力回归到关注业务和性能问题本身。在PTS平台上,您可以用较低的人力和资源成本,构造出最接近真实业务场景的复杂交互式流量,快速衡量系统的业务性能状况,为性能问题定位、容量配比、全链路压测的流量构造提供最好的帮助。进而提升用户体验,促进业务发展,最大程度实现企业的商业价值。
应用场景
PTS广泛应用于各种压力测试和性能测试场景,包括但不限于以下场景:
PTS孵化于服务阿里巴巴全生态五年以上的单链路、全链路压测平台,是阿里巴巴内部最佳实践的输出。该平台对内除了支持日常的外部流量压测之外,同时支持了大大小小的促销活动,如天猫双11、双12和年货节等。
实践步骤
压力测试应用准备
应用架构。
Nginx与前端代码部署在一个容器;
负载均衡SLB使用7层协议负载到前端容器NodePort;
Nginx与网关服务使用K8s服务发现,微服务之间使用企业级分布式应用服务EDAS提供服务发现。
应用业务流程。
核心业务流程。
用户登录。
商品列表。
商品购买。
订单生成。
查询订单。
测试环境说明。
场景一:单场景性能压测
测试场景。
测试内容:基于查询订单列表的业务场景进行压力测试,对订单服务进行性能评估;
预期结果:查看平均响应时间、平均吞吐量TPS、成功率,在成功率>=90%且响应时间RT<=1s条件下,记录吞吐量TPS、并发虚拟用户数(VU)、成功率和响应时间RT 。
说明挑选核心业务场景,针对该业务场景限定SLA,使用压测工具阶梯式的增加VU进行压力测试,同时使用监控工具查看该业务场景下全链路的监控数据,综合分析压测结果数据和性能监控数据,获得该核心业务场景的业务承载上限,为后续性能优化和高可用设计提供可靠输入。
测试步骤。
输入阿里云专有云账号密码登录Apsara Uni-manager运营控制台。
在上方导航栏单击产品>监控运维>应用高可用服务 AHAS 2.0 版本,进入AHAS控制台。
在左侧导航栏单击性能压测>创建场景>PTS原生压测,进入PTS原生压测模块,创建压测场景。
设置场景配置,在创建压测页面,单击场景配置,键入压测API的名称,对应用的查看订单列表业务进行压测配置。
设置施压配置,单击施压配置,选择压力模式、递增模式、最大并发、压测总时长等信息。完成后单击保存去压测,查看压测报告。
在左侧导航栏单击性能压测>压测报告>查看报告,查看压测结果。
查看压测数据信息。
单击明细,查看压测明细。压测完成,2000UV压测场景下,查看订单列表的业务场景可以支持。
场景2:全链路压测
测试场景。
测试项:全链路压测 。
测试内容:基于浏览商品>查看商品>立即购买>提交订单的业务场景,在并发设置为500虚拟用户并发压力下进行压力测试。
预期结果:记录平均响应时间、平均吞吐量TPS、成功率。
说明挑选核心全链路业务场景,使用压测工具阶梯式的增加VU进行压力测试,同时使用监控工具查看该业务场景下全链路的监控数据,综合分析压测结果数据和性能监控数据,获得各链路中业务场景承载上限和链路中的瓶颈点,为后续性能优化和服务限流、熔断、热点限流、故障注入设计提供可靠输入。
测试步骤。
输入阿里云专有云账号密码登录Apsara Uni-manager运营控制台。
在上方导航栏单击产品>监控运维>应用高可用服务 AHAS 2.0版本,进入AHAS控制台。
在左侧导航栏单击性能压测>创建场景>PTS原生压测,进入PTS原生压测模块,创建压测场景。
在创建压测页面,单击场景配置,键入压测API的名称,并添加串联链路,对应用的浏览商品>查看商品>立即购买>提交订单的业务链路进行压测配置。
设置施压配置。
单击施压配置,选择压力模式、递增模式、最大并发、压测总时长等信息。完成后单击保存去压测,查看压测报告。
压测结果。
单击性能压测>压测报告>查看报告,查看压测结果。查看压测数据信息。单击明细,查看压测明细。压测完成,500VU全链路压测,浏览商品>查看商品>立即购买>提交订单的业务链场景可以支持。
- 本页导读