创业者说:项目需要多少服务器之用户访问模型

时间:2022-05-19 12:35:49 创业资讯 我要投稿
  • 相关推荐

创业者说:项目需要多少服务器之用户访问模型

  创业是一个永恒的话题,本文分享“3N技术创投”董事长兼创始人、常盈网络创始人、一块去旅游网创始人兼CTO梁剑坤先生在创业过程中的技术心得,为《创业者说:我这个项目需要多少台服务器?》的技术干货分享的第2篇,重点讲的是“用户访问模型”问题,供大家参考(技术大牛们可以根据自己的专业能力,选择忽略)。

  我这个项目需要多少台服务器?这是我过去多年经常被问的一个问题,跟着这个问题一起来的,其实还有另外三个问题:1.需要多大硬盘存储容量才够?2.需要占用多少网络带宽?3.当用户不断增多,这个系统以后要怎么扩展?

  硬盘容量的问题上期已经讲过了。这次开始进入核心的主题:到底需要多少台服务器?地球人都知道,需要多少台服务器是和用户数/访问量密切相关的。如果只有很少人访问你的系统,一台服务器肯定是够的(这不是废话吗)。关键的问题是:一台服务器到底能支撑多少用户?

  一、用户访问模型

  在回答这个问题之前,必须先建立“用户访问模型”。同样多的用户数,如果这些用户平均1 个月只来访问1 次,那么实际上服务器没多少压力。但如果这些用户平均每几分钟都来访问1 次,显然要求就不一样了。所以,实际上“一台服务器到底能支撑多少用户”在不同的项目里,答案都是不一样的,因为每个项目的用户访问频率都不同,简单说就是“用户访问模型”不同。

  1、日活用户量

  “用户访问模型”里的第一个变量,通常可以简单表达为“平均每天的活跃用户数”,简称“日活用户数”,意思就是每天来访问你这个系统的平均用户数,到底是多少个。“日活用户数”相同的系统还不能说明其“用户访问模型”就是相同的。不同的系统,用户每天访问的时间区间、时间段长度是不一样的。比如阅读类的应用,可能碎片化分布在除了 睡眠时段的每个小时里;而外卖订餐类的应用,就只有中午、傍晚两个高峰时段加起来可能 不到3‐4 个小时有访客。于是,外卖订餐类的应用,同样的“日活用户数”,在高峰时间对 服务器造成的访问压力可能要大于阅读类的应用,因为用户都挤在一起了。

  2、每天高峰时间段长度

  为了描述用户集中访问的程度,我们通常简单地用“每天高峰时间段长度”来定义。例如,我们可以假设“每天的访问量都集中发生在4 小时内”,或“每天的访问量都集中发生在5分钟内”(现场投票往往就是这样的)。

  3、用户交互次数

  不同的应用,用户的每次访问对系统所造成的压力,其实也是不同的。例如阅读类的应用,用户在打开一篇文章的时候会对系统发出一组访问请求(若干图片文字的组合),然后用户在接下来的若干分钟里,就自己去阅读这篇文章了,阅读期间不会对系统产生任何新的负载(假定这个网页不会自动加载个什么动态广告之类的玩意)。而电商类的应用,可能用户要不停地在不同商品页面之间来回切换比较价格、规格等信息,平均可能浏览几十上百个商品详情页面才会下一张订单。于是,同样1 个用户在线使用相同的时间长度,不同的应用会有不同的“用户交互次数”,我们在“用户访问模型”中定义为“平均每次访问的交互次数”。

  4、平均每次请求响应时间

  同样1 次交互操作,不同的应用可能产生的负载强度也是不同的。还是以阅读为例,一篇文章如果包含10 个图片,打开这篇文章所需要的服务器请求次数可能就是11(文章本身+10 张图片,忽略可能有的其他特效脚本或广告)。而对监测健康状况的应用来说,可能每分钟才 会连接服务器1 次,把过去1 分钟内检测到的呼吸、心跳等信息上传到服务器。我们用“平 均每次交互所需请求次数”来定义这种差异。最后,同样是一次请求,不同的应用对响应时间会有所差异。动作类游戏应用可能要求响应时间在毫秒级,而普通商品查询的应用可以容忍的响应时间则可能在3‐7 秒之间。我们把这 个差异定义为“平均每次请求响应时间”。

  二、服务器并发请求数

  有了上述变量的定义和评估之后,我们可以计算出“服务器并发请求数”:服务器并发请求数=日活跃用户数*平均每次访问的交互次数*平均每次交互所需请求次数/(每天高峰时段小时数*3600)*平均每次请求响应时间(秒)

  计算得到的结果,可以简单地用每1000 个“服务器并发请求数”需要1 台服务器来估算所需服务器的数量。这里的“1000”只是一个很含糊的参考值,实际上这和具体的“程序猿” 写程序的水平很有关系,也和具体部署系统软件的运维“攻城狮”的经验很有关系。如果找Jeikul 来写程序并且实施,这个数字可能可以到3000 以上(吹牛不用负责的吧?);如果找Jeikul为了赶项目工期而勉强招聘的实习生来写程序并且实施的话,这个数字可能只有300(是不是很想吐血?)

  另外,服务器的强劲程度也很有影响,我们总不能要求一台1 万块钱单CPU 传统机械硬盘的服务器跟一台5 万块钱N 多CPU/内存并且装了SSD 硬盘的服务器有相同的表现吧?“1000”这个数字可以简单看作是一台价格大概2 万元左右、双CPU 共8 核(在产型号)、16/32G 内存、10000 转以上机械硬盘配置的普通服务器的表现。

  总结

  上述“用户访问模型”其实只是很抽象的概括,具体到不同的应用其实要引入很多具体不同的变量,既然是创业,必然是定制开发;既然是定制开发,就不可能有统一的公式,必须具 体问题具体分析。

【创业者说:项目需要多少服务器之用户访问模型】相关文章:

创业者需要具备哪些素质04-01

创业者需要什么技能储备10-28

窗帘创业者需要知道什么11-11

创业者最需要解决的创业矛盾10-13

创业者需要具备的十大素质02-22

创业者需要思考10大问题03-17

创业者需要具备的八大精神03-03

关于成功创业者需要具备的10种品质04-01

创业者的这几方面需要准备好12-09

人工智能创业者需要关注的方向是什么10-12