65.9K
CodeProject 正在变化。 阅读更多。
Home

IIS 6.0 上的应用程序池

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.36/5 (8投票s)

2009年7月12日

CPOL

3分钟阅读

viewsIcon

55870

使用应用程序池提高您的 Web 应用程序性能。

引言

本文介绍了 IIS 6.0 中引入的应用程序池和 Web 园的概念,以及如何调整 IIS 6.0 以获得更好的性能。 我试图使其简单而简短,同时又内容丰富。

基本原理

什么是应用程序池?

IIS 可以将单个 Web 应用程序或多个站点隔离到与操作系统内核直接通信的独立进程(称为应用程序池)中。

什么是 Web 园?

IIS 6.0 工作进程隔离模式还允许配置多个工作进程来为给定的应用程序池提供请求服务。 这种配置称为 Web 园。

IIS 6.0 架构

下图以最简单的形式描述了 IIS 6.0 架构。 与以前版本的 IIS 不同,有多个进程(应用程序池)彼此独立运行。 这种(进程隔离)的最大优点是,在共享托管环境中,当某个网站因负载过重而崩溃时,不会影响在不同应用程序池下运行的其他网站。

此外,IIS 6.0 管理器允许您限制应用程序池可以使用的最大内存。 它还允许您配置与应用程序池的性能和健康状况相关的参数。

使用此功能的优点

  • 这些独立的应用程序池可以防止应用程序或站点中断服务器上的 XML Web 服务或其他 Web 应用程序。
  • 操作系统资源(内存、CPU 使用率等)分配。
  • 隔离提高了吞吐量,并增加了应用程序的容量。
  • 在服务器上提供更多空间,从而减少硬件需求。
  • 通过 Web 园和处理器亲和性,提高应用程序的吞吐量和容量。

影响 IIS 6.0 上 Web 应用程序可靠性和可用性的其他设置

  • 健康监控
  • 自动进程回收
  • 快速失败保护

案例研究(基于我的经验)

我使用过一个 Web 服务(5 个实例,对应 5 个不同的客户端),该服务托管在 IIS 5.1 上时,每天处理 9 万个请求,并在不到一毫秒的时间内达到 3 个请求的峰值。 但是,随着流量开始缓慢增加,应用程序在高峰时段变慢,无法在不到一秒的时间内处理 3 个请求。

相同的 Web 服务部署在 IIS 6.0 上。 为每个客户端实例创建了一个应用程序池,具有不同的资源设置(基于该特定客户端的预期负载)。 令我们惊讶的是,具有相同硬件和相同应用程序的服务器能够在不到一毫秒的时间内处理每天 30 万个请求,峰值为 12 个请求,没有任何问题。

注意事项

  • 过多的工作进程可能会降低 Web 应用程序的速度。
  • 资源分配不当可能会降低 Web 应用程序的性能。
  • 对运行状况监视和回收参数的不正确调整可能会降低 Web 应用程序的性能。

关注点

使用相同的硬件,如果您利用 IIS 6.0 并以正确的方式配置应用程序池,则可以在 Web 应用程序/服务性能方面获得令人难以置信的改进。

参考文献

© . All rights reserved.