什么是估算Web应用程序峰值带宽需求最准确的方法?

5
我正在为客户提案工作,他们需要升级网络基础设施以支持托管ASP.NET应用程序。本质上,我需要估计已知用户数量(目前为250)的系统的峰值使用率。一个简单的答案,比如“你需要一个专用的T1线路”,可能就足够了,但我想有数据来支持它。 另一个问题提到了NetLimiter,看起来很适合了解正在使用的内容。
我的一般想法是启动Web应用程序,并像我预期客户将要使用它那样,以一定的时间跨度悠闲地使用系统,然后将带宽使用量乘以用户数量并除以时间。
这似乎不太科学。这可能对于提案来说已经足够了,但我想看看是否有更好的方法。
我知道有负载工具可用于测试Web应用程序性能,但似乎这些工具不能准确模拟带宽测试的峰值用户负载(一次太多)。
平台是Windows/ASP.NET,应用程序托管在SharePoint(MOSS 2007)中。
2个回答

3
这里有几个需要问的附加问题。
是250个总用户还是250个同时在线用户?如果是同时在线的,那么是250个峰值还是通常情况下的250个?如果是250个总用户,他们是否都预计在同一时间使用它(例如,内部网站,人们必须将其作为工作的一部分使用),还是更像一个社区网站,他们可能会使用它,也可能不会使用它?我假设根据您的措辞,这是250个总用户,但这仍然无法提供足够的信息来估算。
如果这是一个社区或“正常”的互联网站,它也将取决于使用情况 - 例如,人们真的会密集地使用它吗,还是只有一些用户会登录一次,然后忘记?从您的角度来看,这可能是一个棘手的问题,因为您希望假设前者,但如果您花费了大量资金用于网络基础设施,而没有人最终使用它,那就可能是件非常糟糕的事情。
该网站正在做什么?在频谱的低端,有一个“典型”的Web应用程序,其中有合理大小(比如1-2k)的页面和一些图片。稍微强烈一点的是具有大量媒体的网站 - 例如,flickr风格的图像浏览。在上限处是具有大量下载的网站 - 流媒体电影,或者只是正在下载大文件或数据集。
这超出了您的问题阈值,但另一个需要考虑的事情是该网站的未来:使用情况是否可能在明年或下个月翻倍?谨慎签订长期合同,如T1或光纤连接,而没有任何升级方式。
另一个问题是可靠性 - 您是否需要连接的冗余性?它可能会一次性花费很多钱,但有一些方法可以使用多个链接进行多家接入,并且在发生故障时仅使用其中一个(尽管容量会降低)。
另一个要考虑的选择,可以完全避免整个问题,就是将应用程序托管在数据中心。您支付相对较低的月费(与专用高质量连接的成本相比较低),并获得所需的所有带宽(例如,大多数托管计划将为您提供每月500GB的传输,以开始 - 有些人甚至会给你无限制的)。数据中心也将比您建造的任何东西更可靠(除了自己的6位数数据中心),因为它们拥有冗余的互联网、备用电源、冗余的制冷、消防保护、物理安全性...并且他们有管理所有这些的人,所以您永远不必处理它。

3

缺乏好的带宽使用报告工具时,您可以进行粗略估算。

N = 最繁忙小时的页面浏览次数 P = 平均页面大小

(N * P) / 3600 = 每秒平均流量。

服务器本身将有更多的内部流量,可能是数据库服务器/NAS等。但从外部看,这应该给您一个非常粗略的利用率概念。显然,您需要远远超过上述值,因为您永远不想达到100%的利用率,并允许其他流量。

我也不建议使用像250个用户这样的任意数字。使用最繁忙的生产日/小时作为参考。如果您拥有良好的日志文件/用户审计,可以加倍和三倍,但这将为您提供用户行为的预期分布。这将有助于使您的估计更准确。

正如另一位评论者指出的那样,当冗余和带宽可用性成为问题时,数据中心是一个好主意。您的需求可能会有所不同,但不要轻易忽视建议。


1
要从平均流量估计转向突发负载的容量规划,请参阅Charlie Martin在此评论中的优秀笔记:https://dev59.com/63RC5IYBdhLWcg3wMeDf#379543 - Eric Nguyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接