Exchange Server 2003 的性能和可伸缩性功能

 

上一次修改主题: 2011-02-16

为了提高 Exchange 组织的性能和可伸缩性,Microsoft® Exchange Server 2003 提供了下列新增功能或改进功能:

  • SP1 新增功能:改进的对多处理器的支持
  • SP2 新增功能:改进的脱机通讯簿性能
  • 改进的通讯组缓存
  • 禁止“外出”邮件发送到通讯组成员
  • 增强的、基于 DNS 的 Internet 邮件传递
  • 改进的 Microsoft Office Outlook® 同步性能
  • 改进的 Outlook Web Access 性能
  • 监视 Outlook 客户端性能
  • 链接状态改进
  • 虚拟地址空间改进
  • 使用 Exchange 系统管理器更改 MTA 文件目录位置
  • 使用 Exchange 系统管理器更改 SMTP mailroot 目录位置
  • 优化 Exchange Server 2003

本章将详细讨论上述每个主题。

有关对可靠性的改进(密切相关的主题)的信息,请参阅“Exchange Server 2003 的可靠性和群集功能”。

以前,当后端服务器的处理器数量超过四个时,Exchange 服务器性能的改进余地很小。使用的处理器超过八个时,即使在最好的情况下,其性能改进的余地也很小,实际上,其性能有时会更差。随着新型计算机上使用的处理器类型的发展,附加处理器产生的性能增加范围的减小变得越来越显著。

使用 Exchange Server 2003 Service Pack 1 (SP1),可大大改进附加处理器的可伸缩性。启用超线程时,现在八个处理器的服务器性能比四个处理器的服务器性能提高了 50%。现在,使用八个处理器的计算机作为后端服务器在许多方案中都是比较适合的。但是,仍然建议使用两个处理器的服务器作为前端服务器。

在 Exchange Server 2003 SP2 中,对脱机通讯簿性能进行了改进。具体地说,这些改进有助于最大程度地减小网络对用户下载脱机通讯簿信息的影响。

note注意:
若要实现这种增强的性能,Exchange 客户端必须运行 Microsoft® Office Outlook® 2003 Service Pack 2 (SP2) 或更高版本。

下表说明了其中的一些改进:

  • 少数几种情况会导致电子邮件客户端下载完整的脱机通讯簿。具体地说,SP2 中的更改确保客户端执行脱机地址列表的差异下载,而非完整下载。差异下载不会像完整下载那样影响网络性能和客户端性能。
    important重要提示:
    在某些情况下,虽然 Exchange Server 确定差异下载更有效,但是 Exchange Server 可能无法为 Outlook 2003 SP2 之前版本的客户端生成差异文件。在 Exchange Server 2003 SP2 之前的 Exchange Server 版本中,如果无法生成差异文件,则始终强制执行完整的脱机通讯簿下载。不过,如果此情况发生在运行 Exchange Server 2003 SP2 的服务器上,则 Exchange Server 将改为记录一个表明它无法生成差异文件的事件,而不会生成完整的脱机通讯簿文件。在这种情况下,除非该问题得到解决,否则用户将无法接收脱机通讯簿更新。该事件中的描述会指明目录中的哪些更改引起了该问题。如果您注意到该目录中的更改是有意进行的,则可能要考虑更改脱机通讯簿服务器的默认行为,以便在无法生成差异下载时生成完整的脱机通讯簿下载。若要更改此设置,必须编辑该事件日志消息中指定的 Windows 注册表。有关如何配置此设置的信息,请参阅 Exchange Server 2003 SP2 联机帮助中的“无法生成差异文件时生成完整的脱机通讯簿下载”。对于运行 Outlook 2003 SP2 或更高版本的客户端,更改脱机通讯簿格式可以解决使服务器停止生成差异文件的那些问题。对于使用新脱机通讯簿格式的客户端,服务器绝不会由于不生成差异文件而试图强制执行完整的脱机通讯簿下载。但是,如果差异文件的大小大于完整的脱机通讯簿大小,则客户端可能仍决定执行完整下载。
  • 与没有安装 SP2 的服务器相比,在安装了 SP2 的服务器上,完整的脱机通讯簿下载在大小方面明显减小。这些改进是通过为脱机通讯簿文件采用改进的压缩机制而实现的。
  • 脱机通讯簿的索引编制是基于客户端的区域设置(语言和国家)。这使得同一台服务器上的用户(具有不同的区域设置)可以正确地查看脱机通讯簿,因为脱机通讯簿基于区域设置而不是服务器进行排序。
  • 利用诊断日志记录的改进,可以更方便地通知在脱机通讯簿下载时可能出现的问题。具体地说,已经添加了一些事件以帮助您监视下列问题。
    • 当从脱机通讯簿中至少删除一个属性时将记录一个警告事件,因为脱机通讯簿超过了其大小限制。
    • 每当一条记录被更改时将记录一个信息事件,因为某些属性超过了其大小限制。
    • 当生成差异下载失败时将记录一个错误事件。
  • 通过允许您指定在脱机地址列表下载文件中限制其大小的属性类型,可以管理脱机通讯簿下载文件的大小。若要实现此操作,在注册表中,可以指定各个属性类型的最大大小(字节)。事件会记录在应用程序日志中以便帮助您跟踪对这些设置的更改。有关如何管理脱机通讯簿下载文件大小的信息,请参阅 Exchange Server 2003 SP2 联机帮助中的“管理脱机通讯簿文件大小”。

