专注于快乐的事情

如何预估系统容量?

背景

随着业务的快速成长,日访问量越来越高,除了对功能要求很高以外,对性能要求也越来越高。
那问题也来了,怎么知道机器够不够用?如果不够,需要多少台满足要求?
或者运营需要在双11做个促销,服务器能抗住么?如果扛不住,需要加多少台?网络带宽够不够用?
这些都是系统容量预估需要回答的问题。

怎么进行预估?

可以遵循如下步骤

预估网站流量(PV)

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

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

PV: 一定时间范围内页面浏览量或点击量,用户每次刷新即被计算一次
UV:指一定时间范围内相同访客多次访问网站,只计算为1个独立访客

预估平均QPS

什么是TPS?

Tps即每秒处理事务数,包括了
用户请求服务器/服务器自己的内部处理/服务器返回给用户.
这三个过程,每秒能够完成N个这三个过程,Tps也就是3;

什么QPS

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

QPS = req/sec = 请求数/秒

计算平均QPS

总请求数 = 总PV * 页面衍生连接数

平均QPS = 总请求数 / 总时间

比如:页面1小时内的总访问量是30w pv,衍生连接数为30 ,那么平均QPS的计算如下:

平均QPS = (30w * 30) /(60*60) = 2500

预估峰值QPS

一般情况,峰值QPS大概是均值QPS的3-5倍,日均QPS为1000,于是评估出峰值QPS为1000*5 = 5000
具体情况需要业务来定。

计算服务器的极限QPS

通过压力测试,算出服务器的单机极限QPS。一般的压力测试软件都能得到这个值。考虑到寿命和性能,单机线上允许跑到QPS为(极限QPS*0.8)

计算需要的机器

需要的机器 = 峰值QPS / 单机极限 QPS
假设峰值QPS是5000,单机极限QPS是1000,线上部署了3台服务器。
理论需要5台。通个水平扩展,需要再加上2台可以满足要求。

##怎么计算带宽?

网站带宽= (PV / 统计时间(单位S))*平均页面大小(单位KB)* 8

字节的单位是Byte,而带宽的单位是bit,1Byte=8bit,所以转换为带宽的时候,要乘以 8

假设网站的平均日PV:10w 的访问量,页面平均大小0.4 M 。
网站带宽 = (10w / (24 * 60 * 60))* 0.4M * 8 =3.7 Mbps

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

通过压力测试QPS,得到网站支持的pv

`平均QPS = (总PV * 页面衍生连接数) / 总时间

一台机器
`每天总PV = (2000 24 60 * 60)/30 = 57.6万

评论系统未开启,无法评论!