估算并发用户数的方法资料

上传人:E**** 文档编号:101044277 上传时间:2019-09-26 格式:DOC 页数:8 大小:263KB
返回 下载 相关 举报
估算并发用户数的方法资料_第1页
第1页 / 共8页
估算并发用户数的方法资料_第2页
第2页 / 共8页
估算并发用户数的方法资料_第3页
第3页 / 共8页
估算并发用户数的方法资料_第4页
第4页 / 共8页
估算并发用户数的方法资料_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《估算并发用户数的方法资料》由会员分享,可在线阅读,更多相关《估算并发用户数的方法资料(8页珍藏版)》请在金锄头文库上搜索。

1、估算并发用户数的方法作者:Eric Man Wong一、引言 为了进行容量规划和进行性能方面的管理,正式发布产品之前往往有必要估算系统能够承受的最大并发用户数。因为系统资源的使用直接与并发用户数挂钩。就拿 Web 应用来说,内存的使用,CPU 的利用率,服务器的进程/线程数,数据库连接数和网络带宽占用率都是关于并发用户数的增函数。 尽管知道并发用户数的重要性,我们还是经常通过第六感或者是大胆臆测去估计这个数值,十分缺乏理性。在本文中,我们会尝试去介绍一种简单的方法来得出这个并发用户数的估计值通过某些其他的参数,这个值将会更加易于估算并且更加合理。 二、一种不令人满意的方法 人们时常用的一种估计

2、方法是这样的:假设并发用户数等于全部用户数乘以某个比例。这不是一种好方法,因为就算有时候总的用户数可以可靠的估计出来,然而百分比尽管不能总说是一个不具有说服力的魔力数字。 必须指出的是,刚提到的这个百分比不能视为在某个时间段内登录系统的那部分用户。在某些情况下才能肯定的得出登录系统的用户数。举个例子,如果我们知道每个用户都会在每个月的某一天使用且只使用一次某个系统,那么我们可以理所当然的认为任意一天使用该系统的百分比是大约3.3%(作者注:就是1/30)。(译者注:30 就是提到的“每个月”)。 尽管如此,仅仅依靠这个百分比不能用来推导出并发用户数。因为在同一天使用系统的人并不是同时使用的。有

3、的用户可能在上午使用,有的用户可能在下午使用。 我们接下来看看一种更好的方法。 三、估算平均并发用户数的公式 我们通过定义并发用户数来开始这一节。但是在之前,我们必须搞清楚login session 的含义。 login session 的意思是通过开始和结束时间定义的一段时间。在这段时间内,系统的一个或多个资源被占用。使用任意一个需要用户登录的 Web应用作为例子,login session从用户登录到系统开始,到用户退出系统结束。每次用户的登录都创建了一个用户的 session(作者注:占用了系统的内存)。login session 的时长取决于开始和结束的时间。 我们现在做好定义并发用户

4、数的准备了。我们应该同意某个瞬间的“并发用户数”是这个瞬间的 login session 的个数。在下图中阐明了这个定义: 横轴是时间轴。每一条水平线段代表了一个login session。处垂直的那条线与水平线有三个交点,那么并发用户数是3。 让我们关注时间从起点到随意的某个时间。下面的结论可以利用数学知识证明:(*) 另外,如果从开始到时间 T的范围内 login session 的总数是 n,并且平均的login session 时长是,那么 (* *) 正式的证明过程见附录。直觉上来看,这个公式可以这样来认为:设想每条session 的线条都是首尾相连的。如果这条线的长度超过了,那么我

5、们就把它折叠起来,使得每一段都长度都是T 。折叠的次数就如同平均并发用户数。在下图对此做出了说明: 四、估算其中的参数 为了利用第三节的公式计算平均并发用户数(C),前提条件是在关注的时间段(T)中计算出两个参数: l login session 的总数(n) l login session 的平均时长(L) 在这一节中,我们会给出估算这两个参数的一些建议。 首先,必须指出通过公式得出的 C,仅仅是一个平均值。有可能并发用户数会在这个时间段内起伏很大。因此,如果我们希望利用 C 来作为并发用户数,我们应当限制关注的时间以便新的 login session 的比例(作者注:比如说n/T的比例)能