Exchange 2000 Server 和 Exchange Server 2003 在发送邮件之前使用规则缓存来查找通讯组成员身份。在 Exchange 2003 中,已经对规则缓存进行了优化。其结果是减少了查找通讯组成员身份所需的处理时间。这一新功能重新设计了缓存,以便更高效地完成查找、插入和过期等任务,其结果是将与通讯组相关的 Microsoft Active Directory® 目录服务查询减少了 60%,因此大大提高了性能。

重新设计缓存带来的直接好处是略微降低了 Active Directory 的使用率(通讯组查找只占全部 Active Directory 查找的一小部分)。

在 Exchange 的早期版本中,如果创建了“外出”邮件,则将该邮件发送给出现在“收件人”或“抄送”行上的任何通讯组的所有成员。在 Exchange 2003 中,“外出”邮件不会发送给出现在“收件人”或“抄送”行上的通讯组的所有成员,而只发送给已经在传入邮件的“收件人”或“抄送”行上指定的各个用户名。

此更改是在确定以下情况之后实施的:将电子邮件发送到通讯组的用户通常不希望从通讯组成员接收“外出”邮件。此更改为 Exchange 服务器提供了较小的性能好处;具体说来,它略微降低了 CPU 的使用率。

在 Exchange 2003 中,增强了基于域名系统 (DNS) 的 Internet 邮件传递。具体地说,基于 DNS 的 Internet 邮件的负载平衡现在变得更有效率。此外,Exchange 2003 还改进了在网络和主机不可用性以及外部 DNS 服务器无响应性方面的容错能力。

此更改为 Exchange 服务器提供了性能好处;具体地说,基于 DNS 的 Internet 邮件传递变得更加可靠。

对于 Outlook 2003 用户,Exchange 2003 改进了最终用户体验。

下面说明了在 Exchange Server 2003 与 Outlook 2003 通信方面的改进:

  • 减少了更改通知数。
  • Exchange 2003 会检测要进行同步的邮件的本机格式(如 HTTP),并仅以该格式将邮件发送到客户端。
  • 改进了 Outlook 客户端请求同步(包括嵌套文件夹层次结构)的情况。
  • 用户现在会收到一封指出要下载邮件的数目和大小的邮件。
  • Exchange 2003 执行数据压缩以减少在 Outlook 2003 客户端和 Exchange 2003 服务器之间发送的信息量。
  • Exchange 2003 减少了在使用 Outlook 2003 的用户和 Exchange 服务器之间发送的信息请求总数。

Exchange 2003 提高了以缓存 Exchange 模式工作的用户的 Outlook 同步性能。

下面列出了一些与以缓存 Exchange 模式运行的 Outlook 客户端相关的性能增强:

  • 减少了更改通知数。
  • Exchange 2003 会检测要进行同步的邮件的本机格式(如 HTTP),并仅以该格式将邮件发送到客户端。
  • 改进了 Outlook 客户端请求同步(包括嵌套文件夹层次结构)的情况。
  • 用户现在会收到一封指出要下载邮件的数目和大小的邮件。用户可以选择要下载哪些邮件。
  • Exchange 2003 执行数据压缩以减少在 Outlook 2003 客户端和 Exchange 2003 服务器之间发送的信息量。
  • Exchange 2003 减少了客户端和服务器之间的信息请求总数,而不管 Outlook 2003 客户端是否以缓存模式工作,从而优化了客户端和服务器之间的通信。

