由 张月旭创建
一、背景
在做性能测试的时候,传统方式都是用并发虚拟用户数来衡量系统的性能(站在客户端视角),一般适用于一些网页站点比如首页、H5 的压测;而 RPS(Requests per second)模式主要是为了方便直接衡量系统的吞吐能力-TPS(Transaction Per Second, 每秒事务数)而设计的(站在服务端视角),按照被压测端需要达到TPS等量设置相应的RPS,应用场景主要是一些动态的接口API,比如登陆、提交订单等等。
针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到串联链路中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。同样的,如果系统间的吞吐能力差别很大,那么同样的并发下TPS差距也会很大。
因此经过讨论,沪深线上集群压测方案采用RPS模式进行压测。
二、压测模式
压测模式有两种:并发模式(虚拟用户模式)、RPS 模式(Requests Per Second,每秒请求数,吞吐量模式)
并发模式:即虚拟用户模式。如果想要摸底业务系统各节点能同时承载的在线用户数,可以通过该模式,在串联链路(事务)上设置并发用户数。
串联链路内各 API 的并发数,因各自 RT 不同而分配不同的并发数,RT 越小(响应速度越快,即单位时间内处理越快)分配的并发越少。例如,一共 100 个虚拟用户需要操作这个事务(即串联链路,假设共有 3 个 API),API 1 响应速度快而 API 2 响应速度慢,则更多的虚拟用户将等待在 API 2 上,也即 API 2 需要更多的线程资源来处理更多的虚拟用户请求。
并发模式下,需要指定全场景并发量。各串联链路按照需要在量级及数据配置中设置并发百分比。
RPS 模式:Requests Per Second,即吞吐量模式,指每秒发出设置好的固定请求数。API 接口(如电商加购物车、下单等)主要用 TPS(Transaction