优化 Internet 信息服务 5.0

文章翻译 文章翻译
文章编号: 305313 - 查看本文应用于的产品
本文的发布号曾为 CHS305313
展开全部 | 关闭全部

本文内容

概要

本文中的信息由 Microsoft Press 提供。

本文解释如何优化 Microsoft Internet 信息服务 5.0,其中的信息基于特色文章,它们由 Microsoft Windows 2000 Server 资源工具包Internet Information Services Resource Guide (Internet 信息服务资源指南)一书的信息汇编而来,具体涉及到的章节有第 4 章:"Capacity Planning"(容量规划)和第 5 章:"Monitoring and Tuning Your Server"(监视和调整服务器)。请到此处了解有关 Windows 2000 Server 资源工具包的更多信息。

更多信息

如何才能使您的 Web 站点达到最佳性能?如果您所管理的 Web 站点和应用程序在 Microsoft Windows 2000 Server 和 Internet 信息服务 5.0 上运行,那么您已经获得了打造高性能站点所需的基本要素,这样的站点能够处理成千上万个并发事务。但是,优秀的平台并不意味着一定能获得优异的性能。如果用户向您抱怨站点的连接速度太慢,如果您的计算机在显示页面时莫明其妙地挂起,如果您打算换用 CPU 和内存配置更高的服务器,那么您首先需要了解,哪些是影响站点性能的因素,如何优化 IIS 5.0 达到最佳性能。

在本文中,我们将解释 IIS 5.0 使用系统资源的方式,并讨论如何调整 IIS 5.0 达到最佳性能。有关该主题的更多信息,请参阅 Microsoft Press 书籍Microsoft Internet Information Services 5.0 Resource Guide(Microsoft Internet 信息服务 5.0 资源指南),它属于 Microsoft Windows 2000 Server 资源工具包,其中详细介绍了如何对 Web 站点进行所需的调整,使其达到最佳性能。不过,我们在本文中先为您提供一些入门信息。

Web 站点性能不佳的原因

什么原因导致 Web 站点速度缓慢?对此问题的回答很多,但归纳起来无非以下几点:
  • Web 站点的硬件配置
  • Web 服务器软件的配置
  • Internet 连接带宽
  • Web 应用程序的设计和配置
  • 用户计算机及其连接的性质
有一点麻烦的是,如果您是 Web 管理员,您并不能控制所有这些因素。Internet 连接带宽很可能取决于预算开支。对 Web 应用程序的设计,您也不能有太大的改动,即使这些程序由内部人员开发时,也是如此。另外,您显然不能控制用户。尽管如此,仍然有许多能做的事情,就让我们从您的服务器开始吧。

优化服务器

优化 Web 服务器性能主要是要求您估算出内存、处理器、硬盘和网络 I/O 的优化配置。尽管您可能认为,在所有情况下,更多总是更好,但实际情况却是导致更为复杂的配置。

内存

您希望优化服务器吗?只需要多加一些内存!大家不都这么说吗?如果遇到性能问题,多加一些内存就能解决,对吗?如果真是那样,那这篇文章写到这里也就该结束了。在一定程度上讲,增加内存确实有帮助。实际上,许多看起来像处理器或硬盘瓶颈的问题其实就是内存问题。但是,除此以外,增加内存并不会带来任何好处。不过,对于提升 IIS 性能来讲,优化内存仍然是第一种,通常也是最方便的一种方法。

您一定要记住,IIS 在 Windows 2000 Server 上运行并继承了它的内存管理。这意味着,大部分内存优化都是自动进行的。Windows 2000 Server 调整进程和线程的可用内存量,同时也调整缓存大小、分页和未分页的内存缓冲池大小,以及分页文件的大小,以此来提供最佳性能。为 IIS 优化内存时,您不必过多地考虑分配给每个进程、线程或缓存的内存量,因为 Windows 2000 足以能够自动调整它们之间的内存分配。

