TPS 与 QPS

TPS 与 QPS,第1张

TPS (Transaction per second),每秒事务数。计算公式:TPS = 事务的数量 / 执行总时间。

例如:10秒内执行了2个事务,那么TPS = 2 / 10 = 0.2 ,那么每个事务的响应时间就为5s。

QPS(Queries per second),每秒查询数。计算公式:QPS = 每日的访问量 / 每日 = 当日请求总数 / (60s * 60min * 24h )

日PV = QPS *(60s * 60min * 24h ) = QPS * 86400

如果我们要根据一个固定的日活跃PV数,一台机器有固定的QPS值,来计算所需要的服务器数量的话,需要知道下面两个计算概念:

峰值QPS = 每天的总PV数 * 0.8 / 86400 * 0.2      ——      这个含义为每天80%的访问量集中在20%的时间里。

服务器数量 = 峰值QPS / 单台机器的QPS

假设有5000000的日PV,那么峰值QPS = 5000000 * 0.8 / 86400 * 0.2 = 231

假设一台机器的固定QPS为40,那么就需要231/40 = 6(个)服务器。

(对 TPS 和 QPS 的初步了解,欢迎各位读者补充和指正)

业务系统往往会被问到一些资源的问题,需要多少机器,机器足不足以支撑当前的业务增长等,这些都是系统容量的一些估算问题。

容量设计需要考虑的维度: 业务规划 + 架构复杂度 + 组件模块 + 高可用 + 安全 + 存储复杂度

容量指标:单机QPS,峰值,平均值,用户数、并发、稳定性

有多少数据量,数据维度有哪些,服务业务有哪些,数据增长预想如何等

这里我们只是谈谈简单的业务通过单节点处理的情况(当然接入网关的处理能力又取决于后端的服务集群的处理能力这里先忽略)

8小时总访问量:1万用户 * 10%的常驻访问率 * 15秒上报周期(每分钟访问4次,每天按照8小时计算)得出日访问量 200万 ~2000万 QPS : 200~2000万 / 8 * 60 * 60 ≈ 100 ~ 700 QPS

并发数 = QPS * 平均响应时间,假设平均响应时间=100ms,那么100~700 * 0.1 ≈ 10 ~ 70

并发数 =(200~2000万/ 8 / 3600)* 影响因子(一般为3)来进行估算并发量。≈ 200~ 2000

最终得出结论,1万量车每15秒上报一次数据。只需要支持 100左右并发处理能力即可了。

如果单节点服务器的QPS是1000,那么一台机器就能满足 1万台车的数据上报。

常见的容量评估包括数据量、并发量、带宽、CPU/MEM/DISK等,

以并发量为例,通过五个步骤,解答业务的疑虑。

对于一个运营活动的访问量评估,或者一个系统上线后PV的评估,问业务部门获得。 例如一个推送活动:计划10分钟,推送1000w用户,10%的消息点击率 那么系统的访问量:1000w * 10% = 100w。10分钟会有100w的访问。

总量除以总时间,如果按照天评估,白天12小时大概4w秒 100w / 30*60 ≈ 600QPS 说明系统需要支持至少 600QPS的访问能力持续10分钟。

需要根据业务访问趋势图预估,可能非常大,暂定为2.5倍

600 * 2.5 = 1500QPS

假设我们的单节点访问能力优化到 1000QPS (tomcat压测单机只能抗住1200的QPS 不能打满打八折 QPS1000)

五个确认步骤

这里我们讨论个场景问题:如果有如下需求,我们应该如何满足业务 一、100万用户秒杀10个商品 二、1秒杀支持1000笔交易

所以从技术角度上系统应该如何做好限流、并发安全、资源弹性。就能初步的评估需要多少资源能满足业务了。 那么我们再来分析下上面两个业务需求。 提取下关键信息:100万用户、库存10个商品、业务时间要求1秒。 我们可以得出两个维度的信息

显然第二个是不太合适的。因为缺少单位时间的业务量,只有用户数。所以如果想要完成评估,单位时间的业务要求才是基础考虑要素。 一个简单的方案:网关层满足限流能力,支持10QPS的处理能力,那么需要增加一台机器即可。剩下的100万用户都访问拒绝,缓冲队列只支持10个用户进入。

如有不对欢迎指正,感谢阅读。

计算公式:

100W个用户,95%均为日活设备即95W

950000 0.8/(3 60 60)=70/s

.70 5=350 即活跃设备数在每秒为350个

100万个设备,日活占12.5%,用2/8原则来估算并发用户数,即80%的用户数会在高峰期点餐,一共5个小时

平均并发用户数C=125000 5 0.8/5 60=1666

并发用户数峰值C`=1666+3 根号 1666=1788

1)平均并发用户数为 C = nL/T

2)并发用户数峰值 C‘ = C + 3*根号C

C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度

C’是并发用户数峰值

QPS和并发量

QPS(q) :每秒处理的请求数量 并发量 (c):同时支持多少个用户在线。与服务器的请求处理模型有关,如果是BIO模型,则并发量就受限于最大能支持多少个线程,如果是NIO模型,则并发量与socket连接数相关 平均响应时间(t):单位为毫秒

他们之间的关系是 q = (1000/t)* c

单台机器的QPS为1000QPS,并发为200

QPS达到1000已经可以满足大多数中型公司,几百万用户数的需求。一般来说,QPS只要能够达到500的,就可以被认为是高并发了。

QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

与QPS相对的是TPS,即TransactionsPerSecond的缩写,就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

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


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/651990.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-23
下一篇2023-07-23

发表评论

登录后才能评论

评论列表(0条)

    保存