系统硬件资源测算

  上一篇写到了架构在规划时,应该做哪些?当项目启动后,资源的需求就会提上议程,包括人力资源、项目所需的软件资源、硬件资源以及其他资源。而今天想探讨的是很少被触及的硬件资源。因为硬件资源的规划往往都是经验值的积累,根据之前的项目能很快的提交一版资源清册,然而问其原因大家就只能我看看你,你看看我了。

       我们通常提供的硬件资源清单中,主要包含的就是CPU、内存、存储、网络等基础资源、以及服务器的个数。  

       在探讨硬件资源之前,我们需要知道用户量、项目类型都是影响这些的主要因素。

       一、用户量

       用户量指系统、程序、网站等的用户数量,通常用于衡量其在市场上的曝光和活跃程度。从应用角度来讲,用户量分为注册用户量、活跃用户量、并发用户量。

       注册用户量,指的是软件系统截止到某一时刻所拥有的已注册的用户总量。

       活跃用户量,也称为在线用户量,指的是软件系统在某一时间段所拥有的正在使用此系统的注册用户量。

       并发用户量,指的是在同一时刻与服务器进行了交互的在线用户量。这些用户的最大特徵是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传输数据。并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。

       测算资源的时候通常采用活跃用户量,计算峰值时通常使用的是并发用户量。

       在讨论用户量时,除了要考虑当下的用户量, 同时,也要考虑用户的持续增长率,以便了解系统上线后未来几年的承载情况。 

       目前,假定架构规划中的活跃用户量约为10000人,活跃用户量的活跃增长率为每年10%,后续的计算将以该数字作为计算依据。

       二、业务量

      业务量分析是衡量系统吞吐量和处理能力的基础,业务量是在做业务架构的时候可以预估出来的,依据业务架构推导出来的功能架构会清晰的描绘出用户在每个月,根据业务特点,在什麽时间段业务存在高峰期。根据业务特点可计算出各类业务在这个时间段内发生的比例。

      随着系统不断的完善,在未来的几年中,功能也会不断的增加,我们也能假定业务增长率也是每年10%。

     通常情况下峰值业务量为平均业务量的5倍,计算峰值时需要放大5倍。

      业务量的估算公式是:

     (1)当前业务月发生总量 = 用户当前数量 × 用户月平均访问数

     (2)当前主要业务月发生总量 =当前业务月发生总量× 比例係数

     (3)当前月高峰期N天中主要业务总量 = 当前主要业务月发生总量×N天发生的比例

     (4)当前月高峰期每秒处理量=当前月高峰期N天中主要业务总量 ×M小时发生的比例/N天/ M小时/60分钟/60秒

     (5)当前月峰值业务量 =当前月高峰期每秒钟处理量×5倍

     (6)L年高峰期每分钟处理量=当前月高峰期每秒处理量×用户量增长率×业务量增长率

     (7)L年峰值业务量= L年高峰期每秒钟处理量×5倍

     举个例子:

     如果系统平均每户每月完成相关业务所产生的请求数约为80个,主要业务的比例是70%,高峰期在每周四、周五合计每月8天比例为80%,时间是9点-11点 ,13-17点合计6个小时比例为70%,测算五年后的峰值

     (1)当前业务月发生总量 = 用户当前数量 × 用户月平均访问数 = 10000 * 80 = 800000

     (2)当前主要业务月发生总量 =当前业务月发生总量× 比例係数 = 80000 * 70%  = 560000

     (3)当前月高峰期N天中主要业务总量 = 当前主要业务月发生总量×N天发生的比例 = 560000 * 80% = 44800

     (4)当前月高峰期每秒处理量=当前月高峰期N天中主要业务总量 ×M小时发生的比例/N天/ M小时/60分钟/60秒 =  44800 *70 % /8 / 6 /60 / 60 = 0.18

     (5)当前月峰值业务量 =当前月高峰期每秒钟处理量×5倍 = 0.18 * 5 = 0.9

     (6)5年高峰期每分钟处理量=当前月高峰期每秒处理量×用户量增长率×业务量增长率 = 0.9 * 1.1^4 * 1.1^4 =  1.93 

     (7)5年峰值业务量= L年高峰期每秒钟处理量×5倍 = 1.93 *5 = 9.65 

      三、CPU个数的评估

      行业标准:CPU个数x利用率/输送量=CPU个数x利用率/(交易笔数/秒)=CPU个数x利用率x秒/交易笔数=每笔交易消耗的CPU持续了一秒钟。

      CPU个数 =每笔交易消耗的CPU持续了一秒钟 *(交易笔数/秒)/利用率=每笔交易消耗的CPU持续了一秒钟 *(L年每月峰值业务量 )/利用率

      依照上例:5年峰值业务量= 9.65个,假定每笔交易消耗的CPU持续了一秒钟 = 0.25,CPU利用率为50%

      CPU个数 =每笔交易消耗的CPU持续了一秒钟 *(L年每月峰值业务量)/利用率=0.25 * (9.65) / 50% = 4.825 

      因此,使用5C的CPU即可。

      四、数据库存储的评估

      数据量分析是衡量系统存储系统和备份系统容量的基础。用户每月存储数据量为NKB,业务的年数据增量(GB)=(用户每月存储数据量N×用户数×12)÷(1024×1024)。

      根据上面的数据量计算公式,可以推算出系统上线开始每个月的数据量增长情况,结合用户每年增长比例,可以计算出系统中每年数据量的增长情况,依此类推,可以计算未来3-5年内系统中业务资料的总容量,为系统的基础设施设计提供参考依据。

      依照上例:用户年数据增长率为10%。用户每月存储数据量N =  54K

      业务的年数据增量(GB)=(用户每月存储数据量N×用户数×12)÷(1024×1024)= 54 * 10000 * 12 /(1024*1024)=6.18G

      以此类推:

       磁盘佔用率不高于60% =37.74 / 0.6 = 22.644

     如果是oracle采用Raid10造成了50%的磁盘利用率,因此,磁盘申请不低于22.644*2=45.288G

       四、内存的测算

       方法一:根据标准化设计,将内存容量(单位为G)和CPU的核心的数量的比例按照4:1配置,一个CPU的核心对应4G内存。

                     服务器配置两个5核CPU则建议配置10G内存。

       方法二: 原理介绍:服务器的内存主要包括:操作系统佔用内存、应用系统佔用内存、应用并发网络连接佔用内存等。按照经验,Windows平台内存佔用率不超过55%、Unix(或Linux)平台内存佔用率不超过80%时,不会影响系统的性能。

       计算公式:

       服务器(Windows平台)内存= (操作系统佔用内存+应用佔用内存+应用并发网络连接佔用内存+其他软件佔用内存)/ 55%

       服务器(Unix或Linux平台)内存= (操作系统佔用内存+应用佔用内存+应用并发网路连接佔用内存+其他软件佔用内存)/ 60%(前置条件:操作系统佔用内存+应用佔用内存+应用併发网络连接佔用内存+其他软体佔用内存≤4G)

       服务器(Unix或Linux平台)内存= (操作系统佔用内存+应用佔用内存+应用并发网络连接佔用内存+其他软件佔用内存)/ 80%(前置条件:操作系统佔用内存+应用佔用内存+应用并发网络连接佔用内存+其他软件佔用内存>4G)

      方法二过于复杂,一般采用第一种测算即可,这里不再计算方法二。

      五、网络带宽

      首先普及一下基础,

      一兆带宽= 1Mb/s;

     1Mb=1024Kb=1024*1024bit = 1024*1024 / 8 = 131072 Byte  

     1KB=1024Byte

     1Mb/s = 131072 Byte/s (位字节) =  131072/1024 = 128KB/s

     常说的带宽,其实在每秒下载的字节大小为128KB/s  ,但是这是理论上的速度,实际要扣除12%的信息头标识等各种控制信号,所以1Mb/s =128K*88%= 112.64KB/s:

     稳定的网络使用率大约是70% : 

     因此1Mb/s = 112.64KB/s * 0.7 = 78.848 KB/s。可以把这个值作为一个常量即可。

     并发量 =当前月高峰期每秒钟处理量  

     并发量峰值 =并发量 * 5

     按照每个请求所产生的字节为NKB计算

     带宽 = NKB * 并发量峰值 / 78.848 KB/s

     如有文件下载、传输,另外再叠加带宽。

     OGG数据实时同步带宽,计算方法为高峰期每小时归档日志大小/3600/8(压缩比率)*8(每字节8位)+冗馀带宽。

     依照上面的例子,5年峰值业务量= L年高峰期每秒钟处理量×5倍 = 1.93 *5 = 9.65 

     按照每个请求所产生的字节15KB,所需要的带宽至少为 : 带宽=NKB * 并发量峰值 / 78.848 KB/s = 15 * 9.65/ 78.848 = 1.84Mb/s

     静态资源下载(图片、js脚本、web控制项安装包等等)所需带宽约为 1M。

     总体必需的最小公网带宽为 1.84 + 1 = 2.84。

     如果是大型互联网系统,多运营商也是必要的。

     六、其他因素

     硬件的资源也 会随着用户的要求,发生变化。例如网络安全要求,如果有内外网的需求,处理内外网数据的传递也是需要硬件资源作为支撑的,但是峰值可以作为每一个节点参考的依据。容灾的要求,这样势必需要将单节点扩展为多服务器的备份,而每一个机器都需要保障能独立支撑系统的运转。 当然还有其他因素制约这里就不再赘述了。

     总结:

     硬件资源的测算是需要对系统的架构设计有深层次的理解,同时也需要对使用技术路线的有明确认识,资源虽然可以在系统上线后进行调优,在售前和规划阶段,必要的硬件测算会影响成本的付出,负责任的系统需要对资源做出明确的测算。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352