最近和几个朋友, 聊到并发和服务器的压力问题很多朋友, 不知道该怎么去计算并发? 部署多少台服务器才合适? 所以, 今天就来聊一聊 PV 和并发, 还有计算 web 服务器的数量 的等方法这些都是自己的想法加上一些网上的总结, 如有不对, 欢迎拍砖
几个概念
网站流量是指网站的访问量, 用来描述访问网站的用户数量以及用户所浏览的网页数量等指标, 常用的统计指标包括网站的独立用户数量总用户数量 (含重复访问者) 网页浏览数量每个用户的页面浏览数量用户在网站的平均停留时间等
网站访问量的常用衡量标准: 独立访客(UV) 和 综合浏览量(PV), 一般以日为单位来衡量和计算
独立访客(UV): 指一定时间范围内相同访客多次访问网站, 只计算为 1 个独立访客
综合浏览量(PV): 指一定时间范围内页面浏览量或点击量, 用户每次刷新即被计算一次
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
PS:1. 字节的单位是 Byte, 而带宽的单位是 bit,1Byte=8bit, 所以转换为带宽的时候, 要乘以 8
2. 在实际运行中, 由于缓存 CDN 白天夜里访问量不同等原因, 这个是绝对情况下的算法
PV 与并发
具体的计算公式是: 并发连接数 = PV / 统计时间 * 页面衍生连接次数 * http 响应时间 * 因数 / web 服务器数量;
解释:
页面衍生连接次数: 一个页面请求, 会有好几次 http 连接, 如外部的 CSS, js, 图片等, 这个根据实际情况而定
http 响应时间: 平均一个 http 请求的响应时间, 可以使用 1 秒或更少
因数: 峰值流量 和平均流量的倍数, 一般使用 5 , 最好根据实际情况计算后得出
例子:
10PV 的并发连接数: (100000PV / 86400 秒 * 50 个派生连接数 * 1 秒内响应 * 5 倍峰值) / 1 台 Web 服务器 = 289 并发连接数
所以, 如果我们能够测试出单机的并发连接数, 和 日 pv 数, 那么我们同样也能估算出需要 web 的服务器数量
还有一套通过单机 QPS 计算 pv 和 需要的 web 服务器数量的方法, 目前一些公司采用这种计算方法, 但是其实计算的原理都是差不多的
QPSPV 和需要部署机器数量计算公式(转)
术语说明:
QPS = req/sec = 请求数 / 秒
QPS 计算 PV 和机器的方式
QPS 统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
单台服务器每天 PV 计算
公式 1: 每天总 PV = QPS * 3600 * 6
公式 2: 每天总 PV = QPS * 3600 * 8
服务器计算
服务器数量 = ( 每天总 PV / 单台服务器每天总 PV )
峰值 QPS 和机器计算公式
原理: 每天 80% 的访问集中在 20% 的时间里, 这 20% 时间叫做峰值时间
公式:( 总 PV 数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器: 峰值时间每秒 QPS / 单台机器的 QPS = 需要的机器
例子: 每天 300w PV 的在单台机器上, 这台机器需要多少 QPS?
( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
例子: 如果一台机器的 QPS 是 58, 需要几台机器来支持?
139 / 58 = 3
来源: http://www.cnblogs.com/zhangweizhong/p/5772330.html