云端服务器配置计算模型及参考指标

  • A+

一.问题的提出

日常工作中,业务端会反馈给后端一个在线用户数/活跃用户数,要求做架构规划时,需要用多少台服务器,这个问题如何下手?同样,要部署一个WEB应用类或数据库类,具体要用什么样的服务器和带宽,我们是凭感觉进行,还是有根据的规划?下面就学习《运维架构实践》过程中的知识点进行总结。

二.衡量业务量的指标是什么?

常见WEB类应用中的PV、UV、IP,比较贴近业务的指标就是大家通常所说的业务用户数。但这个用户数比较笼统,其实和真实访问量有较大的差距,为了更贴近实际业务量及压力,又可以将用户数指标分成活跃用户数、在线用户数以及并发用户数。

1.PV

按天,一般指B/S架构中的WEB类业务一天内页面的访问次数,每打开或刷新一次页面,就算作一个PV。

2.UV

按天,一般指B/S架构中的WEB类业务一天内访问站点的用户数(以COOKIE为依据)。

3.IP

按天,指B/S架构中WEB类业务一天内有多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。

4.用户数

一般指业务系统的注册用户。

活跃用户数是指注册用户数中,一天中实际使用了业务系统的用户数量,跟UV的概念一样。

在线用户数是指一天活跃用户数中,用户同时在一定时间段内在线的数量。

并发用户数是指在线用户数基础上,某一时刻同时向服务器发送请求的用户数。

三.业务访问量与性能压力指标的转换

在做架构规划设计、容量规划和成本预算时,解决问题的关键是要把业务量的数据指标转换成技术人员熟悉的性能压力指标。

1.未上线业务量和性能压力的转换原理

如果业务还处于前期需求规划期间,业务量和性能压力的转换原理如下图:

云端服务器配置计算模型及参考指标

在B/S架构的WEB类应用实践中,常见的做法是把PV转换成每秒请求数,或者把用户数最终转换成每秒请求数。通常一般的做法都是将其转换成自己所熟悉的PV指标。

2.上线业务量和性能压力的转换原理

业务系统已上线,业务量和性能压力转换原理如下图:

云端服务器配置计算模型及参考指标

如果未来业务量增加,要做容量规划和成本估算,可以直接根据对应的业务指标将当前系统性能状态指标关联起来。常见的做法是使用简单的四则运算,比如,100万用户量,当前用了10台服务器,业务高峰期资源使用率是50%。如果变成200万用户量,至少要再加10台服务器。当然,在实际应用中,用户量增加对系统的压力可能不是呈线性级关系,而是指数级的关系,所以这个估算只是在做容量规划、成本预算规划时的主要参考值。最终需要看实际业务情况,同时还要结合监控看资源的具体使用时的性能情况。

通过以上对业务数据指标的转换可以看出,在做架构设计时,核心目的是前期在做规划的时候,能够看到未来规模及容量大概在要一个范围区间,所以采用对应的估算也是尽量保障规划设计尽可能接近真实情况,但这并不是绝对指标,只是参考值。

四.性能指标转换计算模型实践

首先我们提出一个实际问题:“一个500万PV的网站,大概要用多少台服务器?”

这个问题如何解决?

1.PV业务访问对系统产生的请求压力

首先要弄明白500万PV的业务访问到底会对系统产生多大的请求压力。

500万PV,即一天24小时中访问了业务页面500万次,如果用(500万÷24小时÷60分钟÷60秒)即可得出每秒页面的请求数,用这个结果表示对系统产生的请求压力值,那么得到的结果和实际情况将会有很大的偏差。

因为实际的业务访问过程,比如,凌晨等业务低峰期,基本上没有多少业务访问量。

在实践中可以发现,一天中的80%业务请求量主要发生在40%的时间内,这成为我们计算PV值对应请求压力的重要依据。

24小时的40%是9.6小时,即80%的请求发生一天的9.6个小时当中。

PV请求量计算模型如下:

每秒处理请求的数量=(80%×总PV量)/(24小时×60分×60秒×40%)

