术业有专攻,每一个职业或行业都会有其专业的地方,包括系统架构师。作为一名专业的系统架构师,掌握专业的术语及其背后的含义,是极其必要的,是专业的体现,也是基本的素养。
系统容量指系统所能承受的最大访问量,而系统容量预估则是在峰值流量到达之前系统架构师所给出的若干技术指标值。常用的技术指标值有: QPS、 PV、 UV、并发量、带宽、 CPU使用率、内存硬盘占用率等。系统容量预估是架构师必备的技能之一。
QPS, Query Per Second,每秒查询量。在分布式系统中 QPS 的定义是, 单个进程每秒请求服务器的成功次数。QPS 一般可以通过压力测试工具测得,例如 LoadRunner、Apache JMeter、NeoLoad、 http_load 等。
QPS = 总请求数 / 进程总数 / 请求时间 = 总请求数 / ( 进程总数 * 请求时间 )
Unique Visitor, 独立访客数量,指一定时间范围内站点访问所来自的 IP 数量。同一 IP 多次访问站点只计算一次。 一般以 24 小时计算。
Page View, 页面访问量, 指一定时间范围内打开或刷新页面的次数。一般以 24 小时计算。
平均带宽的计算公式为:
平均带宽 = 总流量数(bit) / 产生这些流量的时长(秒)=(PV * 页面平均大小 * 8) / 统计时间(秒)
公式中的 8 指的是将 Byte 转换为 bit,即 8b/B,因为带宽的单位是 bps(比特率),即bit per second,每秒二进制位数,而容量单位一般使用 Byte。
假设某站点的日均 PV 是 10w,页面平均大小 0.4 M,那么其平均带宽需求是:
平均带宽 = (10w * 0.4M * 8) / (60 * 60 * 24) = 3.7 Mbps
以上计算的仅仅是平均带宽,我们在进行容量预估时需要的是峰值带宽,即必须要保证站点在峰值流量时能够正常运转。 假设,峰值流量是平均流量的5倍, 这个5倍称为峰值因子。 按照这个计算,实际需要的带宽大约在 3.7 Mbps * 5=18.5 Mbps 。
带宽需求 = 平均带宽 * 峰值因子
并发量,也称为并发连接数,一般是指单台服务器每秒处理的连接数。平均并发连接数的计算公式是:
平均并发连接数 = (站点 PV * 页面平均衍生连接数) / (统计时间 * web 服务器数量)
页面平均衍生连接数是指,一个页面请求所产生的 http 连接数量,如对静态资源的 css、 js、 images 等的请求数量。 这个值需要根据实际情况而定。
例如,一个由5台web主机构成的集群,其日均PV是50w,每个页面平均30个衍生连接,则其平均并发连接数为:
平均并发量 = (50w * 30) / (60 * 60 * 24 * 5) = 35
若峰值因子为 6,则峰值并发量为:
峰值并发量 = 平均并发量 * 峰值因子 = 35 * 6 = 210
根据往年同期活动获得的日均 PV、并发量、页面衍生连接数,及公司业务扩展所带来的流量增长率,就可以计算出服务器预估值。注意,今年的页面衍生连接数与往年的可能不一样。
服务器预估值 = 站点每秒处理的总连接数 / 单机并发连接数 = (PV * 页面衍生连接数*(1 + 增涨率) ) / 统计时间 /单机并发连接数
注:统计时间,即 PV 的统计时间,一般为一天
掌握常用术语及系统架构参考的指标,是系统架构师必备的技能和基本素养。