这些更改降低了 Exchange 服务器的 CPU 使用率。具体地说,如果 Outlook 客户端发出的客户端请求数量越少,请求通信量越低,那么服务器占用的处理资源也就越少。

Exchange Server 2003 通过减少运行 Outlook Web Access 的计算机和 Exchange 服务器之间发送的总信息量,从而改进了 Outlook Web Access 用户的最终用户体验。

Exchange 2003 中 Outlook Web Access 客户端的性能得到了改善。例如,Outlook Web Access 用户会注意到,收件箱的加载速度更快了。用户还会注意到任务的响应能力更强了,尤其是在使用慢速连接时。其主要原因是,Exchange 2003 减少了必须从服务器传输到浏览器的字节的数量。

Exchange 的早期版本无法监视 Outlook 用户的最终用户性能体验。但是,使用 Exchange 2003 和 Outlook 2003,管理员可以为其用户分析性能。

Exchange 2003 服务器记录运行 Outlook 2003 的客户端计算机上的 RPC 延迟时间和错误。管理员可以使用此信息确定其用户的总体体验质量并监视 Exchange 服务器出现的错误。

Outlook 客户端会在后续的成功 RPC 调用中将 RPC 数据(如延迟时间数据或错误代码)发送到 Exchange 2003 服务器。

note注意:
从客户端计算机发送到 Exchange 服务器的 RPC 数据不是用来检测各个实时错误的主要方法。

下表列出了可以使用 Microsoft Operations Manager 监视的、与 RPC 相关的操作。有关使用 Microsoft Operations Manager 的信息,请访问 http://go.microsoft.com/fwlink/?LinkId=16198http://go.microsoft.com/fwlink/?LinkId=18176

使用 Microsoft Operations Manager 的客户端性能监视器

计数器 描述

客户端:RPCs attempted

自 Exchange 存储启动以来,用户尝试的 RPC 请求总数。

客户端:RPCs succeeded

自 Exchange 存储启动以来,Outlook 客户端发送的成功 RPC 请求总数。

客户端:RPCs failed

自 Exchange 存储启动以来,失败的 RPC 请求总数。

客户端:RPCs failed:Server unavailable

自 Exchange 存储启动以来,因“服务器不可用”RPC 错误而导致的失败 RPC 请求数。

客户端:RPCs failed:Server too busy

自 Exchange 存储启动以来,因“服务器太忙”RPC 错误而导致的失败 RPC 请求数。

客户端:RPCs failed:all other errors

自 Exchange 存储启动以来,因所有其他 RPC 错误而导致的失败 RPC 请求数。

客户端:RPCs attempted / sec

用户尝试的 RPC 请求的速率

客户端:RPCs succeeded / sec

成功 RPC 请求的速率。

客户端:RPCs failed / sec

失败 RPC 请求的速率。

客户端:RPCs failed / sec:Server unavailable

自 Exchange 存储启动以来,因“服务器不可用”RPC 错误而导致的失败 RPC 请求的速率。

客户端:RPCs failed / sec:Server too busy

自 Exchange 存储启动以来,因“服务器太忙”RPC 错误而导致的失败 RPC 请求的速率。

客户端:RPCs failed / sec:all other errors

自 Exchange 存储启动以来,因所有其他 RPC 错误而导致的失败 RPC 请求的速率。

客户端:Total reported latency

自 Exchange 存储启动以来,所有 RPC 请求的总延迟时间(秒)。

客户端:Latency > 2 sec RPCs / sec

延迟时间 > 2 秒的成功 RPC 请求的速率。

客户端:Latency > 5 sec RPCs / sec

延迟时间 > 5 秒的成功 RPC 请求的速率。

客户端:Latency > 10 sec RPCs / sec

延迟时间 > 10 秒的成功 RPC 请求的速率。

当不存在备用路径或连接不稳定时,Exchange 2003 通过抑制链接状态信息来减少链接状态通信量。(不稳定的连接是指时而可用时而不可用的连接。)在这两种情况下,链接状态仍然可用,因此减少了传播的链接状态通信量。

有关链接状态改进的详细信息,请参阅 Exchange Server 2003 的传输和邮件流功能中的“链接状态改进”。

