ASP.NET应用程序的扩展策略2011-11-21 msdn Richard Campbell Kent Alstad作 为 ASP.NET 性能顾问,我们接触的项目通常都是已经出现问题的项目。在许多情况下,求助电话 都是在应用程序已经投产后才打来的。在开发人员那里一切都正常的程序到了用户那里却无法正常运行。 他们抱怨:站点太慢了。管理部门想知道为什么在测试的时候没有发现这一问题。开发部门却无法重现问 题。于是有人说 ASP.NET 不能扩展。听起来是不是很熟悉?世界上一些最繁忙的 Web 站点都是运行在 ASP.NET 上。MySpace 就是一个很好的例子;实际上,它 是在多种不同的平台上都经过运行后才被迁移到 ASP.NET 上的。事实上,性能问题可能是随着应用程序 的不断扩展而显现出来的,当出现这种情况时,您需要确定所发生的实际问题并找出解决该问题的最佳策 略。您将面临的最大挑战是创建一组测量标准,其中要涵盖应用程序方方面面的性能。如果不将问题通盘 加以考虑,您就无法知道要将侧重点放在哪一方面。性能等式2006 年 9 月, NetForecast 的 Peter Sevcik 和 Rebecca Wetzel 发表了一篇名为 "Field Guide to Application Delivery Systems" 的论文。该论文专门讨论了如何改善广域网 (WAN) 应用程序的性 能,并包括了图 1 所示的等式。此等式针对的是 WAN 的性能,但只需做少量修改便可用来衡量 Web 应 用程序的性能。修改后的等式如图 2 所示,其中的各个元素在图 3 中进行了解释。Figure 3 性能等式的元素
| 变量 | 定义 | 
| R | 响应时间。从用户请求页面(通过单 击链接等操作)到整个页面全部呈现在用户计算机中所需的总时间。通常以秒为测量单位。 | 
| 负载 | 发送到浏览器的字节总数,包括标记和所有资源(例如,CSS、JS 和 图像文件等)。 | 
| 带宽 | 与浏览器之间的传输率。这可能是不对称的,如果给 定页面是从多个源生成的,这可能表示多个速度。通常情况下,会加总取一平均值作为单一带宽,单位为 字节/秒。 | 
| AppTurns | 给定页面所需的资源文件数。这些资源文件包括 CSS、 JS、图像等,还包括浏览器在页面显示过程中检索的任何其他文件。在此等式中,HTML 页面是通过在 AppTurns 表达式之前加上往返时间 (RTT) 单独计算的。 | 
| RTT | 往返所需的时 间,与传输的字节无关。对于页面本身,每个请求至少需要耗用一个 RTT。通常以毫秒为测量单位。 | 
| 并发请求 | 浏览器同时发出的请求资源文件的请求数。默认情况下, Internet Explorer 执行两个并发请求。此设置可以进行调整,但很少这样做。 | 
| Cs | 服务器上的计算时间。这是运行代码、从数据库检索数据以及合成要发 送到浏览器的响应所需的时间。测量单位为毫秒。 | 
| Cc | 客户端上的计算时间 。这是浏览器在屏幕上实际显示 HTML、执行 JavaScript、实施 CSS 规则等所需的时间。 | 

Figure 1 The Original Performance Equation

Figure 2 The Web Version of the Performance Equation