6、够或多或少的保持稳定。举个例子,如果我们知道系统仅仅在工作时间内使用,我们可以只关注工作时间,而不是一整天。那么 T 就等于 8(作者注:假设 8 小时工作制),而不是 24。否则,C 的值就会大大减少,因为事实上没有人在非工作时间使用系统。 login session 的总数(n)和 login session 的平均时长(L)经常可以由用户总体和使用习惯来确定。举例来说,如果有 N 个潜在用户,并且我们知道每个用户每天可能使用系统一次、两次、三次的概率分别是,并且假设用户每天使用系统不会超过 3 次,那么每天 的 login session 的总数就的总数就是。另一参数平均时长,可以通过观

7、察样本用户来估算。 在许多的系统中,不同的用户对系统的使用频率以及平均使用系统时长波动的范围都很大。在这样的情况下,如果我们将相似的用户分类,上述的分析依然成立。我们可以计算出每一类用户的并发用户数并且将结果整合在一起。 无可争辩的是,用户的使用习惯往往是很难准确预测的。但是对于大多数的系统,尤其是内部的应用,一些这方面的合理的、粗略的数据是可以得到的。下一节的例子会对此做出说明。 五、一个例子 H 市政府准备为了其 170,000 名员工运行一个薪酬系统,员工可以通过此系统查询自己的薪酬信息。由于 IT 技能的差异、电脑的资源有限以及其他种种的原因,预计到系统上线只有 50%的员工会定期使用