使用 Exchange 2000 时,管理员可能会遇到与虚拟地址空间管理有关的问题。为了解决这些问题,Exchange 2003 进行了下列改进:

  • 删除由 Exchange 组件进行的许多小内存分配的多项改进。
  • 确保高效率进行内存分配的多项改进。例如,请求 32 KB 缓冲区而不是 17 KB 缓冲区,并且不浪费剩余内存。
  • 启动时,Epoxy 现在分配一个 190 MB 的连续大内存块,而不是分配一块小内存,然后逐步请求更多的内存。可以使用 DSAccess 设置来更改此 Expoxy 内存分配。
  • Store.exe 进程线程堆栈的大小从 512 KB 降为 256 KB。
  • 根据服务器的配置,现在,Store.exe 进程将分配合适的可扩展存储引擎 (ESE) 缓存缓冲区大小,而不是使用硬编码的值。对于设置了 /3GB 选项的服务器,设置的缓存大小为 896 MB(例如,28 个 32 MB)。如果未设置 /3GB 选项,则将缓存大小设置为 576 MB(例如,18 个 32 MB)。有关设置 /3GB 选项的信息,请参阅 Microsoft 知识库文章 266096 当物理 RAM 超过 1 GB 时 Exchange 2000 需要 /3GB 开关
    note注意:
    应只在满足下列条件的服务器上设置 /3GB 开关:
    note注意:
    存放 Exchange 2003 邮箱或公用文件夹的服务器。
    note注意:
    服务器的物理内存不低于 1 GB。
  • 如果可用虚拟内存达到了 32 MB,则 Exchange 2003 会将以前的请求发送到 ESE 缓冲区缓存以便增加 64 MB(默认值)。此 64 MB 部分可用于消息处理,并在需要启动 Store.exe 进程之前为管理员提供更多时间。
  • Exchange 会在其存储进程启动时执行最佳内存配置检查。如果内存设置不是最佳的,则事件查看器中将出现事件 9665。在下列情况中会出现此消息:
    • 服务器运行的是 Microsoft Windows® 2000 Server,并且注册表中设置的 SystemPages 值不在 24000 至 31000 范围内。
    • 服务器的内存为 1 GB 或 1 GB 以上,但没有 /3GB 开关。
    • 服务器运行的是 Microsoft Windows Server™ 2003,其内存不低于 1 GB,并设置了 /3GB 开关,但没有 /USERVA 设置或其值不在 3030 至 2970 范围内。
    如果出现此事件,请检查注册表中的 SystemPagesHeapDeCommitFreeBlockThreshold 设置,以及 boot.ini 文件中的 /3GB 开关和 USERVA 设置。
    note注意:
    如果要关闭内存配置检查,可以创建以下注册表项。

     

    路径

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\

    参数

    Suppress Memory Configuration Notification

    类型

    REG_DWORD

    设置

    1

默认情况下,Exchange MTA 数据库和运行目录位于 Exchange 2003 安装文件夹 (<drive>:\Program Files\Exchsrvr\ MTADATA) 下。在某些服务器上(尤其是当 Exchange 充当桥头服务器的情况下),将 MTA 数据库重新放置在快速磁盘阵列(如 RAID 0+1 分区)上,能够对性能产生积极的影响。

note注意:
当您修改队列目录的位置时,您只是修改了 MTA 数据库路径并移动了数据库文件(.dat 文件),您并没有移动任何运行文件或运行目录。
note注意:
不要尝试重新定位 MTA 运行目录,因为这样做会导致性能问题。

在 Exchange 2003 中,现在可以使用 Exchange 系统管理器更改 MTA 数据库的位置。请使用“X.400 属性”对话框中的“常规”选项卡进行此更改。有关如何更改 MTA 数据库位置的详细信息,请参阅第 6 章中的“移动 X.400 (MTA) 和 SMTP 队列目录位置”。

在 Exchange 2003 中,当邮件通过 SMTP 到达时,数据将以 Microsoft Windows NT 文件系统 (NTFS) 文件(具体地说,.eml 文件)的形式写入磁盘。默认情况下,将这些文件写入到安装 Exchange 2003 二进制文件的同一磁盘分区上的目录(<drive>:\Program Files\Exchsrvr\Mailroot)中。

某些情况下(如配置了桥头服务器或中继服务器),将 SMTP Mailroot 目录重新定位到速度更快的磁盘分区,可以对性能产生积极影响。

