TPS、QPS、CPS概念

发布时间 2023-10-16 10:27:46作者: 木乃伊人

一、TPS

       TPS【TransactionPerSecond】,事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,以此来计算使用的时间和完成的事务个数。

二、QPS

       QPS【Queries Per Second】,每秒查询率。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量的衡量标准。

三、CPS

       CPS【Connection Per Second】,每秒新建连接数。定义新建连接的速率,当新建连接的速率超过规格定义的每秒新建连接数时,新建连接请求将被丢弃。

四、RT

       RT【Response-time】,响应时间。执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。该请求可以是任何东西,从内存获取,磁盘IO,复杂的数据库查询或加载完整的网页。    

      暂时忽略传输时间,响应时间是处理时间和等待时间的总和。处理时间是完成请求要求的工作所需的时间,等待时间是请求在被处理之前必须在队列中等待的时间。

      响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。

五、并发数
       并发数【Concurrency】,并发数是指系统同时能处理的请求数量,这个也反应了系统的负载能力。并发意味着可以同时进行多个处理。并发在现代编程中无处不在,网络中有多台计算机同时存在,一台计算机上同时运行着多个应用程序。
      

       

六、吞吐量

       系统的吞吐量(承压能力)和处理对CPU的消耗、外部接口、IO等因素紧密关联。单个处理请求对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。

      系统吞吐量有几个重要指标参数:QPS(TPS)、并发数、响应时间。

      1、QPS(TPS):(Queries Per Second)每秒钟请求/事务数量。

      2、并发数: 系统同时处理的请求/事务数。

      3、响应时间: 一般取平均响应时间。

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

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

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

    

七、最佳线程数

       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关系如下,

             

        实际的QPS、RT关系如下   

        

       最佳线程数量

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

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

       特性:

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

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

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

八、TPS与QPS区别

       TPS即每秒处理事务数,包括以下部分:

       1、用户请求服务器

       2、服务器自己的内部处理

       3、服务器返回给用户

       这三个过程,每秒能够完成N个这3个过程,TPS也就是N。

       QPS类似TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS。但是一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可记入QPS中。

      例如:访问一个页面会请求服务器3次,一次访问,产生一个"T",产生三个“Q”。

九、QPS计算公式

       每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

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

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

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

       问:每天300w PV的在单台机器上,这台机器需要多少QPS?

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

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

       答:139 / 58 = 3

十、系统吞吐量

       一个系统的吞吐量(承压能力)与request对 CPU的消耗、外部接口、IO 等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之月高。

      系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间

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

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

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

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

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