Exchange Server 2003 性能:需要考虑的十个问题

 

上一次修改主题: 2006-06-13

Microsoft® Exchange 服务器性能是一个可以从多个方面来看的复杂话题。 为了帮助简化这个话题,我将提出十个有关设计、构建和运行 Exchange Server 2003,以实现最佳性能的注意事项。 我还将提供一些能够为您提供更多详细信息的其他资源链接。 这份列表主要针对 Exchange Server 2003,但其中的一些基本规则同样也适用于 Exchange 2000 Server 和 Exchange Server 5.5。

需要将 Exchange 服务器部署到一个稳固的体系结构上,就如同建造房子之前需要坚实的地基一样。 如果地基不牢固,上面的房子建造得再好也无济于事。

Planning an Exchange Server 2003 Messaging System (英文网页)指南中所述,在设计基于 Exchange 的邮件系统之前,需要收集业务和技术相关信息。 Exchange 取决于各种基础结构技术,如 TCP/IP 网络、名称解析服务(DNS 和 NetBIOS)、Active Directory® 目录服务以及 Internet 信息服务 (IIS)。 如果这些基础结构组件中的一个或多个出错、过载或损坏,Exchange 的性能将会受到影响,如果情况更为严重的话,最终用户或客户可能无法使用电子邮件。

最为重要的是,要确保 Exchange 服务器和 Outlook 客户端可以使用全局编录服务器,以及拥有足够可用的网络带宽。

所有 Exchange 服务器和用户都应该能快速访问全局编录服务器。全局编录服务器与 Exchange 服务器和客户端计算机的临近程度会直接影响客户端性能。在每个包含 Exchange 服务器的域中都必须至少安装一台全局编录服务器;若要在大型组织中获得最佳性能,还需要安装其他全局编录服务器。 此外,如果 Exchange 服务器和 Microsoft Office Outlook® 客户端没有位于同一 Active Directory 站点,则应考虑对 Outlook 客户端使用注册表值 Closest GC

在每个站点中,Exchange 处理器与全局编录服务器处理器的比例应该是 4:1(假设这些处理器的型号和速度类似)。不过,更高的全局编录服务器使用率、较大的 Active Directory 实现方案、更高的应用程序使用率或较大的通讯组列表会需要更多的全局编录服务器。Exchange 2003 可以使用最多安装八个处理器的全局编录服务器。

  • 若要实现性能的优化,必须满足一定的带宽需求。 对于 MAPI 客户端,在评估可用带宽需求时,可将并发用户的数量乘以 2.5 Kbps。 对于严重活跃的 MAPI 用户,则需要乘以 3 Kbps。 为了实现性能优化,应确保可用网络带宽至少比客户端/服务器和服务器/服务器通信所需带宽多 20%。
  • 为了实现 Outlook Web Access 的性能优化,需要部署 Internet Explorer 6 Service Pack 1。若要确保 Outlook Web Access 压缩生效,应启用 HTTP 1.1(包括在使用代理服务器的情况下通过代理连接的 HTTP 1.1)。 有关改善 Outlook Web Access 用户使用性能的详细信息,请参阅 Microsoft 知识库文章 327675 如何 提高 Outlook Web Access 性能

Exchange Server 结构设计师经常问的一个问题是,“在不影响性能的情况下,一台 Exchange 2003 服务器能够支持多少个用户?” 或者,像我的朋友问我一样,“我有 X 个用户;你能否告诉我我需要什么样的服务器?” 如 Sam Khavari 于 2004 年 5 月在他的博客中所述,很难直接回答有关服务器规模的问题。 Exchange 2003 的最低系统要求与 Exchange 2000 相同;因此,要从 Exchange 2000 转到 Exchange 2003,不需要对硬件进行升级。 但是,需要考虑在安装 Exchange 2003 之后是否以不同的方式使用这些服务器。例如,如果计划使用基于查询的通讯组,可能需要更强大的服务器硬件才能展开查询。

在几乎任何情况下,Exchange 服务器所需的物理内存都不会超过 4 GB。 Exchange 无法使用大于 3 GB 的物理内存,也不支持扩展内存技术,如 Physical Address Extensions(英文网页)。 如果在 Exchange 服务器中安装了 4 GB 内存,其中 3 GB 通常用于 Exchange,剩余的 1 GB 用于 Microsoft Windows® 和辅助应用程序(如备份、防病毒、管理和其他支持性软件)。

请确保为 Exchange 2003 使用合适的硬件:

如果需要更详细的说明,请使用以下用于确定硬件规模的工具:

优化 Exchange 服务器的目的是为了在增加受支持用户数量的同时减少服务器的响应时间。 性能优化可以通过正确调整和配置每台 Exchange 服务器来实现。

