下载 第26章优化ASP的性能 有些性能指标,例如正确性,是只有在其不出现时才被人们注意到的品质特征。如果能 努力地改正网站中的所有错误,并不断提高其工作性能,那么其用户很少会提意见。如果网 站存在少量错误,或者是运行缓慢,那么其用户们会产生抱怨 本章将介绍与ASP工作性能有关的几个重要概念,提供一些优化ASP工作性能的方法和应 注意的事项。 本章的主要内容如下: ·以处理速率和响应时间衡量性能指标, 硬件的性能 ·脚本优化 NT Performance moniter和 Web Application Tool(WAS)等工具。 会话和应用程序状态 进程隔离、组件和线程模型。 最后,我们用一些综合技巧结束本章的内容,这些技巧在实践中行之有效,而且可以用 来改善网站性能。首先,让我们考虑一下应该用什么样的尺度来衡量ASP的工作性能 26.1衡量工作性能的标准 在研究如何提高ASP的工作性能之前,我们需要来理解两个基本的指标:吞吐量和响应 时间 吞吐量( Throughput):是指服务器处理请求的速率。从网络管理员的角度来看,可以实 现的吞吐量越高越好。如果能够提升网站潜在的吞吐量,就可以应付日益增加的用户请求 就能处理更多的事情:而且也可以因此推迟升级服务器的硬件 响应时间( Response Time):是指从客户开始提出请求到接收到响应最后一个比特之间 的时间。响应时间越短越好。用户很在意响应时间,对全系统的吞吐量不太关注 26.1.1吞吐量 吞吐量通常用每秒或每天的请求次数来衡量。有时,使用页请求数比使用请求次数更有 意义。当浏览者要求得到一个HTML页面时,一般会紧跟着发出与图片和网页有关的独立请 求,其中图片一般都标有<IMG>的标记。这些紧密联系着的请求被视为一个页面请求 另一个近似衡量吞吐量的方法是客户数量除以客户的“思考时间”。例如,假如有100个 客户,平均每人用20秒阅读一个网页,那么吞吐量就是100/20,或者说是每秒回答5次。吞吐 量并非表示阅读一个网页需要的时间,表明请求多快才能到达服务器,服务器要多久才能对 它们做出响应 吞吐量受许多变化因素影响。其中之一就是带宽,带宽是用来计量每秒能够传输多少数 据的物理量。如果使用一条ISDN线来连接到 Internet,那么由于ISDN很容易饱和,相对较低
下载 第26章 优化ASP的性能 有些性能指标,例如正确性,是只有在其不出现时才被人们注意到的品质特征。如果能 努力地改正网站中的所有错误,并不断提高其工作性能,那么其用户很少会提意见。如果网 站存在少量错误,或者是运行缓慢,那么其用户们会产生抱怨。 本章将介绍与A S P工作性能有关的几个重要概念,提供一些优化 A S P工作性能的方法和应 注意的事项。 本章的主要内容如下: • 以处理速率和响应时间衡量性能指标。 • 硬件的性能。 • 脚本优化。 • NT Performance Moniter 和 Web Application To o l(WA S)等工具。 • 会话和应用程序状态。 • 进程隔离、组件和线程模型。 最后,我们用一些综合技巧结束本章的内容,这些技巧在实践中行之有效,而且可以用 来改善网站性能。首先,让我们考虑一下应该用什么样的尺度来衡量 A S P的工作性能。 26.1 衡量工作性能的标准 在研究如何提高 ASP 的工作性能之前,我们需要来理解两个基本的指标:吞吐量和响应 时间。 吞吐量(T h r o u g h p u t):是指服务器处理请求的速率。从网络管理员的角度来看,可以实 现的吞吐量越高越好。如果能够提升网站潜在的吞吐量,就可以应付日益增加的用户请求; 就能处理更多的事情;而且也可以因此推迟升级服务器的硬件。 响应时间(Response Ti m e):是指从客户开始提出请求到接收到响应最后一个比特之间 的时间。响应时间越短越好。用户很在意响应时间,对全系统的吞吐量不太关注。 26.1.1 吞吐量 吞吐量通常用每秒或每天的请求次数来衡量。有时,使用页请求数比使用请求次数更有 意义。当浏览者要求得到一个 H T M L页面时,一般会紧跟着发出与图片和网页有关的独立请 求,其中图片一般都标有< I M G >的标记。这些紧密联系着的请求被视为一个页面请求。 另一个近似衡量吞吐量的方法是客户数量除以客户的“思考时间”。例如,假如有 1 0 0个 客户,平均每人用2 0秒阅读一个网页,那么吞吐量就是 1 0 0 / 2 0,或者说是每秒回答 5次。吞吐 量并非表示阅读一个网页需要的时间,表明请求多快才能到达服务器,服务器要多久才能对 它们做出响应。 吞吐量受许多变化因素影响。其中之一就是带宽,带宽是用来计量每秒能够传输多少数 据的物理量。如果使用一条 I S D N线来连接到I n t e r n e t,那么由于I S D N很容易饱和,相对较低
第6章优化SP的性能783 的带宽将成为限制性能的主要因素。带宽是限制网络服务器向用户快速传递内容的一个主要 网页尺寸( Page size)同样影响吞吐量。传递的网页越大,每页花费的时间越多,每秒 可以传递的网页越少。如果可以减少网页的尺寸(尤其是嵌入式图片的尺寸,这些图片往往 是最大的文件),不仅可以提高吞吐量,而且减少了响应时间:也就是说,客户看到完整一页 所需的时间更少。 复杂的应用程序( Complex application)会降低吞吐量。如果每一个请求都需要花费较长 的时间来执行,那么每秒可以处理的请求数就比处理简单的申请时少。对于动态内容来说, CPU的性能是影响吞吐量的主要因素 在速度较快的局域网上,HTTP的连接是几乎瞬时完成的。但是,在相对较慢的广域网上 例如 IInternet,它的连接就需要几秒钟。同时,由于每一个连接都要使用服务器资源,所以并 发连接个数成了重要的指标。 有两种方法测量吞吐量: 是使用性能监视器( Performance monitor)来读取由网络服务器产生的吞吐量统计数据 对于静态文件来说,NT性能计数器为 Web Service(Tota)| Get Requests/sec;对于ASP来说, NT性能计数器为 Actire Server Pages Requests/sec。本章的后面将详细讨论性能计数器 是使用装载产生工具,例如WAS。在运行了一个特殊的测试程序后,WAS将报告吞吐 量和许多其他的统计数据。 26.1.2响应时间 用户希望响应时间少于一秒,但是却很少能够实现。人们经常半开玩笑地称WWW是 “世界范围内的等待( World- Wide wait)”。响应时间取决于网络延时、请求在服务器端排队 的时间及服务器处理请求的时间 WAS提供获得第一个比特的时间(TIFB)和获得最后一个比特的时间(TTLB) 的统计纪录。 网络延时是一个数据包从一个地方传送到另一个地方的时间,它受以下几个因素的影响 网络拥挤度、链路的质量、链路的带宽、链节点间的物理距离,与目的地之间的中继站或区 域的个数和在路由器和网关的等待时间 延时既受到请求从客户端传递到服务器端的时间的影响,也受到从服务器端到客户端返 回响应的时间的影响。在大多数情况下,响应时间既不受客户控制也不受服务器控制。 窄带设备,例如调制解调器,延时更长。相反,宽带设备通常延时较少,不过并非总是 如此。两个通过微波、卫星连接的系统,每秒可以传递几百万比特的数据,但如果仅把单个 数据从一个终端经卫星传送到另一个终端的话,花费的时间比在局域网内传输要长 即使从客户端到服务器的延时为零,任何一个请求在排队等待接受服务器处理时仍要花 费时间。请求排队时间取决于队列的长度和服务器处理每个请求的时间。队列的长度与服务 器的负荷成比例。 请求执行时间是响应时间的最后一个组成部分。它是唯一的一个服务器可以控制的量。 较长的处理时间会减低吞吐量。减少执行时间是本章的主要任务。 业务量特性曲线
第26章 优化ASP 的性能计计783 下载 的带宽将成为限制性能的主要因素。带宽是限制网络服务器向用户快速传递内容的一个主要 因素。 网页尺寸(Page size)同样影响吞吐量。传递的网页越大,每页花费的时间越多,每秒 可以传递的网页越少。如果可以减少网页的尺寸(尤其是嵌入式图片的尺寸,这些图片往往 是最大的文件),不仅可以提高吞吐量,而且减少了响应时间;也就是说,客户看到完整一页 所需的时间更少。 复杂的应用程序(Complex application)会降低吞吐量。如果每一个请求都需要花费较长 的时间来执行,那么每秒可以处理的请求数就比处理简单的申请时少。对于动态内容来说, C P U的性能是影响吞吐量的主要因素。 在速度较快的局域网上,H T T P的连接是几乎瞬时完成的。但是,在相对较慢的广域网上, 例如I n t e r n e t,它的连接就需要几秒钟。同时,由于每一个连接都要使用服务器资源,所以并 发连接个数成了重要的指标。 有两种方法测量吞吐量: 一是使用性能监视器(Performance Monitor)来读取由网络服务器产生的吞吐量统计数据。 对于静态文件来说,N T性能计数器为Web Service (_Total) | Get Raquests/sec;对于A S P来说, N T性能计数器为 Actire Server Pages | Requests/sec。本章的后面将详细讨论性能计数器。 二是使用装载产生工具,例如 WA S。在运行了一个特殊的测试程序后, WA S将报告吞吐 量和许多其他的统计数据。 26.1.2 响应时间 用户希望响应时间少于一秒,但是却很少能够实现。人们经常半开玩笑地称 W W W是 “世界范围内的等待( Wo r l d - Wide Wa i t)”。响应时间取决于网络延时、请求在服务器端排队 的时间及服务器处理请求的时间。 WAS 提供获得第一个比特的时间( T T F B)和获得最后一个比特的时间( T T L B) 的统计纪录。 网络延时是一个数据包从一个地方传送到另一个地方的时间,它受以下几个因素的影响: 网络拥挤度、链路的质量、链路的带宽、链节点间的物理距离,与目的地之间的中继站或区 域的个数和在路由器和网关的等待时间。 延时既受到请求从客户端传递到服务器端的时间的影响,也受到从服务器端到客户端返 回响应的时间的影响。在大多数情况下,响应时间既不受客户控制也不受服务器控制。 窄带设备,例如调制解调器,延时更长。相反,宽带设备通常延时较少,不过并非总是 如此。两个通过微波、卫星连接的系统,每秒可以传递几百万比特的数据,但如果仅把单个 数据从一个终端经卫星传送到另一个终端的话,花费的时间比在局域网内传输要长。 即使从客户端到服务器的延时为零,任何一个请求在排队等待接受服务器处理时仍要花 费时间。请求排队时间取决于队列的长度和服务器处理每个请求的时间。队列的长度与服务 器的负荷成比例。 请求执行时间是响应时间的最后一个组成部分。它是唯一的一个服务器可以控制的量。 较长的处理时间会减低吞吐量。减少执行时间是本章的主要任务。 业务量特性曲线
78493;高级程 Chinapub coM 下载 另一个概念是业务量特性曲线,业务量曲线在一天内并不平坦。地区性的新闻网站在清 晨、午饭时间和傍晚会有较重的业务量,但在半夜却非常闲,这时其主要读者已经睡着了 在业务较重的时间,服务器可能要处理三到五倍于24小时平均业务量的业务。新闻网站在发 生突发新闻事件时会偶尔遇到尖峰业务量 显然,一个Web站点必须不仅可以处理平均业务量,也必须有足够能力应付 天中可能的高峰,而且它的速率最好能应付得了最高容量。 从长远角度看,应该建成一个可以适应日益增长的业务量的成功网站。不要让服务器超 负荷运转。如果平均业务量占用了CPU资源的50%,那就可能不能很好地应付业务量的高峰 使用 NT Performance monitor来了解站点的工作情况。 Hermon可以把所有计数值记录到一个 日志并在NT事件日志中报警。 26.1.3衡量性能的其他指标 如前所述,衡量工作性能最基本的标准是吞吐量(服务器每秒可以处理的请求数量)和 响应时间(处理一个指定的请求有多快)。作为一个网络管理员或者ASP应用程序开发者,最 关心的是使吞吐量最大,因为它既能够使网站可以处理更多的下载请求,还可以推迟升级硬 件。与此不同,用户希望响应时间越短越好,因为他们已经厌倦了“世界范围内的等待 其他的性能指标也是非常有用的。这些指标是兆赫费用、资源利用率和多处理器可扩展 性。兆赫费用是一种估计执行一个动态网页有多“贵”的方法,而且它还能帮助你推断出通 过改换不同的硬件可以得到的性能。使用的资源越少,可用空间就越大,而且对多用途的服 务器来说,就越是好成员。在单处理器系统上开发的应用程序在多处理器系统中并不能自动 地扩展 1.兆赫费用 兆赫费用使用每秒每个请求的兆赫值表示,即:兆赫费用=CPU数量×CPU速度×CPU利 用率/每秒请求数。例如,如果一个双奔腾Ⅱ服务器的工作频率为333MHz,系统可以利用60% 的CPU资源稳定地工作在80页/秒的速度上(由 Task Manager或 Performance moniter实测得到), 即 总频率为2×333MHz=666MHz,可利用的频率为:666×0.60=400MHz,因此,400 MHz/80页/秒=5(MHz/每秒页),所以,兆赫费用为5MHz/每秒页 兆赫费用与吞吐量等其他指标相比有一定的优点,它使得规划系统的容量变得相对容易。 例如,尽管系统B与系统A的硬件不同,假如两个系统的CPU个数相同,并且一个页面的兆赫 费用一定的话,则页面在系统A与在系统B运行的兆赫费用基本相同,只是在速度较快的机器 会略高一点 然而现在还不能把兆赫费用看得太重:它仅仅是一个估计值。对动态内容的处 理能力还无法确定。 例如,网站上最高层的主页的兆赫费用为3,搜索网页是25,订单网页是15。网站可承受 的速率是每秒有50个客户访问最高层的主页,一人在搜索,2人在下订单,同时还需有一些剩 余能力用来对付业务高峰和满足其他网页的用户的要求。网站的兆赫费用多大才能满足需
另一个概念是业务量特性曲线,业务量曲线在一天内并不平坦。地区性的新闻网站在清 晨、午饭时间和傍晚会有较重的业务量,但在半夜却非常闲,这时其主要读者已经睡着了。 在业务较重的时间,服务器可能要处理三到五倍于 2 4小时平均业务量的业务。新闻网站在发 生突发新闻事件时会偶尔遇到尖峰业务量。 显然,一个 We b站点必须不仅可以处理平均业务量,也必须有足够能力应付一 天中可能的高峰,而且它的速率最好能应付得了最高容量。 从长远角度看,应该建成一个可以适应日益增长的业务量的成功网站。不要让服务器超 负荷运转。如果平均业务量占用了 C P U资源的5 0 %,那就可能不能很好地应付业务量的高峰。 使用NT Performance Monitor来了解站点的工作情况。 PerMon 可以把所有计数值记录到一个 日志并在NT 事件日志中报警。 26.1.3 衡量性能的其他指标 如前所述,衡量工作性能最基本的标准是吞吐量(服务器每秒可以处理的请求数量)和 响应时间(处理一个指定的请求有多快)。作为一个网络管理员或者 A S P应用程序开发者,最 关心的是使吞吐量最大,因为它既能够使网站可以处理更多的下载请求,还可以推迟升级硬 件。与此不同,用户希望响应时间越短越好,因为他们已经厌倦了“世界范围内的等待”。 其他的性能指标也是非常有用的。这些指标是兆赫费用、资源利用率和多处理器可扩展 性。兆赫费用是一种估计执行一个动态网页有多“贵”的方法,而且它还能帮助你推断出通 过改换不同的硬件可以得到的性能。使用的资源越少,可用空间就越大,而且对多用途的服 务器来说,就越是好成员。在单处理器系统上开发的应用程序在多处理器系统中并不能自动 地扩展。 1. 兆赫费用 兆赫费用使用每秒每个请求的兆赫值表示,即:兆赫费用 = CPU数量×C P U速度×C P U利 用率/每秒请求数。例如,如果一个双奔腾 I I服务器的工作频率为3 3 3 M H z,系统可以利用6 0 % 的C P U资源稳定地工作在8 0页/秒的速度上(由Task Manager 或Performance Moniter实测得到), 即: 总频率为2×333 MHz = 666 MHz,可利用的频率为:6 6 6×0.60 = 400 MHz,因此,4 0 0 MHz / 80页/ 秒 = 5 (M H z /每秒页),所以,兆赫费用为5 MHz/每秒页。 兆赫费用与吞吐量等其他指标相比有一定的优点,它使得规划系统的容量变得相对容易。 例如,尽管系统B与系统A的硬件不同,假如两个系统的 C P U个数相同,并且一个页面的兆赫 费用一定的话,则页面在系统 A与在系统B运行的兆赫费用基本相同,只是在速度较快的机器 会略高一点。 然而现在还不能把兆赫费用看得太重;它仅仅是一个估计值。对动态内容的处 理能力还无法确定。 例如,网站上最高层的主页的兆赫费用为 3,搜索网页是2 5,订单网页是1 5。网站可承受 的速率是每秒有5 0个客户访问最高层的主页,一人在搜索, 2人在下订单,同时还需有一些剩 余能力用来对付业务高峰和满足其他网页的用户的要求。网站的兆赫费用多大才能满足需 求? 784计计ASP 3 高级编程 下载
第6章优化SP的性能785 (50×3)+(2×15)+(1×25)=150+30+25=205MHz 考虑到系统业务高峰时的冗余,至少要使系统的兆赫容量达到300MHz,才可以满足需求 建议系统的平均工作量不超过CPU资源的50%,否则将不能很好地应付业务」 的高峰。 这个网站的工作频率为400MHz是比较安全的。 2.降低CPU的占用率 很明显,CPU占用率越低越好。如果可以优化网页使其可以运行得更快且占用最少的 CPU资源,那么网站就有更多的能力来应付业务高峰。另外,对于运行在同一系统上的数据 库和电子邮件服务器等其他服务来说,希望让给它们尽可能多的CPU资源 3.降低带宽的占用率 即使是专用的网络服务器也不得不与其他系统分享网络资源。因此,应该尽可能地占用 较少的网络带宽资源。这不仅仅意味着可以给其他系统留下更多的带宽,还可以使网络服务 器达到更高的吞吐量和提供更短的客户响应时间。有三种方法可以实现这一目标 ·第一种方法是为每个请求传递较少的数据。去掉HTML文件中的空格:发送一部分结果 以代替整个结果:发送尽可能少的图片,并且通过剪切使图片尽可能小,或使用较高压 缩比例的JPEG和颜色较少的GIF方式使图片变小 第二种方法是减少客户与服务器在网络上的往返时间。服务器可以下载给客户的信息越 多越好。往返时间经常由于网络的等待时间而变长,并由此增加了服务器的工作量,还 占用了网络的带宽资源。优秀的客户可以用客户端脚本来验证数据;使用 DHTML来改 变显示器的显示图案而不用请求从服务器下载新的HTML文件或图片:;用RDS来巧妙地 处理ADO记录集;用XML来转换数据等 ·第三种方法是数据缓冲。把数据寄存起来,然后一次性发出可以节约网络资源的占用 IS40的缺省值并不缓冲ASP动态网页,而IS50的缺省值是缓冲ASP动态网页 每一个 Response. Write和HIML段分别传递给客户的。每个数据包内都加上了描述性的报 头:每一次传递都需要花时间来完成:每一次传递都给网络増添了阻塞问题。这就像分几次 从超级市场买回采购单上的物品而不是一次把所有的东西都买回来一样。TCPP协议有一种 慢开始的算法,它先传递一个数据包,然后是一次两个,再一次传递四个,如此下去,直到 建立起最大的数据传输速率为止。如果一个网页被分割成许多小的部分来传送,TCP/IP对每 次传递都有一个慢开头的数据流,而不是对整个数据仅用一个慢开头的数据流。当整个网页 被缓冲后,TCP/P会变得更高效,尤其是在等待时间较长的连接上 4.多处理器的可扩展性 理想情况下,在单处理器系统中增加一个处理器可以使吞吐量加倍,再加两个处理器可 以得到四倍的处理性能。但是,实际中一个应用程序很难在多处理器系统上扩展。IIS4.0可 以很好地出从一个处理器扩展到两个处理器,但超过两个就不行了。IS5.0可以扩展到出4个 甚至是8个处理器 图26-1表示了在IS5.0中ASP的性能改善情况。它表明了一个经常使用 Lookup Table组件 的不太复杂的ASP脚本(大约1000行的代码,产生约25KB的HTML文件)在IS50中的性能 改善情况
第26章 优化ASP 的性能计计785 下载 (5 0×3)+(2×1 5)+(1×2 5)= 150 + 30 + 25 = 205 MHz 考虑到系统业务高峰时的冗余,至少要使系统的兆赫容量达到 3 0 0 M H z,才可以满足需求 了。 建议系统的平均工作量不超过 C P U资源的5 0 %,否则将不能很好地应付业务量 的高峰。 这个网站的工作频率为4 0 0 M H z是比较安全的。 2. 降低C P U的占用率 很明显, C P U占用率越低越好。如果可以优化网页使其可以运行得更快且占用最少的 C P U资源,那么网站就有更多的能力来应付业务高峰。另外,对于运行在同一系统上的数据 库和电子邮件服务器等其他服务来说,希望让给它们尽可能多的 C P U资源。 3. 降低带宽的占用率 即使是专用的网络服务器也不得不与其他系统分享网络资源。因此,应该尽可能地占用 较少的网络带宽资源。这不仅仅意味着可以给其他系统留下更多的带宽,还可以使网络服务 器达到更高的吞吐量和提供更短的客户响应时间。有三种方法可以实现这一目标: • 第一种方法是为每个请求传递较少的数据。去掉 H T M L文件中的空格;发送一部分结果 以代替整个结果;发送尽可能少的图片,并且通过剪切使图片尽可能小,或使用较高压 缩比例的J P E G和颜色较少的G I F方式使图片变小。 • 第二种方法是减少客户与服务器在网络上的往返时间。服务器可以下载给客户的信息越 多越好。往返时间经常由于网络的等待时间而变长,并由此增加了服务器的工作量,还 占用了网络的带宽资源。优秀的客户可以用客户端脚本来验证数据;使用 D H T M L来改 变显示器的显示图案而不用请求从服务器下载新的 H T M L文件或图片;用R D S来巧妙地 处理A D O记录集;用X M L来转换数据等。 • 第三种方法是数据缓冲。把数据寄存起来,然后一次性发出可以节约网络资源的占用。 IIS 4.0的缺省值并不缓冲A S P动态网页,而IIS 5.0的缺省值是缓冲A S P动态网页。 每一个R e s p o n s e . Wr i t e和H T M L段分别传递给客户的。每个数据包内都加上了描述性的报 头;每一次传递都需要花时间来完成;每一次传递都给网络增添了阻塞问题。这就像分几次 从超级市场买回采购单上的物品而不是一次把所有的东西都买回来一样。 T C P / I P协议有一种 慢开始的算法,它先传递一个数据包,然后是一次两个,再一次传递四个,如此下去,直到 建立起最大的数据传输速率为止。如果一个网页被分割成许多小的部分来传送, T C P / I P对每 次传递都有一个慢开头的数据流,而不是对整个数据仅用一个慢开头的数据流。当整个网页 被缓冲后,T C P / I P会变得更高效,尤其是在等待时间较长的连接上。 4. 多处理器的可扩展性 理想情况下,在单处理器系统中增加一个处理器可以使吞吐量加倍,再加两个处理器可 以得到四倍的处理性能。但是,实际中一个应用程序很难在多处理器系统上扩展。 IIS 4.0可 以很好地出从一个处理器扩展到两个处理器,但超过两个就不行了。 IIS 5.0可以扩展到出4个 甚至是8个处理器。 图2 6 - 1表示了在IIS 5.0中A S P的性能改善情况。它表明了一个经常使用 L o o k u p Ta b l e组件 的不太复杂的A S P脚本(大约1 0 0 0行的代码,产生约25 KB的H T M L文件)在IIS 5.0中的性能 改善情况
786s3高级程 下载 IS5中的ASP性能提高 2P 口4P Nt4 sp5 NT4 sp5+W2K,Beta3 VBS 图26-1S5.0中ASP的性能改善情况 应用程序无法很好地扩展的原因是资源争用和串行化过程。每一个线程都在争用共享的 资源、组件的关键部分或系统总线。当一个线程对某一资源进行独占访问时,其他线程被阻 塞,只有第一个线程释放这些资源,其他线程才能再使用这些资源。资源的使用是串行的而 不是并行的。由于单处理器系统在一个瞬间实际只有执行一个线程,所以这种问题不容易出 现。对有n个处理器的系统,同时执行n个线程,就会出现资源争用问题 如果ASP应用程序要在多处理器系统上使用,首先必须对应用程序在多处理器 系统上的可扩展性和性能进行测试。 通过测试可以把一些诸如线程安全、死锁等问题及发现的其他问题从应用程序中清除掉 26.2改善服务器的硬件性能 必须有合适的硬件支持,才可以满足现在的要求和将来可能的负荷要求。一个奔腾133也 许足以应付小部门的网络服务要求,但却不能满足一个繁忙的商业站点的要求。 262.1内存 服务器有足够的物理内存是至关重要的。如果没有足够的物理内存,那么,改善服务器 性能的最简单最有效的方法就是增加内存。虚拟内存子系统虽能很好地工作,但是系统的吞 吐量将会大大降低,因为系统将很多的时间用在内存与硬盘之间的页面交换上。即使系统有 足够的内存,增加内存仍能提高系统性能。IS的核心需要大量内存来高速缓存存储静态文件, ASP需要内存来存储编译了的ASP文件和ASP会话数据。 可以使用 NT Performance Monitor来诊断内存问题。在 IS Technet网站和MSDN 网络服务器技术站点上,有些文章对这一问题做了进一步的讨论,微软出版社出版的 《 IIS Resource uide》对这一问题也进行了研究 128MB是专用网络服务器的最小内存数,增加到256MB较好,如果是任务比较繁重的商 业网站,内存应为512MB到1GB。增加内存可以改善服务器的工作性能,最终将逐渐接近系 统的最高性能,例如,少数服务器的实际内存为2GB
图26-1 IIS 5.0中A S P的性能改善情况 应用程序无法很好地扩展的原因是资源争用和串行化过程。每一个线程都在争用共享的 资源、组件的关键部分或系统总线。当一个线程对某一资源进行独占访问时,其他线程被阻 塞,只有第一个线程释放这些资源,其他线程才能再使用这些资源。资源的使用是串行的而 不是并行的。由于单处理器系统在一个瞬间实际只有执行一个线程,所以这种问题不容易出 现。对有n个处理器的系统,同时执行 n个线程,就会出现资源争用问题。 如果A S P应用程序要在多处理器系统上使用,首先必须对应用程序在多处理器 系统上的可扩展性和性能进行测试。 通过测试可以把一些诸如线程安全、死锁等问题及发现的其他问题从应用程序中清除掉。 26.2 改善服务器的硬件性能 必须有合适的硬件支持,才可以满足现在的要求和将来可能的负荷要求。一个奔腾 1 3 3也 许足以应付小部门的网络服务要求,但却不能满足一个繁忙的商业站点的要求。 26.2.1 内存 服务器有足够的物理内存是至关重要的。如果没有足够的物理内存,那么,改善服务器 性能的最简单最有效的方法就是增加内存。虚拟内存子系统虽能很好地工作,但是系统的吞 吐量将会大大降低,因为系统将很多的时间用在内存与硬盘之间的页面交换上。即使系统有 足够的内存,增加内存仍能提高系统性能。 I I S的核心需要大量内存来高速缓存存储静态文件, A S P需要内存来存储编译了的A S P文件和A S P会话数据。 可以使用N T Performance Monitor来诊断内存问题。在IIS Technet 网站和 M S D N 网络服务器技术站点上,有些文章对这一问题做了进一步的讨论 ,微软出版社出版的 《IIS Resource Guide》对这一问题也进行了研究。 1 2 8 M B是专用网络服务器的最小内存数,增加到 2 5 6 M B较好,如果是任务比较繁重的商 业网站,内存应为 5 1 2 M B到1 G B。增加内存可以改善服务器的工作性能,最终将逐渐接近系 统的最高性能,例如,少数服务器的实际内存为 2 G B。 786计计ASP 3 高级编程 下载 IIS 5 中的ASP 性能提高 进程 内 进程 外 进程 内 进程 外 进程 内 进程 外