调整 Exchange Server 2003 性能

 

上一次修改主题: 2006-08-16

本章提供了有关如何调整和提高 Microsoft® Exchange Server 2003 性能的信息。还包括有关调整的一些提示和建议,这些提示和建议可能并不全部适用于您当前的部署。可以查看本章来确定哪些设置适用于您所处的情况。

对于 Exchange 2000 Server 客户,本章中的一些建议与以前的性能指南中的建议相同。此外,以前的一些更改现在不再需要。有关可能需要删除的设置的详细信息,请参阅过时设置

性能改进

Exchange Server 2003 中新增了许多调整功能,例如链路状态通信和虚拟地址空间管理。有关这些性能改进的详细说明,请参阅 Exchange Server 2003 新增功能

磁盘子系统

下列部分为不同类型的 Exchange 2003 服务器提供建议的存储配置。对于 Exchange 2000 客户,此部分中的建议与以前的 Exchange 2000 Server 性能文档中的建议相同。

SMTP 桥头服务器

如果服务器是简单邮件传输协议 (SMTP) 桥头服务器,通常,最佳的磁盘布局是创建一个分区。到达 SMTP 接口的邮件将写入 Mailroot 目录(该目录应在 NTFS 文件系统格式的系统上),然后传递到下一台计算机。为了获得最佳性能,应使 Mailroot 目录跨越尽可能多的磁盘。如果 SMTP 桥头服务器上有多个分区,应将 SMTP Mailroot 目录重新定位到最快的分区上。有关如何移动 Mailroot 目录的详细说明,请参阅如何在 Exchange Server 2003 中移动 Mailroot 目录

一个心轴应能实现大约每秒 30 封小邮件的传输速率。因此,如果增加心轴数,性能也会随之提高。

硬件廉价磁盘冗余阵列 (RAID) 的配置主要通过可用磁盘心轴数表示,如下表所示。

RAID 建议

磁盘数 推荐的硬件 RAID 级别和分区

2

RAID1、镜像、一个分区

4 个或更多

RAID0+1、数据条带化和镜像、一个分区

如果硬件 RAID 控制器具有镜像的、由电池供电的回写缓存,则可以调整读/写缓存的比率,因为服务器只有在邮件写入磁盘后才能确认收到邮件,所以,请将比率设置为 100% 写入。因此,服务器写入磁盘的速度越快,服务器对其他计算机的响应能力就越强。尽管在邮件中继到下一台计算机之前,必须重新读取邮件的内容,但是,SMTP 服务有一个指向数据的打开的文件句柄,可以从 NTFS 缓存中检索内容。

X.400 桥头服务器或其他连接器服务器

如果 Exchange 2003 服务器包含许多 X.400 连接器,或者连接到其他邮件系统(例如 Lotus cc:Mail、Lotus Notes、Novell GroupWise 或 Microsoft Mail),若有足够的心轴,应为事务日志创建独立的磁盘分区。使用这些 Exchange 连接器的邮件通过 Store.exe 进程移动数据,如果服务器负载较重,将事务日志从数据库中分离出来,可以提高性能。

通过邮件传输代理 (MTA) 接收邮件时,数据将写入 NTFS 分区上的 Mtadata 目录,然后通过 MTS-IN 虚拟队列传递给 Store.exe 进程。因为邮件传递给 Store.exe,所以,数据将写入事务日志文件。然后,邮件完成分类和路由选择过程。如果路由选择确定邮件应通过 X.400 连接器发出,数据将移入 MTS-OUT 虚拟队列。其他邮件连接器也使用类似的过程。

可用磁盘心轴数影响硬件 RAID 的配置(请参阅下表)。

RAID 建议

磁盘数 推荐的硬件 RAID 级别和分区

2 - 4

RAID1、镜像、两个分区(分区 1 上存储操作系统和页面文件,分区 2 上存储 Exchange)

5

三个磁盘采用 RAID5(驱动器 C);存储二进制文件和数据库

两个磁盘采用 RAID1(驱动器 D);存储日志文件

6

三个磁盘采用 RAID5(驱动器 C);存储二进制文件和数据库

两个磁盘采用 RAID1(驱动器 D);存储日志文件

一个磁盘不采用 RAID(驱动器 E);存储页面文件

尽管在 6 个磁盘的配置中,页面文件不使用 RAID 分区,但是,如果服务器的高可用性非常重要,可以将页面文件放在受保护的分区上。

如果硬件 RAID 控制器具有镜像的、由电池供电的回写缓存,则可以调整读/写缓存的比率,对于使用一个分区的配置,请将比率设置为 100% 写入,如果使用五个或更多磁盘,请将事务日志分区上的比率设置为 100% 写入。使用事务日志的写缓存代替数据库驱动器的读缓存,可以提高性能。

邮箱和公用文件夹服务器

如果配置一台数据库服务器,磁盘设计与 Exchange Server 5.5 和 Exchange 2000 Server 的磁盘设计类似。最重要的是将事务日志和数据库分别放在独立的磁盘心轴上。不仅应将日志放在不同的心轴组上,而且该心轴组也应专门供日志使用。例如,如果将页面文件或者 Windows® 2000 Server 或 Windows Server™ 2003 操作系统与日志放在同一个心轴组上,这种分离就不会提高性能。

如果要在服务器上创建多个存储组,最重要的也是将日志分别放在专用的心轴上。不过,为了提高性能,每个存储组必须使用专用的心轴组。使用专用的心轴组后,就可以确定剩余的心轴数。在大多数服务器上,没有很多可用的磁盘插槽。因此,最好将所有数据库放在同一个分区上。