优化服务器时,请从优化硬件开始,并提出以下两个问题:

  • 是否存在任何需要应用的 BIOS、固件或驱动程序更新? 请与硬件制造商联系,了解是否有服务器的 BIOS、控制器 BIOS 和固件、网络接口卡固件、磁带驱动器固件、底板固件等组件的更新可用。 许多固件更新中包括驱动程序更新,而这项更新必须先于其他更新应用,因此也请注意这一点。 在对系统应用任何更新前,请在一个模拟生产环境的实验室环境下对您的系统进行测试。 如果无法提供实验室环境,可以考虑使用诸如 Microsoft Virtual PC 2004(英文网页) 或 Microsoft Virtual Server 2005(英文网页)的技术在虚拟实验室环境下进行测试。
  • 是否存在能够为保留系统资源或减少系统的攻击渠道(或Relative Attack Surface Quotient [RASQ])而调整或关闭的硬件组件? 服务器中可能存在一个或多个已启用但实际上并不需要的硬件组件。 例如,COM 端口、并行端口和 USB 端口。 不可否认,这些端口在执行高级调试或在无人职守环境下运行时很有用;但是,如果不经常进行这些操作,则不需要这些端口。 由于禁用这些端口会减少到系统的 I/O 通道,因此关闭它们也可以提高物理安全性。

是否有可用于调整 Windows 以提高性能的方法? 当然有。 先停止所有不必要的服务。 有关默认服务及其启动值的列表,请参阅 Windows Server 2003 产品文档中的 Default settings for services(英文网页)。 同样,有关 Exchange Server 2003 所需的 Windows 服务的列表,请参阅 Exchange Server 2003 Technical Reference Guide(英文网站) 中的第 2 章“Exchange Server 2003 服务依存关系”以及 Exchange Server 2003 Security Hardening Guide(英文网站)。 这些不必要的服务通常包括:

  • 计算机浏览器
  • 分布式文件系统
  • 跟踪客户端的分布式链接
  • 分布式事务协调器(在 Exchange 群集中例外)
  • 打印后台处理程序(在同时用作终端服务器的 Exchange Server 上例外)
  • 任务计划程序
  • 无线配置

还需要根据 Exchange 服务器的角色以及系统中存在的邮箱数量调整“Microsoft 网络的文件和打印机共享”(也称为“内存管理”)设置。 在支持少于 500 个客户端的前端服务器、桥头服务器和邮箱或公用文件夹服务器上,调整 file cachin(英文网页) 的内存管理。 在支持 500 个或更多客户端的邮箱和公用文件夹服务器上,调整 network applications(英文网页)的内存管理。

如果 Exchange 已在部分或所有邮件服务器上运行,则验证 Exchange 和 Windows 是否已正确调整的最简单的方法是下载并使用 Microsoft Exchange Server Best Practices Analyzer Tool(英文网页) (ExBPA)。

Exchange 2003 支持 XML、WebDAV、Active Server Pages 以及诸如 OLE DB 和 ActiveX 数据对象 (ADO) 的数据访问技术。 Exchange Server 2003 Software Development Kit(英文网页)中为您提供了可用的 Exchange 开发技术的完整列表。 通常,用于处理数据的应用程序越多,每个用户所需的 I/O 就越多(由于增加的索引、搜索文件夹、内容转换以及每个用户的请求数量增加)。

