一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标


一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标

文章插图
 
在很多阿里双11高并发场景经常提到QPS、TPS、RT、吞吐量等指标,这些高并发高性能指标都是什么含义?如何来计算?下面我一一详解@mikechen
系统吞度量
一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标

文章插图
 
系统吞吐量指的是系统在单位时间内可处理的事务的数量,是用于衡量系统性能的重要指标 。
例如在网络领域,某网络的系统吞吐量指的是单位时间内通过该网络成功传递的消息包数量 。
举一个生活中的例子,一说就懂,比如:成都双流国际机场年旅客吞吐量达4011.7万人次,这里的系统单位时间就是年,完成的数量这里就是飞行人数 。
上面谈到的是机场的吞吐量,而系统吞吐量指的是系统(比如服务器)在单位时间内可处理的事务的数量,是一个评估系统承受力的重要指标 。
系统吞吐量有几个重要指标参数:
  • QPS
  • TPS
  • 响应时间
  • 并发数
下面我分别一一详解 。
QPS
一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标

文章插图
 
QPS(Queries Per Second):大家最熟知的就是QPS,这里我就不多说了,简要意思就是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 。
TPS
一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标

文章插图
 
TPS(Transactions Per Second):意思是每秒钟系统能够处理的交易或事务的数量,它是衡量系统处理能力的重要指标 。
具体事务的定义都是人为的,可以一个接口、多个接口、一个业务流程等等 。
举一个例子,比如在web性能测试中,一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数 。
以单接口定义为事务为例,每个事务包括了如下3个过程:
a.向服务器发请求
b.服务器自己的内部处理(包含应用服务器、数据库服务器等)
c.服务器返回结果给客户端 。
总结,在web性能测试中一个事务表示“从用户发送请求->web server接受到请求,进行处理-> web server向DB获取数据->生成用户的object(页面),返回给用户”的过程 。
怎么计算TPS的呢?
举一个最简单的例子,如果每秒能够完成100次上面这三个过程,那TPS就是100 。
一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量 。
比如大家熟知的阿里双11,‍一秒峰值完成58.3万笔订单,这样就量化了系统处理高并发的重要指标 。
一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标

文章插图
 
QPS与TPS的区别上面分别谈完了QPS与TPS,我们再来看看两者有什么区别呢?
假如对于一个页面的一次访问算一个TPS,但一次页面请求,可能产生N次对服务器的请求,服务器对这些请求,就可计入QPS之中,即QPS=N*TPS 。
又假如对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么TPS=QPS 。
RT响应时间
一文详解吞吐量、QPS、TPS、并发数等高并发大流量指标

文章插图
 
RT(Response-time)响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间 。
该请求可以是任何东西,从内存获取,磁盘IO,复杂的数据库查询或加载完整的网页 。


推荐阅读