如何查明服务器是否有足够内存?让我们先考虑一下内存在 IIS 5.0 Web 服务器中的作用。Windows 2000 Server 向每个进程分配相应的内存块区(也称为工作集),由此来控制内存。几乎在所有情况下,进程内的各个线程都使用从该工作集分配的内存。随着进程的增长,Windows 2000 向它的工作集添加更多内存,以满足它的内存需求。所分配的大多数内存都是可分页的,这意味着该内存中的数据可以临时存储在硬盘上,然后在需要时再重新调用到 RAM 中。但是,某些线程(如 TCP/IP 连接)需要不可分页的内存,该内存必须为实时 RAM,而不是硬盘上的文件。随着连接数量的增加,以及对不可分页的内存需求量的增长,系统将耗尽所有可用内存,无法再分配任何内存。此情况可能导致系统崩溃,实际上,它正是某些拒绝服务攻击的运行方式。

与 Windows 2000 Server 上运行的其他程序一样,IIS 5.0 也是进程:inetinfo.exe。因此,它有工作集。属于 IIS 的工作集包括以下各项的空间:程序代码自身、活跃的 TCP/IP 连接、IIS 对象缓存、IIS 日志文件,以及 HTTP 连接数据结构。程序代码最多可占用 2.5 MB RAM,工作集的其他元素大小不一,具体取决于同时连接的用户数(每个 TCP/IP 连接约 10 KB,加上 HTTP 数据就需要更多 RAM),寄宿于服务器上的 Web 站点数(每个站点至少 64 KB 内存映射的日志文件)。除了 inetinfo.exe 自身的工作集外,IIS 使用 IIS 模板缓存、IIS 脚本引擎缓存和 IIS 文件系统缓存,这是默认位于 inetinfo.exe 外的三个缓存,但可以配置它们在 inetinfo.exe 内运行。IIS 同时还使用 TCP 传输控制块哈希表和线程池来执行代码。这些元素在 inetinfo.exe 之外,它们必须驻留在非分页内存中,您绝对需要足够的 RAM 来存留这些元素。

您可以使用性能监视器中的计数器来跟踪系统和 inetinfo.exe 自身使用的内存。IIS 5.0 Resource Guide(IIS 5.0 资源指南)的第 5 章"Monitoring and Tuning Your Server"(监视和调整服务器)列出了大量可用的计数器。最主要的一些计数器如下:
  • 计算机名\内存\可用内存 - 该计数器跟踪系统中的可用内存总量。操作系统尝试将该值保持在 4 MB 以上。为了达到最佳性能,该值最好为内存总量的 5%。
  • 计算机名\进程\工作集:Inetinfo - 该计数器跟踪 inetinfo.exe 自身所使用的内存量。它只提供最新的值,但如果对它观察一段时间,就能了解 IIS 的内存使用情况。
  • 计算机名\进程\页面错误/秒.:Inetinfo - 该计数器跟踪服务器在每秒钟内将 inetinfo.exe 分页到硬盘上的次数。该数字越小越好。
总体说来,需要了解整个服务器的内存用量,以及 IIS 自身的内存用量。您至少需要有足够的内存将所有 inetinfo.exe 保留在 RAM 中而不分页到硬盘上,外加足够的 RAM 来运行缓存和工作集之外的其他不可分页项。除此以外,您还需要估算所运行的 Web 应用程序需要的内存量。(例如,Microsoft 的大多数 Web 服务器至少需要将 512 MB 内存用于 Web 应用程序。)最后,您应该在系统中安排足够的内存来存储 Web 站点上的静态页,以便加快这些页面的检索和显示速度。对计算机的内存使用情况监视一段时间,同时也监视高负载下的内存使用情况,您就可以知道系统中到底应该具备多少内存。

处理器

优化内存之后,您可能发现运行速度并没有显著提高。别着急,您还可以进行其他调整:处理器是另一个潜在的瓶颈。首先优化内存的原因是避免将内存问题误认为处理器问题。例如,如果服务器没有足够的内存,它在将线程分页到硬盘时会耗用更多的时间,这段分页时间加大了处理器负载,看起来像是处理器过载就是导致性能不佳的原因。

