qps tps 并发相关随记

之前网上查询相关问题,一直都是比较零碎,再次整理一下,方面自己日后翻阅回忆,也欢迎各位留言拍砖
【tps】 Transactions Per Second,意思是每秒事务数,
一个请求事务是指一个客户端向服务器发送请求然后服务端做出回应的过程。客户端在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
一般请求事物包含三个部分:

  1. 用户发起请求
  2. 服务器收到请求,并且处理请求,(比如查询数据库,查询redis等业务处理过程)
  3. 服务器返回结果和用户
    以上三步操纵被认为是一次请求事物。
    如果每秒能完成N个 这种事物,则被认为 tps=N

[qps] Queries Per Second,意思是每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器(比如是读写分离的架构,就是读的服务器)在规定时间内所处理流量的衡量标准.

两者基本区别

如果对一个页面请求一次,形成一个tps,但一次页面请求,可能产生多次对服务器的请求(页面上有很多资源,比如图片等),服务器对这些请求,就可计入“qps”之中;
但是,如今的项目基本上都是前后端分离的,性能也分为前端性能和后端性能,通常默认是后端性能,即服务端性能,也就是对服务端接口做压


如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps
基本计算方法:
QPS = req/sec = 请求数/秒
如果只有一个CPU,处理1个sql是10ms那么1秒就处理100个sql ,QPS<=100
如果一个sql是100ms,这就只能每秒处理10sql了。
【峰值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
【并发用户数和QPS】
并发用户数和QPS两个概念没有直接关系,但是如果要说QPS时,一定需要指明是多少并发用户数下的QPS,否则豪无意义,因为单用户数的40QPS和20并发用户数下的40QPS是两个不同的概念。前者说明该应用可以在一秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40个请求,当QPS相同时,越大的并发用户数,代表了网站并发处理能力越好。

而当并发数设置的过大时,每秒钟都会有很多请求需要处理,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求等待时间也会变大,甚至超过用户的心理底线。所以在最小并发数和最大并发数之间,一定有一个最合适的并发数值,在并发数下,QPS能够达到最大。但是,这个并发并非是一个最佳的并发,因为当QPS到达最大时的并发,可能已经造成用户的等待时间变得超过了其最优值,所以对于一个系统,其最佳的并发数,一定需要结合QPS,用户的等待时间来综合确定。

图片.png

部分内容来源于:
https://www.cnblogs.com/e-cat/p/10615424.html

你可能感兴趣的:(qps tps 并发相关随记)