什么是QPS、TPS、RT、吞吐量?

2 篇文章 0 订阅
1 篇文章 0 订阅

什么是QPS、TPS、RT、吞吐量?

​ 疫情之下,陕西、四川等地的健康码、核酸系统都出现了短暂的崩溃,软件开发的高并发再次引起了程序员的一阵讨论。以下截取了阿里工程师tony guo的一篇朋友圈,其中的GPS等高并发指标你知道是什么含义吗?
在这里插入图片描述

1.QPS-每秒查询数

​ QPS:Queries Per Second,意思是“每秒处理请求数”。是用来衡量服务性能的重要指标,解决每秒数万次的高并发场景,在开发过程中这个指标非常关键,程序员可以在开发过程中利用Jmeter等工具测试程序的QPS,联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量,所以程序开发中的QPS是程序员最为看重的一个指标之一。

  • **定义:**对一个特定的查询服务器在规定时间内所处理流量的多少。
  • **计算公式:**QPS=并发量/平均响应时间

QPS是用来衡量服务器的性能,我们是不断的为增加它的数量而优化改进,通过多线程、增加负载、甚至提高代码质量、优化算法等方式。当然,优化的性能是有上限的,我们需要在性能和投入上做出一定的平衡。要对现有的业务状况、未来的发展潜力以及爆发力上做出一些判断,很好的驾驭它是需要花费大量精力的,需要经验和技术能力同时发挥作用,让效率和投入达到最好的产出。

2.TPS-每秒事务数

​ TPS:Transaction Per Second,也就是“每秒事务数”。它是软件测试结果的测量单位,一个事务是一个客户机向服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用时间和完成事务数,最终利用这些信息来估计得分。

​ QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

3.RT-响应时间

​ RT:Return Time,即“响应时间”:执行一个请求从开始到收到响应数据所花费的总时间。RT数值的大小直接反应了系统的快慢,所以是一个非常重要的指标。

4.并发数

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

5.吞吐量

​ 系统的吞吐量(承压能力)与request对CPU的消耗、外部接口、IO等紧密联系。单个request对CPU的消耗越高,外部系统接口、IO速度越慢。系统吞吐能力就越低,反之则越高。依据公式“QPS(TPS)=并发量/平均响应时间”可知,系统吞吐量的重要指标就是QPS(TPS)、并发数、响应时间:

6.实际举例

​ 我们通过一个实例把上面的几个概念串联起来,以便理解。按二八定律来看,如果每天80%的访问集中在20%的时间里,这20%的时间就叫做峰值时间。

  • 公式:(总PV值80%)/(每天秒数20%) = 峰值时间每秒请求数(QPS) 注:PV-page view,即页面浏览量
  • **机器:**峰值时间每秒QPS/单台机器的QPS = 需要的机器

1.每天300w的PV值在单台机器上,这台机器需要多少QPS?依据上面的公式可以得到:

QPS = (3000000 * 0.8) / (24 * 60 * 60 * 0.2) = 139

2.如果一台机器的QPS是58,那么需要几台机器来支持这个PV量?

139 / 58 = 3

7.最佳线程数、QPS、RT的联系

7.1.单线程QPS公式:QPS=1000ms/RT

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

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

7.2.QPS和RT的关系

我们想象的QPS、RT关系如下:

在这里插入图片描述

实际的QPS、RT关系如下:

在这里插入图片描述

7.3.最佳线程数

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

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

特性:

  • 在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。
  • 每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。

特性:

  • 在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。
  • 每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。
  • 瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数-导致资源的竞争,超过最佳线程数-响应时间递增。

案例参考:公众号-程序员追风

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值