性能指标详解

01#QPS,每秒查询

QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。(每秒钟处理完的请求次数,注意这里是处理完)

02#TPS,每秒事务

TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

03#RT,响应时间

TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

04#并发数

并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。

05#吞吐量

系统的吞吐量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个request 对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。

QPS(TPS):(Query Per Second)每秒钟request/事务 数量

并发数:系统同时处理的request/事务数

响应时间:一般取平均响应时间

理解了上面三个要素的意义之后,就能推算出它们之间的关系:

QPS(TPS)= 并发数/平均响应时间

并发数 = QPS*平均响应时间

06#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

07#最佳线程数、QPS、RT

(1)、单线程QPS公式:QPS=1000ms/RT

对同一个系统而言,支持的线程数越多,QPS越高。假设一个RT是80ms,则可以很容易的计算出QPS,QPS = 1000/80 = 12.5

多线程场景,如果把服务端的线程数提升到2,那么整个系统的QPS则为 2*(1000/80) = 25, 可见QPS随着线程的增加而线性增长,那QPS上不去就加线程呗,听起来很有道理,公司也说的通,但是往往现实并非如此。

(2)、QPS和RT的真实关系

我们想象的QPS、RT关系是随着RT的逐渐增大,QPS逐渐降低的凹曲线

实际的QPS、RT关系是随着RT的逐渐增大,QPS逐渐降低的凸曲线

(3)、最佳线程数量

刚好消耗完服务器的瓶颈资源的临界线程数,公式如下

最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)* cpu数量

特性:

在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。

每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。

瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数-导致资源的竞争,超过最佳线程数-响应时间递增。

互联网的数据术语

01# VV

来访次数/访问次数(VV):VV = VisitView(访问次数):记录所有访客1天内访问了多少次你的网站,相同的访客有可能多次访问您的网站。从访客来到您网站到最终关闭网站的所有页面离开,计为1次访问。若访客连续30分钟没有新开和刷新页面,或者访客关闭了浏览器,则被计算为本次访问结束。那么上图A就是从搜索词“宫外孕有什么症状”进入网站的访问次数329.

02# UV

UV (unique visitor )即独立访客数,指访问某个站点或点击某个网页的不同 IP  地址的人数。在同一天内,UV  只记录第一次进入网站的具有独立IP  的访问者,在同一天内再次访问该网站则不计数。UV 提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。

03# PV

 PV 即页面浏览量或点击量,是衡量一个网站或网页用户访问量。具体的说,PV 值就是所有访问者在 24 小时(0 点到 24 点)内看了某个网站多少个页面或某个网页多少次。PV 是指页面刷新的次数,每一次页面刷新,就算做一次 PV 流量。度量方法就是从浏览器发出一个对网络服务器的请求(Request),网络服务器接到这个请求后,会将该请求对应的一个网页(Page)发送给浏览器,从而产生了一个 PV。那么在这里只要是这个请求发送给了浏览器,无论这个页面是否完全打开(下载完成),那么都是应当计为 1 个 PV。

04# IP

独立IP数:1天(00:00-24:00)之内,访问网站的不重复IP数。一天内相同IP地址多次访问网站只被计算1次。同一IP无论访问了几个页面,独立IP数均为1访问次数,

性能测试影响因素

01#响应时间

响应时间:对请求作出相应所需要的时间

网络传输时间:N1+N2+N3+N4

应用服务器处理时间:A1+A3

数据库服务器处理时间:A2

响应时间:N1+N2+N3+N4+A1+A3+A2

02#并发用户数的计算公式

系统用户数:系统额定的用户数量

同时在线用户数:在一定时间范围内,最大的同时在线用户数量

平均并发用户数的计算:C = nl/T

其中,C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session)的平均时间,T是考察时间长度(一天内多长时间用户使用系统)

并发用户数峰值计算:C^约等于C+3*√C

其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论

03#吞吐量计算公式

当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=VU*R/T

其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T代表性能测试所用的时间

04#性能计数器

资源利用率:指系统各种资源的使用情况,如CPU占用率为68%,内存占用率55%,一般使用“资源实际使用/总的资源可用量,形成资源利用率

性能计数器是描述服务器或操作系统性能的一些数据指标

05#思考时间的计算公式

Think Time,从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔,而在做性能测试的时候,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。

在吞吐量这个公式中,(F=VU*R/T)说明吞吐量F是VU数量、每个用户发出的请求数R和时间T的函数,而其中的R又可以用时间T和用户思考时间TS来计算:R=T/TS