【转】并发用户数以及系统规模的估算

某所高校在对其信息化基础平台的招标筹备工作进行调研时,发现某著名的软件公司所提供的产品类目中门户的并发指标可达到6000,远远超过了同行业的所有竞争对手。因而学校便参考此标准制定了自己的招标参数。最后在进行测试时才发现,要想真正达到标称的效果,单是服务器就需要超过三十台,再配套相关的负载均衡设备、数据库集群等软硬件、机房建设以及相关周边建设,学校的总投资高达数千万。最后该公司不得不承认其指标中的“并发”的概念存在误导,按照学校的真实需求实际达不到此标准,因而也差点落下一个大笑话。
   言者无意,听者有心。对这件事情抱以一笑的同时,也引起了笔者的思索,随着高校信息化建设程度的不断提高,很多学校都从解决“有无问题”逐渐的过渡到如何把信息化平台的各个软件有效的用起来,并且用好的阶段。而要想让全校的师生都愿意来使用信息化平台以真正体现其前期大量投入所应当体现的价值,能稳定的承载合理的、足够的并发是软件所必须具备的一个必要因素之一。
   但在实际工作中,笔者了解到的很多学校,对并发数的理解多多少少都存在一定偏差,甚至谈“并发”色变。实际上,并发数并不是越高越好,笔者现就如何正确的理解并发、合理的评估并发进行一些浅显的分析。

正确理解并发用户数的概念
   “并发用户”作为一个衡量应用系统承载能力的重要指标,直接决定了其能否满足用户日常工作产生的访问需求。而对于并发用户数量,有两种常见的错误观点:一种错误观点是把并发用户数量理解为使用系统的全部用户的数量;另一种观点是把用户在线数量理解为并发用户数量。
   实际上,全部用户一般不会同时在线,而在线用户也不一定会产生并发,例如正在浏览网页的而没有进行其它操作的用户,对服务器是没有任何影响的。
   因此并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。
   然而,我们时常可以见到一些软件提供商宣传自己的系统可以支持数千甚至数万并发,其实是将对并发的错误理解进行了概念的偷换,其采用的指标往往是在线用户数量甚至系统总用户数量。

并发用户数以及系统规模的估算
   首先需要明确一个概念:RPS(Request Per Second),即每秒请求数。由于严格意义上的并发是一种瞬时的状态,不便于进行测试,因此通常情况也将一秒钟内由用户发起的请求数量当作并发请求数量,即RPS。通过RPS,我们可以很方便的正向或者逆向推导一个应用系统的规模。
   例如,使用某厂商在技术参数中宣称的6000并发数来估算其应用系统可以承载的业务规模,我们进行一下推算:
   a)  假设6000并发作为峰值数据,取中位数3000 RPS作为系统平均并发。
   b)  假设该系统每天在工作时间12小时内提供服务。
   在此条件下,每日该系统的访问量为:
   3000每秒*3600秒*12小时 = 1亿2900万
   1亿2900万访问量是一个什么概念呢?中国最大的B2C商城,京东商城(www.jd.com)在alexa国际排名的日均访问量为2亿1700万,而铁道部12306.cn的日均访问量在5500万左右。显而易见,不可能有任何一个厂家在某所单独的学校,使用百万级的经费构建并维护一个如此规模的带业务功能的系统,其声称的并发数量可能只是同时在线的用户数。
   那么如何合理估算应用系统的并发访问量呢?一般来讲,可以结合2:8原则进行计算,即80%的人员在20%的时间进行访问。即在一所1万人左右的学校,每天会有8000人在这一天的5个小时之内访问应用系统(实际使用情况可能因业务不同而有所不同)。
   目前业界较为普遍运用的并发用户计算公式为:
   并发用户=使用系统的人数  平均每人使用系统的时间   访问区间
   即假设每人每天使用该系统10分钟(1/6小时)则有:
   并发用户=8000*(1/6)/5=266
   即一所一万人的学校,在系统被广泛使用(80%的师生每天都使用10分钟以上)的情况下的日常并发量大约为300左右。而以在线用户6000逆向推导该厂商系统的真实负载,则只有约200。

科学合理的解决并发问题
   要想科学合理并且经济有效的解决业务中遇到的并发问题,需要从多个方面入手,而不能盲目的使用单一的解决方案或者生搬硬套某些地方的已有经验。
   其一,完整的梳理业务流程,制定有效便捷的需求方案。进行信息化建设的重要目的就是为了减少人力劳动,降低成本,提高生产效率。因此,在制定应用系统需求时应该首先对现有的业务流程进行归纳和梳理,将规律的,可自动化的流程和相关数据由软件进行处理;将冗余的,不必要的流程进行精修和裁剪,从管理层面上首先降低业务的复杂度,减少流程的长度。
   其二,合理的估计并发量。应该根据业务系统的实际使用场景来估算并发量,不可“拍脑袋决定”。并发估算小了,系统上线后则无法承受使用负荷,并发估算大了,则对资源造成不必要的浪费。
   其三,采用多方位的并发和负载均衡技术。目前市场上有非常多的并发和负载均衡技术解决方案,但实际上由于各个系统业务上的差别,很难有一套“一招鲜,吃遍天”的万能方案。应当根据实际情况,合理运用缓存技术、静态化技术、集群技术以及虚拟化技术来组建应用服务器集群,以取得最好的实际使用效果。

结语
   随着教育的数字化、信息化进程不断发展,校园的信息化平台作为整合数据,聚合业务的核心以及引擎作用将会愈发明显,越来越多的业务以及用户会频繁的,依赖性的使用平台软件以及应用系统来帮助他们完成日常工作。对于我们现在已建的以及未来将要建设的各个系统,一方面需要考虑到大量用户访问所产生的高并发和高负载,另一方面更要注重资源的最大化利用,正确的理解并发、合理的估算并发,让学校的资源每一分都使用到刀刃上,避免不必要的浪费,才能使我们的数字化校园建设迈上健康,成功的步伐。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注