从事Java Web相关项目开发,用户、测评单位以及相关的领导经常询问一些平台性能方面的相关指标,例如:QPS、TPS、吞吐量等等。下面对每个性能指标进行总结,顺便加深理解。
PV,网页浏览量
Page View,网页浏览量。网页被用户调用浏览的次数。网页每次打开或刷新一次页面,记录一次。用户对同一页面的多次访问,访问量累计。
QPS,每秒查询
QPS:Query Per Second,每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS,每秒事务
TPS,Transaction Per Second,事务数/秒,是软件测试结果的测量单位。一个事务是指一个客户端向服务器发送请求,然后服务器做出反应的过程。客户端在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
Tps即每秒处理事务数,包括了
1)用户请求服务器
2)服务器自己的内部处理
3)服务器返回给用户
这三个过程,每秒能够完成N个这三个过程,Tps也就是N;
Qps基本类似于Tps,但是不同的是,对于一个页面的一次访问,形成一个Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。
例如:访问一个页面会请求服务器3次,一次放,产生一个“T”,产生3个“Q”。
RT,响应时间
Response Time,响应时间,执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。
响应时间RT,是一个系统最重要的指标之一,它的数值大小直接反映了系统的快慢。
并发数
并发数是指系统同时能处理的请求数量,这个也是反映了系统的负载能力。
吞吐量
系统的吞吐量与request对CPU的消耗、外部接口、IO等等紧密关联。单个request对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。
1、QPS(TPS):每秒request/事务 数量
2、并发数:系统同时处理的request/事务数
3、响应时间:一般取平均响应时间
可推算出他们之间的关系如下:
QPS(TPS)= 并发数 / 平均响应时间
并发数 = QPS * 平均响应时间
示例
通过实例将几个概念串联起来。按照二八定律来看,如果每天80%的访问集中在20%的时间里,这20%时间就叫做峰值时间。
公式:(总PV数 * 80%) / (每天秒数 * 20%) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器数
1、每天300w PV的在单台机器上,这台机器需要多少QPS?
(3000000 * 0.8)/ (86400 * 0.2) = 139 (QPS)
2、如果一台机器的QPS是58,需要几台机器来支持?
139 / 58 = 3