本文介绍如何根据您当前系统的压测需求设置目标虚拟用户或者目标RPS。
背景信息
虚拟用户
指的是现实系统中同时操作业务的用户,在性能测试工具中一般称为虚拟用户(Virtual User)。虚拟用户这个概念一般是从客户侧评估的角度出发,但是不便于服务端的一些容量评估和高可用评估。
虚拟用户与注册用户、在线用户不同。注册用户一般指的是数据库中存在的用户。在线用户只是“挂”在系统上,对服务器不产生压力。但虚拟用户一定会对服务器产生压力。
TPS
Transaction Per Second,每秒事务数,是衡量系统性能的一个重要指标。在PTS中,为了直接评估TPS,也可以采用RPS(Request Per Second,每秒请求数)设置压测流量的大小。RPS模式更适合容量规划和作为限流管控的参考依据。
示例
假如1个虚拟用户在1秒内完成1个事务,那么TPS就是1。要想达到1000 TPS至少需要1000个用户。如果某个业务的响应时间是1毫秒,那么1个用户在1秒内能完成1000个事务,TPS也是1000。
因此,一个用户可以产生1000 TPS,1000个用户也可以产生1000 TPS,主要取决于响应时间的快慢。
设置目标虚拟用户和TPS
评估虚拟用户数
线上系统:
在线上系统的高峰时刻,选取一定周期内使用系统的人数,这些人数可以认为是在线用户数。而虚拟用户数则取在线用户数的10%。例如,在1小时内使用系统的用户数为10000,则建议取1000作为虚拟用户数。
未上线系统或新上线系统:
由于没有历史数据可供参考,因此只能通过业务发展趋势来预判各项指标。
评估TPS(RPS)
线上系统:
已有系统:可选取高峰时刻,在一定时间内(如3分钟~10分钟),获取系统总业务量,计算单位时间(秒)内完成的笔数,乘以2~5倍作为峰值的TPS,例如峰值3分钟内处理订单18万笔,平均TPS是1000,峰值TPS可以是2000~5000。
新系统:没有历史数据作为参考,建议通过业务部门进行评估。
未上线系统或新上线系统:
由于没有历史数据可供参考,因此只能通过业务发展趋势来预判各项指标。