再次重申一次,性能监视器提供了很多非常有用的信息。尽管有多个计数器值得监视,(参见Resource Guide(资源指南)的第 5 章),但最重要的计数器是"系统 \ 处理器队列长度"。该计数器表示正在等待使用处理器的线程数。如果该计数器值在长时间内大于 2,说明处理器中可能出现瓶颈。

对于正在日益成为标准的多处理器服务器,您应该从另一个方面来考虑:处理器负载平衡。系统中的某个处理器使用率为 100%,而其他处理器却处于空闲状态,即使"系统\处理器百分比时间"计数器值很低,这仍然是瓶颈,因为计数器默认记录系统中所有处理器的平均值。为了得到正确结果,您必须对每个单独的处理器运行"系统\处理器百分比时间"计数器。

如果测试确定存在处理器问题,您的第一个选择当然就是将处理器升级或切换到多处理器计算机。如果确定要升级处理器,应确保它有最大的 L2 缓存,IIS 将因此而受益,因为它的许多指令路径都包括多个组件,它们在高速缓存中运行时速度会大大加快。IIS 5.0 Resource Guide(IIS 5.0 资源指南)为您提供了优化处理器的更多指南。

硬盘

您可以对服务器的硬盘配置进行很多调整,使硬盘的使用更有效。因为硬盘是分页内存的储存库,所以服务器处理分页文件的方式也就成为重点考虑的一个方面。让我们一起来考虑一下这个方面及其他几点:
  • 加大分页文件。理想情况是有一个主分页文件,它的大小至少为系统内存的两倍再加 1 MB。计算机需要这一空间在崩溃时执行内存核心转储。
  • 增加分页文件数量。默认有一个分页文件,但您可以也应该在系统中的每个硬盘上设置分页文件。
  • 使用硬盘条带化提高分页文件性能。如果将主分页文件放在条带化硬盘集 (RAID 0) 或带奇偶校验的条带化硬盘集 (RAID 5),您将发现分页文件性能大大提高。
  • 不要将日志文件与 Web 页存储在同一个硬盘上。这将阻止硬盘日志记录线程干预检索 Web 页的线程。
  • 优化 Web 页存储。站点上的所有相关 Web 页应该存储在同一个逻辑分区,这样可以提高文件系统缓存的性能。同时,Web 页文件不应有任何碎片,这样可以极大地加快读取单个文件的速度。

服务器配置选项

除了硬件优化外,服务器软件配置也对性能有着很大的影响。此处的游戏名称是"提高速度"。Microsoft Windows 2000 Server and IIS 5.0 Administrator's Pocket Consultant (Microsoft Windows 2000 Server 和 IIS 5.0 管理员随身顾问)是一本非常好的速查参考,其中提供了与此主题有关的指南,它由 Microsoft Press 提供。您的 Web 服务器是否由 IIS 专用?如果不是,则需要更改一些配置。如果您尝试将 Web 服务器用于其他网络服务,请不要这样做,而将那些服务放到另一台计算机上,将 IIS 服务器专用于 Web。完成后,您需要在该计算机上停止运行一些服务:
  • 警报器
  • 剪贴簿
  • 计算机浏览器
  • DHCP 客户端
  • DHCP 服务器
  • 传真服务
  • 文件复制
  • INfrared 监视器
  • Internet 连接共享
  • Messenger
  • NetMeeting 远程桌面共享
  • 网络 DDE
  • 网络 DDE DSDM
  • NWLink NetBIOS
  • NWLink IPX/SPX
  • 打印后台处理程序
  • TCP/IP NetBIOS 支持服务
  • 电话
  • Telnet
  • 不间断电源
当然,停止上述任何服务之前,应该先双击该服务,检查是否的确已不需要该服务。

