QPS、PV、UV 等常用术语介绍

本文最后更新于:2021年1月23日 下午

1. 简单介绍

术语意义
QPS每秒查询数
TPS服务器每秒处理的事务数
RPS每秒处理事务率
HPS用户每秒发起的请求率
PV页面浏览量
UV页面访问数
IP独立 IP 数
GMV网站的成交金额
RT响应时间

2. QPS

QPS ( Queries Per Second ) ,每秒查询数,每秒能够成功响应的查询次数。

QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

它代表的是服务器的机器的性能最大吞吐能力。

计算方式:QPS = req/sec = 请求数/秒

2.1 峰值QPS和机器计算公式

原理:假设每天80%的访问都集中在20%的时间里,这20%时间叫做峰值时间

公式:峰值时间每秒请求数(QPS) = ( 总PV数 * 80% ) / ( 每天的秒数 * 20% )

机器:需要的机器 = 峰值时间每秒QPS / 单台机器的QPS

2.2 举例

  • 问:每天300w PV 的在单台机器上,这台机器需要多少QPS ?(每天80%的访问都集中在20%的时间里)

    答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

  • 问:如果一台机器的QPS是58,需要几台机器来支持?

    答:139 / 58 = 3

3. TPS

TPS ( Transactions Per Second ),每秒传输的事物处理个数,即服务器每秒处理的事务数。

TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)

TPS是软件测试结果的测量单位。

一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。

客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。

4. RPS

RPS ( Requests Per Second ),代表吞吐率,等效于QPS。

吞吐率是服务器并发处理能力的量化描述,单位是 reqs/s,指的是某个并发用户数下单位时间内处理的请求数。

某个并发用户数下 单位时间内能处理的最大的请求数 ,称之为 最大吞吐率

RPS 与 QPS 其实可以看作同一个统计方式,只是叫法不同而已。

5. HPS

HPS ( Hits per Second ),每秒点击次数。

是指在一秒钟的时间内用户对Web页面的链接、提交按钮等点击总和。

它一般和TPS成正比关系,是B/S系统中非常重要的性能指标之一。

6. PV

PV ( page view ) ,页面浏览量。

通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。

用户每一次对网站中的每个页面访问均被记录 1 次。用户对同一页面的多次刷新,访问量累计。

7. UV

UV ( Unique Visitor ) ,即页面访问数,

统计 1 天内访问某站点的用户数(以 cookie 为依据),一台电脑终端为一个访客。可以理解成访问某网站的电脑的数量。

网站判断来访电脑的身份是通过来访电脑的 cookies 实现的。

如果更换了 IP 后但不清除 cookies,再访问相同网站,该网站的统计中 UV 数是不变的。

如果用户不保存 cookies 访问、清除了 cookies 或者更换设备访问,计数会加 1。

00:00-24:00 内相同的客户端多次访问只计为 1 个访客。

8. IP

IP ( Internet Protocol ) ,独立 IP 数,本意本是指网络协议,在数据统计这块指通过ip的访问量。即指 1 天内有多少个独立的 IP 浏览了页面。

同一 IP 不管访问了几个页面,独立 IP 数均为 1;不同的 IP 浏览页面,计数会加 1。

IP 是基于用户广域网 IP 地址来区分不同的访问者的,所以,多个用户(多个局域网 IP)在同一个路由器(同一个广域网 IP)内上网,可能被记录为一个独立 IP 访问者。

如果用户不断更换 IP,则有可能被多次统计。

9. GMV

GMV ( Gross Merchandise Volume ) 电商常用术语,主要是指网站的成交金额,而这里的成交金额包括:付款金额和未付款。

只要是订单,不管消费者是否付款、卖家是否发货、是否退货,都可放进 GMV 这个“大箩筐”里。

GMV = 销售额 + 取消订单金额 + 拒收订单金额 + 退货订单金额

GMV常用来研究顾客的购买意向。

10. RT

RT ( Response Time ) 响应时间,是指系统对请求作出响应的时间。

直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。

由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。
所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的最大响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。
  
对于单机的没有并发操作的应用系统而言,人们普遍认为响应时间是一个合理且准确的性能指标。

需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。

对于一个游戏软件来说,响应时间小于100毫秒应该是不错的,响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。

11. 吞吐量

吞吐量 ( Throughput ) 是指系统在单位时间内处理请求的数量。

对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。
  
对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。这是因为处理每个请求需要用到很多资源,由于每个请求的处理过程中有许多不走难以并发执行,这导致在具体的一个时间点,所占资源往往并不多。

也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,如果资源配置合理,每个用户看到的平均响应时间并不随用户数的增加而线性增加。实际上,不同系统的平均响应时间随用户数增加而增长的速度也不大相同,这也是采用 吞吐量来度量并发系统的性能 的主要原因。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。

12. 并发用户数

并发用户数是指系统可以 同时承载的正常使用系统功能的用户的数量

与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。

一网站系统为例,假设用户只有注册后才能使用,但注册用户并不是每时每刻都在使用该网站,因此具体一个时刻只有部分注册用户同时在线,在线用户就在浏览网站时会花很多时间阅读网站上的信息,因而具体一个时刻只有部分在线用户同时向系统发出请求。这样,对于网站系统我们会有三个关于用户数的统计数字:注册用户数、在线用户数和同时发请求用户数。由于注册用户可能长时间不登陆网站,使用注册用户数作为性能指标会造成很大的误差。而在线用户数和同事发请求用户数都可以作为性能指标。相比而言,以在线用户作为性能指标更直观些,而以同时发请求用户数作为性能指标更准确些。

13. 参考链接


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!