应用程序请求路由的部署建议

作者:Won Yoo

此文档部分适用于用于 IIS 7 及更高版本的 Microsoft 应用程序请求路由版本 2

目标

强调和了解应用请求路由 (ARR) 的部署建议。
本文更像是一篇部署 ARR 版本 2 的最佳做法文档,而不是一篇典型的演练文章。

先决条件

本文假定你已熟悉 ARR 的整体功能,并了解如何使用磁盘缓存部署和配置 ARR。 如果尚未这样做,强烈建议在继续操作之前查看以下演练:

如果尚未安装应用程序请求路由版本 2,可在以下位置下载:

  • 适用于 IIS 7 (x86) 的 Microsoft 应用程序请求路由版本 2 (https://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE)。
  • 适用于 IIS 7 (x64) 的 Microsoft 应用程序请求路由版本 2 (https://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE)。

请按照这篇文档中概述的步骤安装 ARR 版本 2。

步骤 1 - 禁用应用程序池空闲超时。

应用程序池空闲超时是一项 IIS 功能,可在应用程序池处于非活动状态时将其关闭。 默认情况下,该量设置为 20 分钟,表示:

工作进程在关闭之前保持空闲状态的时间(以分钟为单位)。 如果工作进程未处理请求并且未收到新请求,则该工作进程处于空闲状态。

IIS 中此功能的目的是重新利用应用程序池使用的资源,并在应用程序池空闲时回收这些资源。 如果 IIS 服务器用于托管多个站点和应用程序,并且配置为跨站点和应用程序共享资源,则该功能非常有用。

在典型的 ARR 部署方案中,情况并非如此,你实际上希望 ARR 的应用程序池始终运行。

安装应用程序请求路由版本 2 一文介绍了禁用应用程序池空闲超时的步骤。

步骤 2 - 禁用应用程序池回收条件。

应用程序池回收是 IIS 的一项功能,可以定期回收应用程序池。 如果对在应用程序池中运行的应用程序没有高度信心(即在共享托管环境中,最终用户将直接部署应用程序),并且如果重启应用程序池将有利于应用程序的功能和稳定性,则此功能非常有用。 (例如,应用程序可能存在缓慢的内存泄漏。与其无限期地运行应用程序,不如定期回收应用程序,以减少代码缺陷。)

当然,这对于 ARR 的用例来说并不理想,因为你希望 ARR 始终可用(并且始终快速响应)。

安装应用程序请求路由版本 2一文介绍了禁用应用程序池回收条件的步骤。

步骤 3 - 将缓存驱动器位置与系统驱动器分开。

虽然 ARR 支持文件夹形式的缓存驱动器位置,但强烈建议将缓存驱动器位置与系统驱动器分开。 这是因为当缓存内容的数量增加到数百万个对象(甚至数十亿个对象)时,对它们的管理将是一项代价高昂的 I/O 操作。 正如删除缓存的对象一文所述,从所有主缓存驱动器位置删除所有缓存对象可能需要很长时间,快速格式化驱动器可能是更好的选择。 当然,若要执行此操作,需要将缓存驱动器位置与系统驱动器分开。

为了获得最佳性能,建议以物理方式将缓存驱动器位置与系统驱动器分开。 此外,还建议缓存驱动器位置使用高 RPM 驱动器 (15K RPM),以获得更好的性能。 如果只有一个物理驱动器,仍建议将系统驱动器与缓存驱动器位置分开。 可以使用“服务器管理器”下的“磁盘管理”将同一物理驱动器分区为多个卷

步骤 4 - 禁用 8.3 名称创建。

在 NTFS 分区上为所有长文件名和目录创建 8.3 文件名和目录可能会降低目录枚举性能。 由于 ARR 大量使用磁盘驱动器来实现其缓存功能,因此建议禁用 8.3 名称创建。

在 Windows Server 2008 上,只能对整个服务器禁用 8.3 名称创建。 更明确地说,不能按卷配置此设置。

在 Windows Server 2008 R2 上,可以按卷配置此设置。

有关 NTFS 的 8.3 名称创建的详细信息,请参阅 KB121007。 若要简单禁用 8.3 名称创建,请在命令提示符下键入 fsutil.exe Behaviour SetDisable8dot3 1,然后按 Enter