无论使用哪种技术或语言,请考虑下列性能问题:

  • 深遍历由于深遍历能够潜在地检查层次结构中的每个文件夹,因此应控制使用的次数,以减少服务器工作负载。 通常应避免使用深遍历跨大型公用文件夹和大型公用文件夹层次结构进行搜索。
  • 使用 Windows Management Instrumentation (WMI) 进行邮件跟踪搜索使用 Exchange 2003 中的邮件跟踪功能,管理员能够跟踪通过 Exchange 传输的邮件。 此外,邮件跟踪还能够诊断邮件传输问题并确认 Exchange 路由配置是否正常工作。 Exchange 管理员可使用 WMI 以编程方式访问 Exchange_MessageTrackingEntry Class(英文网页)。 执行此操作时,建议使用日期和时间限制。 如果没有这些限制,所有的邮件跟踪条目都会列入搜索范围,从而导致服务器整体性能下降。
  • 注册存储事件接收器如果需要为存储中的所有邮箱注册事件接收器,则应为存储范围的事件注册一个事件接收器。 Exchange 启动时将会查找并加载所有已注册的事件接收器,这需要一些时间。 使用多个单独的事件接收器注册而不是一个存储范围的事件注册项会明显增加服务器的启动时间。
  • 注册存储事件接收器运行存储事件接收器,特别是在使用同步事件接收器时应始终小心谨慎。 在向 Exchange 存储发送数据请求之后且在项目提交到存储之前触发同步事件接收器。 同步事件接收器在处理时对该项目具有独占控制权限。 因此,编写复杂或编写质量较差的接收器可能会在一段时间内锁定某个资源,或者甚至会使 Exchange 服务器的性能下降。
  • 对重复的搜索查询使用搜索文件夹。如果重复使用同一搜索查询,建议使用“搜索文件夹”。 创建搜索文件夹时,需要指定一个 SQL 查询,Exchange 存储将使用该查询填充包含项目的文件夹。 填充文件夹后,与请求匹配的所有项目的链接都将位于该文件夹中。 SQL 查询在后台运行并定期更新该文件夹,这样能够更充分地利用系统资源。 也就是说,请只使用需要的搜索文件夹。 如果可能,请尽量减小搜索范围。
  • MAPI 对象限制在依靠 Exchange 2003 开发基于 MAPI 的应用程序之前,请花一些时间熟悉 MaxObjsPerMapiSession 限制。 每个通过 MAPI 请求的对象都需要服务器上的资源(具体地说,就是存储地址空间的内存)。 如果应用程序没有遵守已配置的限制,将会使用不成比例的资源量,并使系统性能下降。

在 Exchange 服务器上运行的应用程序与 Exchange 协同工作的情况并不少见。 例如,防病毒、反垃圾邮件、内容和附件筛选、备份以及工作流和协作应用程序。 应确保任何安装在 Exchange 服务器上的第三方软件都与 Exchange 2003 兼容,并且使用的是最新版本的软件(包括 Service Pack 和修复程序)。 理想情况下,为了确保兼容性,应在将软件应用于生产环境之前在实验中测试所有软件的交互性。

有关防病毒、内容筛选、备份软件等方向的问题很难解决,因为这些问题能够以 Exchange 或 Windows 问题的形式出现。 我曾经遇到过多起防病毒软件导致 Microsoft Exchange Information Store 进程 (Store.exe) 消耗过多 CPU 时间的情况。 还遇到过 Exchange 服务器上的其他软件导致 Windows 本地安全机构进程 (Lsass.exe) 消耗过多内存和 CPU 时间的情况。

如果怀疑某个应用程序正在损害 Exchange 服务器的性能,应该首先暂时禁用该应用程序,然后查看性能是否恢复到预期水平。 事实上,如果就性能缓慢问题联系产品支持服务,他们的第一个建议通常是禁用第三方应用程序。

Exchange、IIS 和 Windows 公布了一份性能对象和计数器的广泛列表,这些性能对象和计数器可用于基准、趋向和主动监视每台服务器的四个“食物组”: 处理器、内存、磁盘和网络。 需要监视的多个 Exchange 相关的计数器已在 Exchange Server 2003 Performance and Scalability Guide(英文网页)的附录 B“性能计数器定义”中列出。 有关如何避免性能下降,以及如何使用现有工具和产品(如 Performance Monitor、Load Simulator 2003(英文网页)、Exchange Server Stress and Performance 2003(英文网页)、Network Monitor 和 Filemon)的详细信息,请参阅 Troubleshooting Exchange Server 2003 Performance(英文网页)。

只知道要监视的计数器是不够的。 还要知道监视这些计数器的时间。 Exchange 服务器第一次上线时,处于“瞬间状态”。 每台 Exchange 服务器的瞬间状态持续时间取决于多种因素,如处理器的数量、已安装的内存量以及要处理的负载。 一般说来,瞬间状态通常持续两个小时到一天。

这个期间结束后,Exchange 将进入“静止状态”,在这种状态下,服务器的负载保持稳定,并具有可预测的差异。 这种状态将一直持续,直到负载发生变化或发生外部事件,如夜间备份、数据还原和数据库维护等。

如果已为监视服务器做好准备,请参阅 Troubleshooting Exchange Server 2003 Performance(英文网页),上面提供了多个性能计数器及其可接受的阈值。 可以使用多种方法收集和监视性能计数器数据:

  • Windows 的内置系统监视器工具(也称为“性能监视器”、“性能日志和警报”)。
  • 示例 WMI 脚本 可用于 Exchange 2003。
  • 性能监视器向导。 这是一个相对较新的工具,可简化收集性能监视器日志的过程。 该工具可创建用于解决操作系统或 Exchange 服务器性能问题的日志。

