1。QPS,querypersecondQPS:QueriesPerSecond的意思是“每秒的查询率”,是对应一台服务器每秒的查询次数,是指定时间内特定查询服务器处理的流量多少来衡量的。在Internet上,用作域名系统服务器的机器的性能通常以每秒查询数来衡量。2、TPS,transactionpersecondTPS:是TransactionsPerSecond的缩写,即每秒处理的事务数。它是软件测试结果的度量单位。事务是客户端向服务器发送请求,服务器响应的过程。客户端在发送请求时开始计时,收到服务器的响应后结束计时,从而计算所用时间和完成的事务数。QPSvsTPS:QPS和TPS基本类似,不同的是访问一个页面就形成一个TPS;但是一个页面请求可能会向服务器产生多个请求,服务器可以将这些请求计入“QPS”。比如访问一个页面会请求服务器两次,一次访问会产生一个“T”和两个“Q”。3、RT,ResponseTime响应时间:从开始执行一个请求到收到响应数据结束所花费的总时间,即从客户端发起请求到服务端响应的时间。响应时间RT(Response-time)是一个系统最重要的指标之一,它的值直接反映了系统的快慢。4.并发数并发数是指系统可以同时处理的请求数,它也反映了系统的负载能力。5、吞吐量系统的吞吐量(承压能力)与请求的CPU消耗、对外接口、IO等密切相关。单个请求的CPU消耗越高,外部系统接口和IO速度越慢,系统吞吐量越低,反之亦然。系统吞吐量的几个重要参数:QPS(TPS)、并发数、响应时间。QPS(TPS):(QueryPerSecond)每秒请求/事务数Concurrency:系统同时处理的请求/事务数Responsetime:一般取平均响应时间理解上面的意思后三个要素,可以计算出它们之间的关系:QPS(TPS)=并发数/平均响应时间并发数=QPS*平均响应时间6.实例我们用一个例子来一起理解上面的概念。根据80/20法则,如果每天80%的访问集中在20%的时间,这20%的时间称为高峰时间。公式:(总PV数*80%)/(每天秒数*20%)=高峰时请求每秒(QPS)机器:高峰时QPS每秒/单机QPS=需要机器1台,每天300wOn单机做PV,这台机器需要多少QPS?(3000000*0.8)/(86400*0.2)=139(QPS)2.如果一台机器的QPS是58,需要多少台机器支持?139/58=3七、最佳线程数,QPS,RT1,单线程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的关系如下:QPS与RT的实际关系如下:3、最佳线程数恰好是消耗瓶颈的临界线程数服务器的资源。公式如下:最优线程数=((线程等待时间+线程cpu时间)/线程cpu时间)*cpu数特点:当线程数达到最优数后,线程数继续增加,那么QPS不变,而响应时间变长,线程数不断增加,QPS开始下降。每个系统都有其最佳线程数,但在不同的状态下,最佳线程数会发生变化。瓶颈资源可以是CPU、内存、锁资源和IO资源:超过最佳线程数导致资源竞争,超过最佳线程数——增加响应时间。
