一、QPS和所需机器计算公式:
定义:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 。
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。
举例1: 每天300w PV 的在单台机器上,这台机器需要多少QPS? —— ( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)。
举例2: 每天5000w PV 单台机器需要多少QPS?—— 2314
>>> 50000000*0.8/(0.2*24*60*60) 2314.8148148148143
举例3: 每天800w PV 单台机器需要多少QPS?—— 371
8000000/21600.0 370.3703703703704
并发数=QPS*响应时间。
二、指标度量
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
—— QPS(TPS):每秒钟request/事务 数量
—— 并发数: 系统同时处理的request/事务数
—— 响应时间: 一般取平均响应时间
公式:QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间
举例:一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员上登录签到系统的时长为5分钟。可以用下面的方法计算。
QPS = 1000/(30*60) 事务/秒
平均响应时间为 = 5*60 秒
并发数= QPS*平均响应时间 = 1000/(30*60) *(5*60)=166.7
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
三、 系统吞吐量评估
- 日PV (页面浏览量)
- 日流量图和QPS推算日流量
- 找出系统的最高TPS和日PV,这两个要素有相对比较稳定的关系(除了放假、季节性因素影响之外)
- 通过压力测试或者经验预估,得出最高TPS,然后跟进1的关系,计算出系统最高的日吞吐量。
- 系统的日吞吐量= TPS*最高TPS访问时间(h)*3600(一个小时)
- 假设我们压力测试出的TPS为100,每天大约11个小时TPS访问最高。 系统的日吞吐量=100*11*3600=396万