新一代应用程序对 Web 服务器的性能和可伸缩性提出了更高的要求。如果增加 HTTP 请求的处理速度并允许在一个服务器上运行更多的应用程序和站点,则可以直接减少宿主站点所需的服务器。下面列出包含在 IIS 6.0 中的几个性能改进。
Windows Server 2003 家族成员中的超文本传输协议 (HTTP) 栈以一个名为 HTTP.sys 的内核模式设备驱动程序形式来实现。HTTP.sys 是 Windows Server 2003 家族所特有的新功能,它是网络子系统的一部分。IIS 是一个用户模式进程,它与内核处理在完全不同的执行模式下运行。HTTP.sys 是所有传入(服务器端) HTTP 请求的单个联系点,它为 HTTP 服务器应用程序提供高性能的连接性。HTTP.sys 还负责进行总体连接管理、带宽控制和基于文本的日志记录。HTTP.sys 实现灵活的通用资源标识符 (URI) 响应缓存(名为可伸缩缓存),允许 HTTP 应用程序完全在内核模式(而不转换到用户模式)下缓存静态数据并为缓存的 HTTP 请求提供服务。HTTP.sys 实现一个名为应用程序池的 URI 名称空间映射机制。利用应用程序池,HTTP 应用程序可声明 URI 名称空间的多个部分,从而允许 HTTP.sys 将 HTTP 请求直接路由到相应的 HTTP 应用程序。基于这些更改,IIS 已经提高了多处理器计算机的吞吐量和可伸缩性,从大大增加了:
Active Server Pages (ASP) 处理包含 ASP 脚本的模板、将处理过的模板存储在缓存中并充当客户的缓存模板。在默认情况下,可在内存中缓存 250 个模板。如果一个站点大量使用 ASP,则该内存中模板缓存不能存储所有必需的模板。IIS 包括持续的缓存,因此如果内存中缓存的空间不足时,会将模板缓存到磁盘中。如果再次请求该 ASP 页,则 Asp.dll 无需重新编译源代码即可从磁盘中加载编译过的模板。因为缓存的 ASP 模板不会在每次调用时都进行处理,所以 ASP 模板缓存增强了性能。通过更改具有低(进程中)应用程序保护和中(共用)应用程序保护的所有应用程序的缓存模板数,或者单独更改具有高(独立)应用程序保护的应用程序的缓存模板数,可进一步改善性能。
详细信息,请参阅配置 ASP 应用程序。
IIS 异步处理通用网关接口 (CGI) 的实现,从而消除了阻挡 CGI 处理响应的可能。
IIS 的容量计划跟踪功能针对 ASP 脚本资源的使用情况(如 HTTP 响应/请求次数)来跟踪应用程序的工作负荷。可在不同的工作负荷和不同的硬件配置下收集和分析事件跟踪数据,然后使用这些数据帮助计划容量。
集中的二进制日志记录允许以不带格式的二进制方式将多个站点写入单个日志文件中。因为数据不必设置为任何特定格式(如 W3C 扩展、IIS 或 NCSA 格式),所以这种日志记录格式改善了性能。利用 Microsoft SQL Server™ 支持,多台计算机可将日志放在一个集中的数据库中。
服务质量 (QoS) 包含一组方法或进程,基于服务的组织实现它们以维护特定的质量级别。在 Windows 环境中,QoS 是一组服务要求,网络必须满足这些要求才能确保适当服务级别的数据传输。QoS 的目标是为了确保特定站点或应用程序不独占服务器资源,如内存或 CPU 周期。作为管理员,您可以通过用 IIS 实现的连接限制和超时、应用程序池队列长度限制、带宽控制和进程记帐来控制为用户提供的服务的级别和质量。
如果 Web 服务器使用的网络或 Internet 连接也被其他服务使用,例如电子邮件或新闻,则可能希望限制带宽以便带宽可用于其他服务。如果 Web 服务器作为多个网站的宿主,您可以单独控制每个站点使用的带宽。
CPU 监视是一个用来监视和自动关闭占用大量 CPU 资源的工作进程的工具。CPU 监视针对单个应用程序池启用。CPU 监视工具还有助于确定哪些站点具有不能正常运行的脚本或 CGI 进程。
在 x86 系统上,IIS 6.0 可配置为最多缓存 64 GB。