8、该系统。这些员工中的70%会在每个月的最后一周使用系统一次。据观测,参与了用户接受度测试的员工们平均使用这个系统的时间是 5 分钟。 现在我们可以来估算一个月的最后一周的并发用户数了。我们限定关注的时间是每一天的工作时间(作者注:朝九晚五)。所以,每个月最后一周系统使用的并发用户数是124。 六、估算并发用户数的高峰值 1、理论 第三节中的公式估算了平均并发用户数。接下来很可能遇到的问题是:怎么预估高峰并发用户的数值?在本节中,我们能够看到在某些假设条件下,该高峰值也是可以估算出来的。 泊松分布是一种现成的并且广泛运用的统计模型,它适用于到达速率随机且独立的分布(作者注:该分布可以参见于大把介

9、绍统计学的书籍)。假设在线用户数满足泊松分布,其中新登录的数量均值是,根据定义: P代表的是概率,e是欧拉数,x!代表x的阶乘。 在此假设下,可以证明在任何时刻的登录成功的用户数都符合泊松分布。最惊异结论的莫过于根本不去理会保持登录的时间时长(作者注:保持登录的时长也是随机的且可以随意长短)。根据上述等式,有: C 是第三节提及的平均并发用户数。(作者注:这部分的证明过于繁琐。本文将其略掉。) 众所周知,泊松分布在均值为 C 的时候可以近似的认为满足均值为 C 且标准差为的正态分布(作者注:再次说明,这些都可以在大把的统计学教材中找到)。(译者注:根据译者惨淡的统计学知识,作者漏了泊松分布要在

10、均值大于20 的时候才近似正态分布,不过例子中在线的平均人数是超过20 的) 。 如果我们令并发用户数为X,那么就意味着满足标准正态分布:均值为 0 且标准差为1。查表可得下面的结论: (注:正态分布表可参考http:/ 通俗的讲,上面的等式意味着并发用户数小于的概率是 99.87%。这个概率对于绝大多数用途都足够大,所以我们估算高峰并发用户数为2、实践 在上一节,我们讲述了新登录的用户数符合泊松分布,高峰并发用户数也是可以估算的。尽管如此,在现实世界里,登陆的用户是按照以下的方式运作的: 1、沉睡状态在非工作时间不登陆; 2、片刻状态(上升)开始工作的时候,人们开始登录系统;在线的数量不断增

11、加; 3、稳定期在线的用户数保持稳定; 4、片刻状态(回落)工作时间结束;人们退出系统;在线的人减少; 这四个状态周而复始。 像上面的这个应用系统,6.1 节的假设只适用于第 3 个状态就是稳定期那个状态。因此,倘若我们要更精确预估高峰并发用户数的话,应该遵循下面的步骤: 1、根据经验来估计稳定期的时间段。 2、估计在稳定期的登录用户数。3、根据第 3 节的公式(* *)计算平均并发用户数 C。 4、运用 6.1 节的公式(* * *)来计算高峰并发用户数。 通过第 5 节的一个例子来说明一下上述的步骤: 接上例,补充条件如下:假设 80%的员工进入这个薪酬系统的时间是上午 9:30 到 12

12、:30 以及下午 2:30 到 4:30 这 5 个小时,尽管一天工作时间是 8小时。并且,在这 5 小时之间登录数保持稳定。T = 分钟5小时=300 n = 11,900 0.8 = 9,520L = 5分钟 读者可能注意到了上面的平均并发用户数和第5 节的有差异,此处的结果更大。实际上两处的都是合理的。这正印证了第4 节说过的,那就是平均并发用户数很大程度上取决于所关注的时间段。在第5 节中,我们关注的时间段是整个工作时间,所以平均值被很少人登录的那段时间所拖累了。在本节中,我们限制了关注高峰的时间段,所以结果更大。尽管两个数据都是合理的,但是后者将更加适用于展现系统的使用情况。 七、根

13、据并发用户数得到其他有用的数据 一旦我们找出了并发用户数,其他的一些系统属性值也可以由它推出。在本节中,我们会讨论如何计算网络带宽占用率。 对于 Web 应用,请求率(作者注:比如说单位时间内的请求数,有时候视为点击率)是另一个进行容量规划的重要因素。如果可以通过样本得到用户的平均数值是 r,那么可以容易得出:式中的C和分别是平均并发用户数和高峰并发用户数。 拿薪酬系统的例子来说,如果平均每个用户每分钟发起 10 个请求,那高峰时平均总的请求率就大概是1590/分钟。(作者注:)。 类似的,如果我们能够确定每位用户的平均网络带宽占用率,总共的网络带宽占用率可以用相同的方法求出。每个用户的单位时

14、间的 bits/bytes 可以由系统通过网络传给用户的数据转换。令平均的占用率是u,则有: 八、总结 在本文中,我们提出了一个公式,利用该公式可以通过系统的登录用户数来计算某段关注的时间的平均并发用户数。另外本文还给出了一些估算这些参数的建议。 在登录用户数符合泊松分布的假设下,我们大致推断出了高峰并发用户数的上限。 文中的那几个公式并非解决找出并发用户数的灵丹妙药。它们仅仅提供了解决此类问题的一个方向。确切的公式更大程度上取决于找到用户登录的时间段以及平均在线时长,这两者又取决于用户习惯。有时候准确预估并发用户数真的是又费马达又费电。然而,我们坚信对于很多的系统来说,有些虽然粗糙但又挺合理

15、的估算在既省时又省力的情况下是可以接受的。附录:关于第 3 节公式(*)的证明 设是 t 时刻的并发用户数。设想从 O 到 T 的这个时间段被平均分成了 n个小段。每一段的时长是并且第 i 段在时间处结束: 当 n 很大的时候,以下对于并发用户数的估算是合理的:我们可以定义并发用户的平均数如同到那样一直延伸到无穷大。这个求和就变成了一个积分。假设在 O 到 T 时刻有 m 个用户登录,分别用1 到 m 对其编号。我们来分别考察第i个用户的登录开始时刻和退出登录的时刻。我们再定义一个函数叫做,它是关于第个登录用户的,定义:根据定义可以作图如下:第 3 节对并发用户数的定义,可以有下面的等式:对其两边从 O 到 T 求积分,其中,显然等于根据上面的那个分布图。简单地说,它等于第 i 个用户的在线时长。 因此,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号