还可以使用 Server Performance Advisor(英文网页)工具诊断有关运行 Windows Server 2003 的服务器的性能问题的根本原因,其中包括 IIS 6.0 和 Active Directory 的性能问题。

如果组织使用 Microsoft 操作管理器 (MOM),则可以使用用于 MOM 2000 的 Exchange Server 2003 管理包获取更全面的运行状况监视。有关此管理包提供的规则的详细信息,请参阅下列指南:

Exchange 或 Outlook 使用的基础结构组件(如全局编录服务器)的计划外停机时间可能会严重影响性能。 通过采用和遵循有关操作、更改管理和配置管理的专用指南,可以将故障次数降至最低,从而能够最大限度地减少总体计划外停机时间。 近十年来,Microsoft 通过以下两种免费赠送和集成良好的框架形式出版并改进了此指南: Microsoft Operations Framework(英文网页) (MOF) 和 Microsoft Solutions Framework(英文网页) (MSF)。

无论您只是组织中的一名 IT 管理员,还是一名 IT 员工,都请考虑以下问题:

  • 您的组织是否定期对现有基础结构(服务器、工作站和应用程序)进行较大更改?
  • 您的组织是否经常在生产过程中处理基础结构或应用程序问题?
  • 您是否发现这样的情况:在组织中由于呈报路线不明确导致需要较长时间还原服务?
  • 您的组织是否经历过由于人员或流程故障而导致 Exchange 性能下降或 Exchange 停机时间?

如果您对以上任一问题的答案是“是”,则 MOF 和/或 MSF 也许能够帮助您找出问题的原因。 有关 MOF 与 Exchange 和 Exchange 性能之间相关的详细信息,请参阅 Exchange Server 2003 Operations Guide(英文网页)。

迅速解决问题(有时是永久性解决问题)能够显著提高 Exchange 的性能。 Exchange 和 Windows 都带有用于诊断和解决问题的故障排除工具和错误报告功能。 这两个产品还都附带有关如何解决问题的文档。 但是,要正确判断应该使用的工具和使用时间并不容易,尤其是在迫切需要解决某个问题的时候。

分析根本原因时,重要的是要尽快确定问题的范围。 除了减少解决问题的时间之外,快速确定问题范围通常也能够在减少资源使用量的同时提高问题用户的满意度。 Troubleshooting Exchange Server 2003 Performance(英文网页)中的第 3 章“隔离导致性能下降的原因”中提供了有关如何隔离导致性能下降的原因的信息。 该指南中列出的性能计数器在解决性能问题时也非常有用。

无论如何也要确保 Exchange 基础结构的安全! 使用 Exchange 时,需要从以下多个方面确保其安全: 权限和角色、防病毒、反垃圾邮件、强化、邮件安全和远程访问安全等。 错误的安全相关设置不但会破坏系统的完整性、损坏数据以及窃取机密信息或知识产权,还会严重影响系统的性能。

为了帮助您的 Exchange 基础结构发挥最佳性能,请参阅 Top 4 Exchange Security Best Practices(英文网页)。 与您的所有基于 Windows 的服务器和工作站的情况相同,也需要确保您的系统已安装 latest security updates(英文网页)。

由于不需要的电子邮件会消耗资源并降低系统性能,因此请熟悉一下 Exchange 2003 的反垃圾邮件功能并参阅 Exchange Intelligent Message Filter(英文网页)。 Exchange 服务器处理的不需要的电子邮件越少,您所体验到的性能就越好。

最后,建议查看以下安全相关文档:

就 Exchange 的性能而言,存储不仅仅是您的朋友,而且是最好的朋友。 性能的出色与否,直接取决于所采用的存储解决方案。 事实上,存储延迟是 Outlook 和 Exchange 之间存在的 RPC 相关通信问题的首要原因。 在为 Exchange 服务器设计和实施高性能的存储解决方案时需要考虑多个因素。这些因素包括:

  • 用户响应时间
  • 系统响应速度
  • 邮件吞吐量
  • 正常运行时间和可用性
  • 备份窗口和恢复服务级别协议
  • 整体用户满意度

您可能已经注意到,上述因素中并未列出容量。 说到 Exchange 存储解决方案,常见的错误是只根据容量购买磁盘和磁盘子系统。 要想创建高性能的 Exchange 存储解决方案,只知道需要多大的磁盘空间是远远不够的。

在为 Exchange 服务器购买存储解决方案之前,建议先了解以下内容:

若要实现基于 Exchange 的邮件系统的性能优化,需要考虑和分析各种基础结构组件。 Exchange Server 2003 与众多外部因素集成并且依赖这些因素,因此 Exchange 的性能在某种程度上也取决于这些外部因素的设计和运行状况。

 
显示: