一、每秒、每秒查询
每秒:每秒查询意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
二、TPS每秒事务
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
每秒vs TPS:每秒基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“每秒”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”
。三、RT、响应时间
响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。
响应时间RT(响应时间),是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。
四,并发数
并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。
五,吞吐量
系统的吞吐量(承压能力)与请求对CPU的消耗,外部接口,IO等等紧密关联。单个请求对CPU消耗越高,外部系统接口,IO速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:每秒(TPS),并发数,响应时间。
-
<李>每秒(TPS):每秒(查询)每秒钟请求/事务数量李>
<李>并发数:系统同时处理的请求/事务数李>
<李>响应时间:一般取平均响应时间李>
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
-
<李>
<强>每秒(TPS)=并发数/平均响应时间强> 李>
<李>
<强>并发数=每秒*平均响应时间强> 李>
六,实际举例
我们通过一个实例来把上面几个概念串起来理解。按二八定律来看,如果每天80%的访问集中在20%的时间里,这20%时间就叫做峰值时间。
-
<李>公式:(总PV数* 80%)/(每天秒数)* 20%=峰值时间每秒请求数(每秒)李>
<李>机器:峰值时间每秒每秒/单台机器的每秒=需要的机器李>
<强> 1,每天300 w PV的在单台机器上,这台机器需要多少每秒吗? 强>,
(3000000 * 0.8)/(86400 * 0.2)=139(每秒)
<强> 2,如果一台机器的每秒是58岁的需要几台机器来支持? 强>,
七、最佳线程数,每秒,RT
<强> 1,单线程每秒公式:每秒=1000 ms/RT 强>
对同一个系统而言,支持的线程数越多,每秒越高。假设一个RT是80毫秒,则可以很容易的计算出每秒,每秒=1000/80=12.5
多线程场景,如果把服务端的线程数提升到2,那么整个系统的每秒则为2 *(1000/80)=25日可见每秒随着线程的增加而线性增长,那每秒上不去就加线程呗,听起来很有道理,公司也说的通,但是往往现实并非如此。
<强> 2,每秒和RT的真实关系强>
我们想象的每秒,RT关系如下,
单线程或纯cpu多线程
实际的每秒,RT关系如下,
高IO线程
<强> 3,最佳线程数量强>
刚好消耗完服务器的瓶颈资源的临界线程数,公式如下
最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)* cpu数量
特性:
-
<李>在达到最佳线程数的时候,线程数量继续递增,则每秒不变,而响应时间变长,持续递增线程数量,则每秒开始下降。李>
<李>每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。李>
<李>瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数——导致资源的竞争,超过最佳线程数——响应时间递增。李>