在 Exchange 2003 中,现在可以使用 Exchange 系统管理器移动 Mailroot 目录。请使用“SMTP 虚拟服务器属性”对话框中的“邮件”选项卡进行这种目录移动操作。有关如何移动 Mailroot 目录的详细信息,请参阅 Exchange Server 2003 的传输和邮件流功能中的“移动 X.400 (MTA) 和 SMTP 队列目录位置”。

Exchange 2003 在安装之后运行状况很好,并不需要进行太多优化。但是,在与 Exchange 的早期版本共存或大规模部署 Exchange 2003 服务器的情况下,可能需要进行一些手动优化。

虽然此部分没有提供优化建议的完整列表,但它确实就从 Exchange 2000 服务器升级到 Exchange 2003 提供了一些优化更改建议。

许多 Exchange 2000 优化参数(例如,在技术文章 Microsoft Exchange 2000 Internals:Quick Tuning Guide(英文)中列出的参数)在 Exchange 2003 中不再适用;实际上,某些参数可能会引起问题。如果以前通过添加此部分所列出的任何设置调整了 Exchange 2000 服务器,则必须在运行 Exchange 2003 的服务器上将其手动删除。用来删除这些设置的工具是注册表编辑器、Internet 信息服务管理器以及 ADSI 编辑。有关如何使用注册表编辑器、Internet 信息服务管理器以及 ADSI 编辑的信息,请参阅 Windows Server 帮助。

note注意:
错误地编辑注册表可能导致严重问题,甚至可能需要重新安装操作系统。因注册表编辑不当而导致的问题可能没有办法解决。在编辑注册表之前,请备份所有重要数据。

Initial Memory Percentage 注册表项在 Exchange 2003 中不再起作用。因此,安装了 Exchange 2003 后,应使用注册表编辑器删除以下注册表参数。

 

位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\

参数:

Initial Memory Percentage (REG_DWORD)

现在 Exchange 2003 自动计算最佳堆数。因此,安装了 Exchange 2003 后,应使用注册表编辑器删除以下注册表参数。

 

位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ESE98\Global\OS\Memory

参数:

MPHeap parallelism (REG_SZ)

如果以前通过添加 MaxMemoryConfig 项调整了 DSAccess 性能,那么不再推荐使用该项。因此,安装了 Exchange 2003 后,应使用注册表编辑器删除以下注册表参数。

 

位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeDSAccess\Instance0

参数:

MaxMemoryConfig (REG_DWORD)

如果以前在 DSAccess 中调整了用户缓存,现在可以取消手动调整。Exchange 2000 默认的用户缓存为 25 MB,而 Exchange 2003 默认为 140 MB。因此,安装了 Exchange 2003 后,应使用注册表编辑器删除以下注册表参数。

 

位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeDSAccess\Instance0

参数:

MaxMemoryUser (REG_DWORD)

不应对 \Exchweb 虚拟目录禁用内容过期。在所有情况下都应使用默认的过期设置“1 天”。可以在 Internet 信息服务管理器中查看和修改此设置。

如果以前手动调整了 msExchESEParamLogBuffers 参数(例如,调整为 Exchange 2000 SP2 的推荐值 9000 或 Exchange 2000 SP3 的推荐值 500),应取消此手动调整。Exchange 2003 使用默认值 500。以前,Exchange 2000 使用默认值 84。

要将此设置恢复为默认设置“<未设置>”,请在 ADSI 编辑中打开以下参数,然后单击“清除”。

 

位置:

CN=Configuration/CN=Services/CN=Microsoft Exchange/CN=<Exchange 组织名称>/CN=Administrative Groups/CN=<管理组名称>/CN=Servers/CN=<服务器名>/CN=Information Store>/CN=<存储组名>

参数:

msExchESEParamLogBuffers

如果手动调整了 msExchESEParamMaxOpenTables 参数,应取消此手动调整。清除此参数的值后,Exchange 2003 将自动计算正确的值;例如,在具有八个处理器的服务器上,使用的值为 27600。

要将此设置恢复为默认设置“<未设置>”,请在 ADSI 编辑中打开以下参数,然后单击“清除”。

 

位置:

CN=Configuration/CN=Services/CN=Microsoft Exchange/CN=<Exchange 组织名称>/CN=Administrative Groups/CN=<管理组名称>/CN=Servers/CN=<服务器名>/CN=Information Store>/CN=<存储组名>

参数:

msExchESEParamMaxOpenTables

 
显示: