日期:2009-06-27  浏览次数:20957 次

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 会定期从最近未被请求的缓存文件中清除 (默认