基本概念
网站访问量的常用衡量标准:独立访客(UV) 和 综合浏览量(PV),一般以日为单位来计算。
独立访客(UV):指一定时间范围内相同访客多次访问网站,只计算为1个独立访客。
综合浏览量(PV):指一定时间范围内页面浏览量或点击量,用户每次刷新即被计算一次。
并发用户数:即指同时执行操作的用户(线程数)。
TPS :每秒处理的事务数(如果是数据库,就相当于写入、修改)
IOPS:即每秒磁盘进行的I/O操作次数。
QPS : 一台服务器(单进程)每秒能够相应的查询次数
QPS(每秒请求次数) = 总请求数 / ( 进程总数 * 请求时间 )
单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6 (6小时范围内)
公式2:每天总PV = QPS * 3600 * 8 (8小时范围内)
服务器数量计算
服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )
ceil函数:返回大于或者等于指定表达式的最小整数
峰值QPS和机器计算公式
每台服务器每秒处理请求的数量 = ((80% * 总PV量)/(24小时60分60秒 * 40%)) / 服务器数量
原理: 每天80%的访问集中在40%的时间里,这40%时间叫做峰值时间。(很适合互联网的应用,白天请求多,晚上请求少)。
公式: 峰值时间每秒请求数(QPS) = ( 总PV数 * 80% ) / ( 每天秒数 * 40% )
机器: 需要的机器数量 = 峰值时间每秒QPS / 单台机器的QPS
我们经过压力测试得到结论:
((80%500万)/(24小时60分60秒40%))/1 = 115.7个请求/秒
((80%100万)/(24小时60分60秒40%))/1 = 23.1个请求/秒
- 如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天。
- 如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。
以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。
为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。(留足余量,应对突然事件)
- 如果你的服务器一秒能处理231.4--347.1个请求/秒,就可以应对平均500万PV/每天。
- 如果你的服务器一秒能处理46.2--69.3个请求,就可以应对平均100万PV/每天。
(说明:这里每秒N个请求,就是QPS。因为我关心的是应用程序处理业务的能力。)
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.4 ) = 69 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持?
答:69 / 58 = 2
PV计算带宽
计算带宽大小需要关注两个指标:峰值流量和页面的平均大小。
举个例子:
假设网站的平均日PV:10w 的访问量,页面平均大小0.4 M 。
网站带宽 = 10w / (24 60 * 60) 0.4M * 8 =3.7 Mbps
具体的计算公式: 网站带宽= PV / 统计时间(换算到S)* 平均页面大小(单位KB)* 8
在实际的网站运行过程中,我们的网站必须要在峰值流量时保持正常的访问,为了应对高峰时段,应该留一些余地,假设,峰值流量是平均流量的5倍,按照这个计算,实际需要的带宽大约在 3.7 Mbps * 5=18.5 Mbps
标签:PV,请求,部署,60,服务器,QPS,每秒 From: https://www.cnblogs.com/zhaojinhui/p/16802391.htmlPS:
1、字节的单位是Byte,而带宽的单位是bit,1Byte=8bit,所以转换为带宽的时候,要乘以 8。
2、在实际运行中,由于缓存、CDN、白天夜里访问量不同等原因,这个是绝对情况下的算法。