文档

并发用户、RPS、TPS的解读

更新时间:

本文介绍并发用户、RPS、TPS的基本概念以及三者之间的关系。

术语定义

  • 并发用户:在性能测试工具中,一般称为虚拟用户(Virtual User,简称VU),指的是现实系统中操作业务的用户。

    说明

    并发用户与注册用户、在线用户不同。注册用户一般指的是数据库中存在的用户。在线用户只是“挂”在系统上,对服务器不产生压力。但并发用户一定会对服务器产生压力。

  • TPS:Transaction Per Second,每秒事务数,是衡量系统性能的一个非常重要的指标。

    说明

    系统每秒处理事务数越多证明您的机器性能越好。

  • RPS:Request Per Second,每秒请求数。RPS模式适合用于容量规划和作为限流管控的参考依据。

  • RT:Response Time,响应时间,指的是业务从客户端发起到客户端接收的时间。

在性能测试中,通常有两种施压模式:并发模式和RPS模式。传统方式是使用并发用户数来衡量系统的性能(站在客户端视角)。此方法一般适用于一些网页站点的压测(例如H5页面);而RPS模式主要是为了方便直接衡量系统的吞吐能力TPS而设计的(站在服务端视角),按照被压测端需要达到TPS等量设置相应的RPS,应用场景主要是一些动态的接口API,例如登录、提交订单等等。

VU和TPS换算

公式描述:TPS=VU/RT,(RT单位:秒)。

举例说明:假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1。如果某笔业务响应时间是1 ms,那么1个虚拟用户在1s内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个虚拟用户在1s内只能完成1笔事务,要想达到1000 TPS,就需要1000个虚拟用户。因此可以说1个虚拟用户可以产生1000 TPS,1000个虚拟用户也可以产生1000 TPS,无非是看响应时间快慢。

如何获取VU和TPS

  • VU获取方式:

    已有系统:可选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数,并发用户数可以取10%,例如在半个小时内,使用系统的用户数为10万,那么取10%(即1万)作为并发用户数基本就够了。

    新系统:没有历史数据作参考,建议通过业务部门进行评估。

  • TPS获取方式:

    已有系统:可选取高峰时刻,在一定时间内(如3分钟~10分钟),获取系统总业务量,计算单位时间(秒)内完成的笔数,乘以2~5倍作为峰值的TPS,例如峰值3分钟内处理订单18万笔,平均TPS是1000,峰值TPS可以是2000~5000。

    新系统:没有历史数据作参考,建议通过业务部门进行评估。

如何评价系统的性能

针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到业务会话中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。同样的,如果系统间的吞吐能力差别很大,那么同样的并发下TPS差距也会很大。

性能测试策略

性能测试应遵循标准化流程和有序策略。在负载测试中,传统方式一般都是按照梯度施压的方式逐步增加用户数,避免未预估情况下突增用户导致的高失败率和长响应时间,确保性能符合用户期望;阿里云性能测试PTS,采用TPS加设置起始和目标最大量级的方式,使压测效率更高。

总结

综上所述,可以得出以下结论:

  • 系统的性能由TPS决定,跟并发用户数没有多大关系。

  • 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。

  • 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况对服务器施压。

  • 一般情况下,大型系统(业务量大、机器多)做压力测试,大约需要10000~50000个用户并发;中小型系统做压力测试,大约需要5000个用户并发。

  • 本页导读 (1)
文档反馈