吞吐量,QPS,并发请求数

[本文(吞吐量,QPS,并发请求数)原始地址]http://xcoder.me/2017-08/tuning/吞吐量,TPS(QPS),用户并发量/

吞吐量

系统吞吐量与请求对CPU消耗,外部接口,IO等都有很紧密的关联.单个请求对CPU消耗越高,接收外部请求、IO影响速度越慢。系统吞吐能力越低,反之越高。

系统吞吐量几个重要參数:QPS、并发请求数、响应时间

  • QPS:每秒钟请求数
  • 并发请求数:系统同一时刻处理的请求数
  • 响应时间:系统对请求的平均响应时间
    1
    2
    QPS= 并发请求数/平均响应时间
    并发请求数 = QPS*平均响应时间

一个系统吞吐量通常由QPS、并发数两个因素决定,每套系统这两个值都有一个相对极限值。在应用场景訪问压力下,仅仅要某一项达到系统最高值。系统的吞吐量就上不去了,假设压力继续增大。系统的吞吐量反而会下降。原因是系统超负荷工作,上下文切换、内存等等其他消耗导致系统性能下降。

网站访问量的几个概念

网站流量是指网站的访问量,用来描述访问网站的用户数量以及用户所浏览的网页数量等指标,常用的统计指标包括网站的独立用户数量、总用户数量(含重复访问者)、网页浏览数量、每个用户的页面浏览数量、用户在网站的平均停留时间等。

网站访问量的常用衡量标准:独立访客(UV) 和 综合浏览量(PV),一般以日为单位来衡量和计算。

独立访客(UV):指一定时间范围内相同访客多次访问网站,只计算为1个独立访客。

综合浏览量(PV):指一定时间范围内页面浏览量或点击量,用户每次刷新即被计算一次。

1
2
3
PV的量是跟用户实际访问时间有关的,比如2C的互联网应用,可能是24小时服务用户的,统计每秒的浏览量就应该是PV/(24*60*60)
有的互联网应用只有白天有访问量可能按照11小时或者12小时计算,有的2B的应用可能就是8小时提供用户服务的。
所以具体每秒综合浏览量要根据实际访问时间来确定,而不是固定的24小时,可能是24小时,12小时,11小时,8小时

PV和带宽的关系

计算带宽大小需要关注两个指标:峰值流量和页面的平均大小。

1
2
假设网站的平均日PV:10w的访问量,页面平均大小0.4M.每天24小时都有很多流量。
网站带宽 = 10w /(24 *60 * 60)* 0.4M * 8 =3.7 Mbps

具体的计算公式是:网站带宽=PV/统计时间(换算到S)平均页面大小(单位KB) 8

在实际的网站运行过程中,我们的网站必须要在峰值流量时保持正常的访问,假设,峰值流量是平均流量的5倍,按照这个计算,实际需要的带宽大约在 3.7 Mbps * 5=18.5 Mbps 。

1
2
1. 字节的单位是Byte,而带宽的单位是bit,1Byte=8bit,所以转换为带宽的时候,要乘以 8。
2. 在实际运行中,由于缓存、CDN、白天夜里访问量不同等原因,这个是绝对情况下的算法。比如现在大部分互联网应用的js,css和图片/附件等非结构化数据都存储在云存储上,流量不在网站本身,这种情况不适用上面的公式,需要分别具体分析。

PV和并发连接数的关系

并发连接数=PV/统计时间页面衍生连接次数http响应时间*因数/web服务器数量

PV = 并发连接数 统计时间 web服务器数量/ 页面衍生连接次数 / http响应时间 / 因数

1
2
3
4
5
6
统计时间 : pv统计的总时间,单位秒,要计算24小时的pv就是86400秒,也可能是11小时,8小时,根据实际情况而定
页面衍生连接次数: 一个HTML页面可能会请求好几次http连接,如外部的css, js,图片等,可以估算一下,或者用50,可根据实际情况改变
http响应时间: 可以使用1秒或更少,可根据实际情况改变
因数: 峰值流量和平均流量的倍数,一般使用5(可以考虑2/8原则),最好根据实际情况计算后得出。
web服务器数量: web服务器数量
* “页面衍生连接次数”,”http响应时间”,”因数”这三个参数要根据实际情况分析计算后,确定一个适合的值

QPS,PV,服务器数量

QPS统计方式 [一般使用 http_load 进行统计]

QPS = 总请求数 / ( 进程总数 * 请求时间 )

QPS: 单个进程每秒请求服务器的成功次数

单台服务器每天PV计算

1
2
3
4
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8

服务器数量计算

1
服务器数量 = ( 每天总PV / 单台服务器每天总PV )

峰值QPS和机器计算公式

1
2
3
4
5
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
小英雄雨来 wechat
扫码二维码或搜索"架构演进之旅"订阅微信公众号
enjoy?donate!