此外,您可以对服务器配置进行其他优化设置。例如,默认情况下,IIS 5.0 最多使用服务器内存的 50%。该默认设置使您能够在服务器上运行所需的其他应用程序。如果将该服务器专用于 IIS 并去除了不必要的服务,则可增加这一百分比,方法是在 Windows 注册表中创建并设置 MemCacheSize 项。另一个可调整的设置是"文件和打印机共享"下的"服务器优化"属性:将它设为"最大化网络应用程序数据吞吐量",服务器将在文件系统缓存需要更多空间时,将 inetinfo.exe 保留在内存中,而不分页到硬盘上。此外,您还可以调整 HTTP 连接的连接队列最大长度,如果超过默认值 15,则可以增加在服务器上的会话之间保持开放 HTTP 连接的客户端数量,从而帮助减少必须生成的新连接数。Resource Guide(资源指南)和 Administrator's Pocket Consultant(管理员随身顾问)提供了更多可调整的系统设置,供您优化配置。

备注:如果 IIS 服务器是域成员,则必需 TCP/IP NetBIOS 支持服务,以便将组策略正确地应用到计算机中。

优化网络带宽

在优化网络 I/O 方面,我没有太多要讲的内容,因为现实情况是,大多数单位购买他们所能支付的带宽,每个人都知道带宽越宽,Web 站点能够服务的客户端也就越多。多数情况下,带宽都是一笔不小的长期支出,它是在您控制范围以外的预算问题。不过,您应该知道 Resource Guide(资源指南)提供了一些非常实用的信息,说明如何使用性能监视器来跟踪 Web 站点的网络带宽使用情况。您可以分析服务器对可用带宽的使用情况,从而了解是否需要购买更多带宽。

优化 Web 应用程序和 Web 页

调整完硬件和软件,购买了能够支付的所有带宽之后,您还能做什么?这在很大程度上取决于您对 Web 站点设计的影响力。如果您控制 Web 站点的构建,则可以执行以下建议,否则考虑将这些建议转达给 Web 站点开发人员和管理团队。

首先,分析 Web 站点内容并尽量采用静态 HTML 的格式。虽然您的确需要动态用户交互,但经常您会发现许多页面实际没有必要,因为存储几个不同的静态页同样够满足用户的不同需求。与其他内容相比,静态内容显示更快捷,因为它们不需要服务器处理。

由于服务器处理资源非常宝贵,因此下一步就是减少服务器为生成动态页而处理脚本和数据的时间。最耗用服务器处理时间的脚本是 CGI,CGI 脚本比 ASP 脚本占用的处理资源多,ASP 又比 ISAPI 占用的资源多。因此,您应该尽可能将 CGI 脚本转换为 ASP,将 ASP 转换为 ISAPI。

下面是一些提示:
  • 关闭应用程序调试!调试大大减慢 Web 站点的运行速度。
  • 在所有静态 Web 页和图像上设置过期标头。该设置允许客户端和代理服务器缓存内容,意味着进入服务器的新请求更少。
  • 启用 ISAPI 应用程序缓存。该策略将常用 ISAPI 应用程序放在内存中,这样它们的访问速度将更快。
  • 如果可以,启用 ASP 输出的缓存。
  • 关闭会话管理,只为真正使用会话的服务打开会话管理。默认为所有服务打开会话管理,如果应用程序不使用会话,这样做就是浪费资源。同时,还应设置适当的会话超时值。
  • 设置相应的脚本和连接超时值,确保僵停的脚本和打开的连接不会耗尽服务器资源。
  • 减小内容大小。确保 HTML 和 ASP 代码干净简单,没有因过多的注释和冗余标记而显示混乱不堪。压缩视频、音频和图像文件。页面越小,传送速度越快。
  • 设计 ASP 或 ISAPI 应用程序时,应该尽量进行客户端处理,这有助于减少对服务器资源的占用。
  • 设计客户端交互操作时,客户端与服务器之间的数据读写操作越少越好。例如,对整个数据集进行一次大的查询比每次对几个数据或字段进行多个小查询要好;类似地,如果可以,用户输入的数据应该通过一次发送操作传送,而不是单独向服务器发送每个数据项。

