估算并发用户数的方法.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
估算并发用户数的方法 作者:Eric Man Wong 一、引言 为了进行容量规划和进行性能方面的管理,正式发布产品之前往往有必要估算系统能够承受的最大并发用户数。因为系统资源的使用直接与并发用户数挂钩。就拿 Web 应用来说,内存的使用,CPU 的利用率,服务器的进程/线程数,数据库连接数和网络带宽占用率都是关于并发用户数的增函数。 尽管知道并发用户数的重要性,我们还是经常通过第六感或者是大胆臆测去估计这个数值,十分缺乏理性。在本文中,我们会尝试去介绍一种简单的方法来得出这个并发用户数的估计值——通过某些其他的参数,这个值将会更加易于估算并且更加合理。 二、一种不令人满意的方法 人们时常用的一种估计方法是这样的:假设并发用户数等于全部用户数乘以某个比例。这不是一种好方法,因为就算有时候总的用户数可以可靠的估计出来,然而百分比——尽管不能总说——是一个不具有说服力的魔力数字。 必须指出的是,刚提到的这个百分比不能视为在某个时间段内登录系统的那部分用户。在某些情况下才能肯定的得出登录系统的用户数。举个例子,如果我们知道每个用户都会在每个月的某一天使用且只使用一次某个系统,那么我们可以理所当然的认为任意一天使用该系统的百分比是大约3.3%(作者注:就是1/30)。(译者注:30 就是提到的“每个月”)。 尽管如此,仅仅依靠这个百分比不能用来推导出并发用户数。因为在同一天使用系统的人并不是同时使用的。有的用户可能在上午使用,有的用户可能在下午使用。 我们接下来看看一种更好的方法。 三、估算平均并发用户数的公式 我们通过定义并发用户数来开始这一节。但是在之前,我们必须搞清楚login session 的含义。 login session 的意思是通过开始和结束时间定义的一段时间。在这段时间内,系统的一个或多个资源被占用。使用任意一个需要用户登录的 Web应用作为例子,login session从用户登录到系统开始,到用户退出系统结束。每次用户的登录都创建了一个用户的 session(作者注:占用了系统的内存)。login session 的时长取决于开始和结束的时间。 我们现在做好定义并发用户数的准备了。我们应该同意某个瞬间的“并发用户数”是这个瞬间的 login session 的个数。在下图中阐明了这个定义: 横轴是时间轴。每一条水平线段代表了一个login session。处垂直的那条线与水平线有三个交点,那么并发用户数是3。 让我们关注时间从起点到随意的某个时间。下面的结论可以利用数学知识证明: ……………………………(*) 另外,如果从开始到时间 T的范围内 login session 的总数是 n,并且平均的login session 时长是,那么 ……………………………(* *) 正式的证明过程见附录。直觉上来看,这个公式可以这样来认为:设想每条session 的线条都是首尾相连的。如果这条线的长度超过了,那么我们就把它折叠起来,使得每一段都长度都是T 。折叠的次数就如同平均并发用户数。在下图对此做出了说明: 四、估算其中的参数 为了利用第三节的公式计算平均并发用户数(C),前提条件是在关注的时间段(T)中计算出两个参数: login session 的总数(n) login session 的平均时长(L) 在这一节中,我们会给出估算这两个参数的一些建议。 首先,必须指出通过公式得出的 C,仅仅是一个平均值。有可能并发用户数会在这个时间段内起伏很大。因此,如果我们希望利用 C 来作为并发用户数,我们应当限制关注的时间以便新的 login session 的比例(作者注:比如说n/T的比例)能够或多或少的保持稳定。举个例子,如果我们知道系统仅仅在工作时间内使用,我们可以只关注工作时间,而不是一整天。那么 T 就等于 8(作者注:假设 8 小时工作制),而不是 24。否则,C 的值就会大大减少,因为事实上没有人在非工作时间使用系统。 login session 的总数(n)和 login session 的平均时长(L)经常可以由用户总体和使用习惯来确定。举例来说,如果有 N 个潜在用户,并且我们知道每个用户每天可能使用系统一次、两次、三次的概率分别是,并且假设用户每天使用系统不会超过 3 次,那么每天 的 login session 的总数就的总数就是。另一参数——平均时长,可以通过观察样本用户来估算。 在许多的系统中,不同的用户对系统的使用频率以及平均使用系统时长波动的范围都很大。在这样的情况下,如果我们将相似的用户分类,上述的分析依然成立。我们可以计算出每一类用户的并发用户数并且将结果整合在一起。 无可争辩的是,用户的使用习惯往往是很难准确预测的。

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档