这样,上面500万PV请求对应的计算结果为:

(80%×500万)/(24小时×60分×60秒×40%)=115.7个请求/秒

服务器一秒能处理115.7个请求,就可以每天承受500万PV的业务量。

2.真实业务场景下低谷和高峰的考虑

其次,在真实的业务场景下,有低谷也有高峰,这里主要考虑高峰的情况,假如一天中高峰期的请求量是平时请求的两倍或3倍(电商类高峰期波动会更大),示例如下:

115.7个请求/秒×2倍=231.4个请求/秒

115.7个请求/秒×3倍=347.1个请求/秒

如果服务器在一秒内能处理231.4~347.1个请求/秒,那么就能应对500万PV的业务请求量。

五.不同业务指转换计算模型

1.下载类

PV量=IP量/活跃用户量×(2~5倍)

2.音频类

PV量=IP量/活跃用户量×(5~10倍)

3.电商类、论坛类、资讯类

PV量=IP量/活跃用户量×(10~30倍)

计算模型参考:

用户数×业务因子(10%~30%)=活跃用户数

活跃用户数×业务因子(10%~30%)=在线用户数

在线用户数×业务因子(10%~30%)=并发用户数≈每秒请求数

六.PV量和服务器配置性能对应表

PV(万) 服务器配置列表
1 1核/1G/1台
10 2核/4G/1台
50 4核/8G/1台
100 8核/16G/1台
500 8核/16G/10台
1000 8核/16G/20台

七.服务器CPU/内存配置模型

服务器中的资源主要包括CPU、内存、存储、网卡,最为核心的是CPU和内存的配置。

实践中,最为常见的服务器配置都存在一个规律,即CPU与内存资源配比一般都是1﹕1、1﹕2、1﹕4、1﹕8,这是服务器配置中的标配。

1.CPU与内存资源配比1﹕1

这个主要适用于个人网站、官网等小型网站部署,一般在低配机器中,如1核1GB、2核2GB。

2.CPU与内存资源配比1﹕2

1﹕2的处理器与内存配比可以获得最优计算资源性价比,不管是线下IDC的物理服务器,还是云端ECS服务器的配置,1﹕2均为黄金比例。

比如,1核2GB、2核4GB、4核8GB、8核16GB、16核32GB,这些都是实践中的黄金比例配置。

1﹕2配比适用于绝大部分业务场景,尤其是需要消耗高资源的计算。这个配置特别适合游戏类应用,如端游、页游、手游等。当前在电商类高并发、秒杀活动类应用中使用也特别广泛。

8核16GB是云上服务器黄金比例配置中的最佳实践。

Tomcat适用于中低配:2核4GB、4核8GB,特别是4核8GB是最优选择。

3.CPU与内存资源配比1﹕4

1﹕4的配比,比如,2核8GB、4核16GB、8核32GB。这类配比的配置偏向内存,特别适合部署数据库类应用。

比如,当RDS满足不了业务需求,需要自行在ECS上搭建的时候,8核32GB是保障数据库具有良好性能的经典配置。

4.CPU与内存资源配比1﹕8

处理器与内存资源配比为1﹕8,比如2核16GB、4核32GB、8核64GB,这类高内存资源占比。尤其适用于数据库类中的内存型应用,比如,Redis、Memcache的部署。

八.云端带宽配置选型

1.带宽配置估算模型

带宽计算模型:

带宽配置=每秒请求数量×每次请求传输的数据量

=(80%×总PV量)/(24小时×60分×60秒×40%)× X Mbps/s

2.带宽类型选择的8/2原则

80%的应用默认选择按量带宽,即按量带宽是云端带宽类型选择的最佳实践。

20%的应用选择固定带宽。这个特定的条件就是,如若每天按量下载的量合计费用超过带宽平均每天费用,则使用固定带宽。

moonrong
  • 版权声明:本站原创文章,于2020年9月25日13:55:34,由 发表,共 2968 字。
  • 版权声明: 本文由于2020年9月25日13:55:34 发表在 好派笔记,共 2968 字。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: