估算Web应用程序峰值带宽需求的最准确方法是什么?
我正在处理一个客户建议,他们将需要升级其网络基础结构以支持承载ASP.NET应用程序。本质上,我需要估计用户数量已知(当前为250)的系统的峰值使用情况。一个简单的回答,例如"我们需要一条专用的T1线"可能就足够了,但是我希望有数据来备份它。
另一个问题引用了NetLimiter,它对于了解正在使用的内容看起来非常漂亮。
我的一般想法是,我将启动该Web应用程序并使用该系统,就像我希望在一定时间范围内以悠闲的步伐在客户身上使用它,然后将带宽使用量乘以用户并按时间划分。
这似乎不是很科学。对于一个提案来说可能已经足够好了,但是我想看看是否有更好的方法。
我知道有可用的负载工具可用于测试Web应用程序性能,但似乎这些工具无法准确地模拟峰值用户负载以进行带宽测试(一次太多)。
该平台是Windows / ASP.NET,该应用程序托管在SharePoint(MOSS 2007)中。
解决方案
在此还需要询问几个其他问题。
是250个总用户还是250个并发用户?如果并发,那是250个峰值,还是通常250个?如果总共有250个用户,那么是否所有人都希望同时使用它(例如,一个Intranet站点,人们必须在其中使用它作为工作的一部分),或者更多地是一个社区站点?用它?我认为我们所说的话是250名用户,但这还不足以说明该网站的价值。
如果它是社区或者"常规"互联网站点,则还取决于使用情况,例如,人们是否真的会大量使用它,还是某些用户只是登录一次然后忘记呢?从角度来看,这可能是一个棘手的问题,因为我们将要假设前者,但是如果我们在网络基础架构上花费了很多钱而没有人最终使用它,那将是一件非常糟糕的事情。
该网站在做什么?在频谱的低端,有一个"典型的" Web应用程序,在该应用程序中我们具有合理的大小(例如1-2k)页面和少量图像。一个拥有更多媒体(例如flickr风格的图像浏览)的网站会更加激烈。在高端站点是一个下载大量流媒体电影的站点,或者只是下载大文件或者数据集的站点。
这有点超出了问题的门槛,但还有一点要看的是网站的未来:在明年或者一个月内,使用量可能会翻倍吗?警惕要与T1或者光纤连接之类的东西签订长期合同,而无需进行任何升级。
另一个问题是可靠性,我们是否需要连接冗余?这样做可能会花很多钱,但是有多种方法可以建立多宿主连接,我们可以在多个链路之间平衡访问,然后在发生故障时仅使用一个(尽管容量减少)。
要考虑的另一种方法是仅将应用程序托管在数据中心中,从而有效地完全避免了整个问题。我们只需支付相对较低的月租费(与专用高质量连接的费用相比要低),并且我们将获得所需的带宽(例如,大多数托管计划每月会为我们提供约500GB的传输量)有些会无限地给我们)。数据中心还将比我们可以构建的任何东西(缺少自己的6个数字以上的数据中心)更加可靠,因为它们具有冗余的Internet,电源备份,冗余的冷却,防火,物理安全性。这对于我们来说,因此我们不必处理它。
代替良好的带宽使用报告工具,我们总是可以做一个大概的估计。
N =最繁忙时段的浏览量
P =平均页面大小
(N * P)/ 3600)=每秒平均流量。
对于db服务器/ NAS / etc,服务器本身将具有更多内部流量。但是,外向应该使我们对利用率有一个很粗略的认识。显然,我们将永远需要远远超过上述值,因为我们永远不想被100%利用,并允许其他流量。
我也不建议使用250个用户这样的任意数字。使用最重的生产日/小时作为参考。如果愿意,可以两倍和三倍,但是如果我们有良好的日志文件/用户审核,则可以按预期分配用户行为。这将有助于使猜测更加准确。
正如另一位评论者所指出的那样,当冗余和带宽可用性成为关注点时,数据中心是个好主意。需求可能会有所不同,但请不要轻易拒绝该建议。