我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp客户端/系统 > 使用 IIS 5.0 调整 Web服务器的艺术与科学--4
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
ASP教程十一、调试ASP脚本(10-23)
在JSP中访问数据库大全(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

使用 IIS 5.0 调整 Web服务器的艺术与科学--4 

作者:佚名   来源:一亩三分地   点击:   日期:2007-03-23

indows 2000 及 IIS 5.0 中的功能及设置

  如果您目前正在含 IIS 4.0 的 Windows NT Server 4.0 上执行一个经过适当调整的站点,则该站点在 Windows 2000 Server 及 IIS 5.0 上应可顺利地执行。相关信息请参阅 Windows 2000 Performance Test by ZD Labs。 当进行迁移时,您还是要监视你的服务器及站点。您将会注意到在 Windows 2000 及 IIS 5.0 中有些针对增强性能及简化管理而设计的新功能。此外,在 IIS 4.0 中的默认的设置值到了 IIS 5.0 之后已有所改变。本节将讨论这些功能及变化。

  将 Windows 2000 设置为应用程序服务器

  如果打算将服务器主要当作Web服务器使用,则将服务器计算机设为应用程序服务器是提高性能的最快方法。如此可让您利用较高的 SMP 缩放性、更高的网络性能,及更多 Web 应用程序物理内存的支持。对于执行 COM 的应用程序,则使用 Windows 2000 当作应用程序服务器也会对COM+ 有更多好处。此外,您可以将 COM+ 的交易处理功能当作一个交易监视器使用,以提高数据库应用程序的性能。Windows 2000 Server 会默认安装成文件服务器,因此您必须确定在安装过程中选择了应用程序服务器。不过,即使没有选取,在安装之后再将服务器设为应用程序服务器也很容易。若要选取︰

  1.    按一下 [开始],并指向 [设置] 后,再按 [网络和拨号连接]。
  2.    选取 [区域连接],并开启它的属性。
  3.    选取 [File and Printer Sharing for Microsoft Networks],并开启它的属性。
  4.    在 [服务器最佳化] 选项卡上选取 [网络应用程序的数据传输量最大化]。

  此设置将于重新启动服务器之后才生效。

  IISReset 公用程序

  IIS 5.0 提供一些新功能及默认设置,使得执行 IIS 5.0 的站点更加可靠且容易管理。其中第一个功能是新的 IISReset.exe,它是一个让您不必重新开机就能停止及重新启动 IIS 服务的公用程序。IISReset 在默认情况下会在它们失败时重新启动您的服务。您也可以使用 IISReset 从远程启动、停止或暂停您的服务,或视需要重新启动您的服务器计算机。您应该在没有办法时才重新启动。如果使用 IISReset 重新启动您的网络服务,用户会遭遇短暂暂停,此时他们只要按一下重新整理即可取得新网页。如果重新启动整台计算机,则无法使用的时间会更久。您也可以隔离您要停止的服务。例如,如果是在和Web服务器相同的计算机上执行 SMTP 服务器,则可选择只要停止并重新启动您的 Web 服务,而不是连SMTP 服务也跟着停止。

  您必须知道如果经常重新开机及重新启始(按Reset键)会有损于性能资料的完整性。如果使用 IISReset 自动重新启动服务,就比较不会发生这个问题,因此您应该不断地监视 [事件记录文件],以获取重新开机的情况。

  IIS 设置

  [AspProcessorThreadMax Metabase 的内容已改变。它原本在 IIS 4.0 中是称为 ProcessorThreadMax,而且是存在注册表(Registry)中,其默认值为 10。在 IIS 5.0 中的新默认值是 25 。这个设置是指每个处理器及每一进程︰在双 CPU 的系统上,每一进程中的工作线程数目可达 AspProcessorThreadMax 值的两倍之高,或高达 50 个工作自变量 (这是指在双 CPU 上的默认值的数目)。如果正在执行多个高度隔离的 ASP 应用程序,则每一个进程会有一组独立的工作线程。

  附注︰ASP 会以 CPU 个数加上 7 的工作线程数目开始。当 ASP 请求队列的大小超过某个临界值时,它会建立更多线程。

  AspThreadGateEnabled 内容已添加到 Metabase 中。它在默认值是关闭的。如果开启此内容,则 IIS 会执行线程传送,从而动态地控制当前线程的个数,以响应不同的负载状态。当 CPU 用量降到 50% 以下时,可能表示线程被阻断 (例如正在等待外部数据库传回查询的结果),或纯粹表示负载量低, IIS 5.0 会增加使用中的线程数目,以便实时服务其它请求。当处理器用量超过 80% 时 (代表高负载量),IIS 5.0 会撤消线程,以减少内容切换的数量。您可以设置上限及下限︰AspThreadGateLoadLow 默认是 50%;AspThreadGateLoadHigh 默认是 80 %。不管AspThreadGateEnabled 的值如何,ASP 进程的工作线程一定不会超过 CPU 个数乘以AspProcessorThreadMax。

  对于需要处理大量 ASP 的站点,最好是通过开启及关闭线程传送来测试它的性能,看看会有什么效果。根据您的观察作最后决定。对于主要是由静态文件组成的站点,请开启设置并监视服务器性能,看看传输量及响应时间是否有改善。

  IIS 5.0 也改变了 ASP Template Cache的默认行为。在 IIS 4.0 中,「ASP Template Cache」的限制默认为 -1。使用这个设置,缓存会增加到无限大。在含有大量 ASP 内容的网站上,「ASP Template Cache」常会用满服务器上所有的 RAM。相反地,IIS 5.0 默认限制是 250 个文件。因为每一个站点都有自己的需求,所以您应重设此限制,以符合您站点的特殊需要。或许要完成这项工作最简单的方式就是监视您在增减此值时,服务器的性能会有什么变化。因为在这个缓存中的一个项目可以指向「ASP Script Engine Cache」中一个或多个项目,只有在「ASP Script Engine Cache」中能找到 ASP 页中的脚本文件时才会达到最佳性能,所以绝对不要将「ASP Template Cache」的限制设为零。这样做可防止发生存取「ASP Script Engine Cache」的情况,因为要参照特定 .asp 文件的「ASP Script Engine Cache」项目只能通过此样本做到。因此,如果没有缓存任何模板,则「ASP Script Engine Cache」等于毫无作用。存取「ASP Script Engine Cache」的性能高于存取「ASP Template Cache」的性能,因此如果阻断了存取「ASP Script Engine Cahce」的机会,则除非您所有的网页都是静态网页,否则性能会严重受损。在从 IIS 4.0 迁移到 IIS 5.0,「ASP Script Engine Cache」的限制已从 30 个文件增加到125 个文件。若要判定是否需要改变缓存设置,应留意响应时间、队列中的 ASP 请求个数、内容切换的数目,以及 CPU 使用的容量。

  附注:「ASP Script Engine Cache」设置应至少等于服务器上 CPU 个数加上 1,再乘上 AspProcessorThreadMax 设置的值。

  此外,您应考虑调整IIS File Cache的默认值。您可以将这些设置添加到注册表中,以修改 IIS 5.0 的默认行为。您应考虑增加的第一个设置是 MemCacheSize 对象;如果它不存在于注册表中,则默认行为允许缓存最大增至可用物理内存的一半。这样才能确保 IIS 可以与非专用Web服务器上的应用程序适当地交互。尝试增加此限制 (以 MB 为单位指定) 并监视性能来看看是否能获得好处。您应考虑增加的第二个注册表对象是 MaxCachedFileSize。这个 IIS 默认行为允许缓存中的最大文件大小为 256KB。如果您的网站中有数个经常存取的大型 .jpg 文件,则可以提高这个限制,以测试大于 256KB 的缓存文件能否在您的站点上运行。请注意,如果文件大小是大约 200 到 300KB,则当您存取它们时,所得的性能提升将逐渐变小。对于较小的文件,从磁盘读取的负担比从「IIS 文件缓存」读取的负担来得更大。对于较大文件来说,您不会获得太多性能上的提升;只会浪费内存。IIS 会定期从最近未被请求的缓存文件中清除 (默认是最近 30 秒内)。此临界点是由ObjectCacheTTL (TTL 代表存留时间) 注册表设置决定的;此对象默认不出现在注册表中。如果您有足够的内存,则将此 TTL 调高会很有效。

  关于 IIS 及 ASP 如何使用缓存来处理连接请求的讨论,请参阅〈附录 3︰ASP 缓存〉。

  进程隔离

  IIS 4.0 介绍了在进程外执行 Web 应用程序的概念。这个功能为 Web 服务器建立了更高的稳定性,但也产生相当大的性能成本。在 IIS 5.0 中,进程外(out-of-process)应用程序的性能已获得改善,尤其是对 APS 更明显。不过,相较于 IIS 5.0 进程内(in-process)的应用程序,还是有些性能降级的现象。除了更高的性能外,在进程外(out-of-process)执行应用程序的概念也有所延伸。您现在可以在一个缓冲池的(pooled)进程外环境中执行 Web 应用程序。

  在 Web 服务进程中执行的应用程序 (Inetinfo.exe) 能产生更高的性能,但是因不良应用程序而导致 Web 服务无法使用的风险也更高。建议的设置是让 Inetinfo.exe 在自己的进程中执行、让负担重要任务的应用程序在自己的进程中执行 (高度保护),并让剩余的应用程序在一个共享的缓冲池进程 (中度保护) 中执行。若要获得最佳性能和可靠性,请以中度保护执行 ASP 应用程序,并将所有 COM+ 组件设置为链接库应用程序,而非服务器应用程序。

  如果决定在单独的进程中执行您的应用程序,或在单一的进程中执行其它应用程序,则必须从 ][主目录] 或 [虚拟目录] 属性页上的 [应用程序保护]下拉列表中选取 [高 (隔离的)] 或 [中 (缓冲池的)]。您应先建立一个应用程序目录并将它指定为「主目录」或「虚拟目录」(如果尚未这样做的话)。所有新应用程序默认会以中度保护执行。

  这些注册表设置及 Metabase 内容的相关信息,请参阅〈附录 1︰性能设置〉。本节中所提功能的相关信息,请参阅 IIS 5.0 及 Windows 2000 联机文档。

  调整及疑难排除的建议

  如果您判定需要处理特定硬件驱动的性能问题,请考虑使用下列建议。

  ·    升级到较大的「L2 缓存」。如果判定需要添加或升级处理器,请选择有大型 (L2) 缓存的处理器。例如 IIS 等服务器应用程序可以从大型处理器缓存中获益,因为它们的指示路径牵涉到许多不同的组件,而且它们必须存取大量资料。若想提升执行 IIS 5.0 的服务器的性能,建议您使用大量处理器缓存(如果是处理器外部的缓存,建议使用 2 MB 或以上,

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。