如果使多个存储组中的数据库跨越在同一个阵列上,在该阵列无法使用时,这些存储组中的所有数据库(甚至是其他阵列上的数据库)暂时都将无法使用。损坏的数据库标记为关闭,正常的数据库将重新连接。中断只会持续几分钟,然后 Microsoft Outlook® 等 MAPI 客户端会恢复其连接。

如果有足够的磁盘,可以将属性数据库 (.edb) 文件与流式数据库 (.stm) 文件分离。服务器服务的客户端类型决定分离这些文件带来的性能提高。例如,如果希望只为带有较大附件的 Internet 邮件访问协议版本 4rev1 (IMAP4) 和邮局协议版本 3 (POP3) 用户提供服务,读/写的大小可能会大于 4 KB,.edb 数据库上的 MAPI 用户经常会出现这种情况。此时,建议分离这些文件。可以针对 .stm 文件优化磁盘,以便支持较大的附件。

MAPI 和 Microsoft Outlook Web Access 客户端从 .edb 文件读取数据并向 .edb 文件写入数据。从技术上说,客户端与 Store.exe 进程进行通信。因此,它们不区分 .edb 文件和 .stm 文件。所有其他客户端均使用 .stm 文件。下表显示不同客户端使用的首选位置。

首选的客户端存储位置

客户端类型 提交数据 检索数据

MAPI 模式的 Outlook

.edb 文件

.edb 文件

POP3

.stm 文件(通过 SMTP)

.stm 文件

IMAP4

.stm 文件(通过 SMTP)

.stm 文件

Outlook Web Access

.stm 文件(但是完全升级为 .edb 文件)

.edb 文件

可安装的文件系统 (IFS)

.stm 文件

.stm 文件

SMTP

.stm 文件

不适用

SMTP(含 MAPI 数据)

.stm 文件(但是完全升级为 .edb 文件)

不适用

Microsoft ActiveX® 数据对象 (ADO) 或 OLE DB

.stm 文件

.stm 文件

Exchange 2000 Server 的协作数据对象 (CDO)

.stm 文件

.stm 文件

CDO 1.21

.edb 文件

.edb 文件

尽管此表指明了首选的文件类型,但是也可能会发生交叉转换。例如,如果 POP3 客户端提交邮件,邮件数据物理存储在 .stm 文件中。邮件标题和其他数据的一些属性会自动升级为 .edb 文件。不过,现在假定 MAPI 客户端尝试读取该邮件。在这种情况下,.stm 文件中的邮件数据将完全升级为 .edb 文件(附件保留在 .stm 文件中,在内存中转换)。只会发生从 .stm 文件到 .edb 文件的升级。数据不会升级为 .stm 文件;在上述情况下,所有客户端转换均在内存中进行(借助于临时文件)。

在大多数情况下,将 .edb 文件和 .stm 文件分别放在独立的心轴上没有什么实际的好处。例如,如果有六个磁盘,必须决定如果在三个磁盘上各创建两个 RAID5 分区,是否会比一个 RAID0+1(条带化和镜像)分区的性能更高。在这种情况下,RAID0+1 的写入性能更高。

随着磁盘的不断增大,趋势是购买更少的但是更大的磁盘来处理用户数据。不幸的是,磁盘的速度和大小并不对应。因此,可能拥有了足够的物理磁盘空间,但是性能却不足以满足用户的负载。为邮箱服务器分配充足的物理磁盘心轴。应当注意,使用 GB 级缓存和许多硬盘机架的专用存储子系统通常使用自己的分区管理和容错操作系统。在使用此类设备时,应向硬件供应商的专家寻求帮助。

总之,配置邮箱服务器最好遵循下列标准:

  • 为 Windows 和 Exchange 二进制文件创建 RAID1 分区。
  • 将页面文件放在独立的 RAID1 心轴上。对于邮箱服务器,一定不要将页面文件放在非 RAID 分区上,因为丢失该卷可能会造成服务器停机。
  • 为事务日志的每个存储组创建一个专用的容错分区(例如 RAID1 或 RAID 0+1)。两个磁盘组成的 RAID1 分区每秒大约可以处理 300 个顺序的 I/O 写入操作。该能力应足以应付繁忙的由五个数据库组成的存储组。
  • 至少为数据库创建一个容错分区。如果只有一个阵列,则将所有数据库放在此阵列上。如果有多个阵列,每个存储组使用一个阵列(仅限数据库)。

可以使用 Exchange 系统管理器将数据库、SMTP 队列和事务日志文件移动到其他分区上。

有关移动数据库和日志的详细信息,请参阅 Microsoft 知识库文章 257184“XADM:如何在 Exchange 2000 Server 中移动 Exchange 数据库和日志”。

使 Exchange I/O 操作与存储磁道边界对齐

物理磁盘每个磁道上有 64 个扇区,Windows 总是从第 64 个扇区开始创建分区,因此,与基础物理磁盘没有对齐。为了保证磁盘对齐,可以使用磁盘分区工具 Diskpart.exe。Diskpart.exe 是 Microsoft 在 Windows Server 2003 Service Pack 1 支持工具中提供的实用程序。Diskpart.exe 是命令行实用程序,可以明确设置在主引导记录 (MBR) 中的起始偏移。通过设置起始偏移,可以跟踪对齐情况,提高磁盘性能。Exchange Server 2003 通过 4 KB 倍数的 I/O 操作写入数据(数据库为 4 KB,流式文件最大为 32 KB)。因此,应确保起始偏移是 4 KB 的倍数。否则,可能会使一个 I/O 操作跨越两个磁道,从而降低性能。

有关详细说明,请参阅优化 Exchange Server 2003 的存储指南中的“如何将 Exchange I/O 与存储磁道边界对齐”。