Microsoft Press 解决方案

现在您该明白,为了完全优化 IIS 5.0 Web 服务器的性能,您有很多工作要做了吧。所幸的是,Microsoft Press 在这方面为您提供了大量帮助。Press 书籍将帮助您了解系统性能的参数,了解如何优化服务器达到最佳性能。请参阅这些书籍:
  • Microsoft Internet Information Services 5.0 Resource Guide(Microsoft Internet 信息服务 5.0 资源指南),它属于 Microsoft Windows 2000 资源工具包(参见下文),介绍如何监视和调整系统性能。请参阅第 5 章"Monitoring and Tuning Your Server"(监视和调整服务器)和第 4 章"Capacity Planning"(容量规划)。
  • Microsoft Windows 2000 and IIS 5.0 Administrator's Pocket Consultant(Microsoft Windows 2000 和 IIS 5.0 管理员随身顾问)是专为系统管理员准备的速查参考。请向 Pocket Consultant(随身助理)查询执行系统管理任务的快速指南。有关 Web 服务器性能调整的提示,请参见第 12 章"IIS Optimization and the Metabase"(IIS 优化和配置数据库)。
  • Microsoft Windows 2000 Performance Tuning Technical Reference(Microsoft Windows 2000 性能调整技术参考)提供有关 Windows 2000 性能调整的完整信息。请参阅第14 章,了解如何面向 Internet 调整 Windows 2000 Server。
最后,这是每一个 IIS 5.0 和 Windows 2000 系统管理员都不可或缺的 Windows 2000 参考和教程:
  • Microsoft Windows 2000 Server Administrator's Companion(Microsoft Windows 2000 Server 管理员手册)详细说明如何安装、配置、管理和支持 Windows 2000 Server,包括虚拟专用网络 (VPN)。(参阅第 31 章)
  • MCSE Training Kit:Microsoft Windows 2000 Server (MCSE 培训工具包:Microsoft Windows 2000 Server)是由 Microsoft Press 发行的正式学习指南,专用于准备 Windows 2000 Server 考试 (70-215)。此书介绍如何设置和支持 Windows 2000 Server。有关 VPN 的范围,请参见第 10 章"Routing and Remote Access Service"(路由和远程访问服务)。
  • Microsoft Windows 2000 Server Resource Kit(Microsoft Windows 2000 Server 资源工具箱)包含 Microsoft 为 Windows 2000 Server 提供的完整参考。该参考集由几下七本指南组成:
    • Server Operations Guide(服务器操作指南)
    • Distributed Systems Guide(分布式系统指南)
    • TCP/IP Core Networking Guide(TCP/IP 核心网络指南)
    • Internetworking Guide(网络互联指南)
    • Deployment Planning Guide(部署规则指南)
    • Internet Information Services 5.0 Resource Guide(Internet 信息服务 5.0 资源指南)
    • Internet Explorer 5 Resource Kit(Internet Explorer 5 资源工具包)

有关 Microsoft Press 出版的 Windows 2000 学习与培训主题的完整列表,请访问 Windows 2000 section(Windows 2000 专区)。有关 .NET 企业级服务器的材料,请参见 .NET section(.NET 专区)。

参考

本文中的信息摘自 Windows 2000 Server 资源工具包 丛书,它由 Microsoft Press 出版。

收起这个图片展开这个图片
 Picture of Windows
		  2000 Server Resource Kit book


请到此处了解有关 Windows 2000 Server 资源工具包 的更多信息。

有关本文及其他 Microsoft Press 出版物的更多信息,请访问 http://mspress.microsoft.com

属性

文章编号: 305313 - 最后修改: 2006年9月26日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Internet 信息服务 5.0
关键字:?
kbgraphxlink kbhowto KB305313
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com