引言
PV=page view
TPS:Transactions Per Second
QPS=queries per second
RPS=requests per second
吞吐量: 这个问题从业务上来讲,可以理解为应用系统每秒钟最大能接受的用户访问量。或者每秒钟最大能处理的请求数; 可以是对多台机器的每秒统计。
并发量:系统能同时处理的请求数。
并发:一段时间访问的大量用户的请求
并行:同一时刻的大量用户的请求
PV
PV(Page View):页面访问量,每次用户访问或者刷新页面都会被计算在内。
pv 是指页面被浏览的次数,比如你打开一网页,那么这个网站的pv就算加了一次。
每天页面被浏览一次,pv就加一。
TPS
TPS(Transactions Per Second):每秒事务数,每秒系统能够处理的事务次数。
tps是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加。
TPS与QPS是有区别的
事务表示客户端发起请求到收到服务端最终响应的整个过程,这是一个TPS,
而在这个TPS中,为了处理第一次请求可能会引发后续多次对服务端的访问才能完成这次工作,每次访问都算一个QPS。
所以,一个TPS可能包含多个QPS。
QPS
QPS(Query Per Second):每秒查询数,每秒系统能够处理的查询请求次数。
qps是指每秒内查询次数,比如执行了select操作,相应的qps会增加。
用在页面和接口上,就指每秒内执行次数。
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
峰值QPS和机器计算公式
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
问:每天300w PV 的在单台机器上,这台机器的峰值QPS是多少?
答:( 3000000 * 0.8 ) / (24 * 60 * 60 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持,或者说有几台机器?
答:139 / 58 = 3
QPS 的计算是怎么实现的
参阅地址 https://mp.weixin.qq.com/s/m4HbCbkqZul-o-R5mxdVng
QPS(Queries Per Second),也就是“每秒查询数”,它表示服务器每秒能够处理的请求数量,是一个衡量服务器性能的重要指标。
比如说服务的用户查询 API 支持 100 QPS,就是指这个接口可以做到每秒查 100 次。
比较合理的 QPS 范围:
- 带了数据库的服务一般写性能在 5k 以下,读性能一般在 10k 以下,
- 能到 10k 以上的话,那很可能是在数据库前面加了层缓存。
- 如果你的服务还带了个文本算法模型,那使用了 gpu 的情况下 API 一般支持 100~400QPS 左右,
- 如果是个同时支持文本和图片的模型,也就是所谓的多模态模型,那一般在 100QPS 以内。
- 如果服务单实例 API 读写性能都有上万 QPS, 那大概是个纯 cpu+内存的 API 链路
现在了解完 QPS 了,假设我们想要获得某个函数 的 QPS,该怎么做呢?
这一般分两个情况:
- 实时性要求较低的监控场景。
- 实时性要求较高的服务治理场景。
待补充。。。
RPS
RPS:requests per second 每秒内请求数
RPS=并发数/平均响应时间
参考资料
聊聊QPS/TPS/并发量/系统吞吐量的概念 https://blog.csdn.net/itkampong/article/details/82499633
吞吐量/TPS/QPS/PV/UV之间的关系 https://www.jianshu.com/p/5be1bfa46616
什么是QPS,TPS,吞吐量 https://www.jianshu.com/p/2fff42a9dfcf
什么是qps,如何看qps https://www.jianshu.com/p/b57fb501505c
PV、TPS、QPS是怎么计算出来的? https://www.zhihu.com/question/21556347
知道你的接口“QPS”是多少吗 https://zhuanlan.zhihu.com/p/84012183