SMTP 的基准性能

 

上一次修改主题: 2005-10-10

此部分提供了简单邮件传输协议 (SMTP) 网关的基准性能数据。SMTP 是一个网络协议,旨在通过网络将电子邮件信息传递到目标服务器。在大型数据中心中,建议使用特定的 Exchange 2003 服务器来专门处理入站和出站 SMTP 通信。通常将这些服务器命名为 SMTP 网关或 SMTP 集线器。它们负责在客户端和 Exchange 2003 邮箱服务器之间移动 SMTP 邮件。此部分只描述了 SMTP 的特点;邮件传输代理 (MTA) 和邮件转换的内容不在这里进行阐述。

硬件

下表显示了此方案中使用的硬件规格。

SMTP 硬件

服务器类型 处理器类型 RAM 用途

SMTP 网关

Intel 4 处理器,1.4 GHz

4 GB

  • 两个 1 Gbps 的网络适配器
  • SMTP 队列目录放在 RAID0+1 磁盘阵列的一系列价格低廉的磁盘上

方案

在客户端和 SMTP 网关之间所传输邮件的平均大小是 50 KB。匿名身份验证和没有进行 SSL 传输层安全性 (TLS) 加密的网络通信一起使用。

下表概述了为一系列后端服务器(它们是通过 SMTP 网关发送邮件的最终目标服务器)提供服务的一台四处理器 1.4 GHz SMTP 网关的性能。

SMTP 网关服务器性能

  Windows 2000 Server 和 Exchange 2000 Server Windows 2000 Server 和 Exchange Server 2003 Windows Server 2003 和 Exchange Server 2003

% Processor Time

56.0%

66.1%

66.7%

Context Switches/sec

34,782

31,854

18,850

SMTP Messages Sent/sec

142.3

141.2

142.1

Network Usage (in Mbps)

12.8

12.8

12.8

Disk Writes/sec

810

920

842

有关此方案中使用的性能计数器的详细信息,请参阅性能计数器定义

处理器

此服务在四处理器服务器上可很好地进行扩展。尽管在升级到 Exchange Server 2003 之后 CPU 使用增加了 17%,但上下文切换在升级到 Windows Server 2003 之后下降了 40%。

内存

SMTP 网关服务器主要使用内存来保持连接和跟踪队列中邮件的重要信息。SMTP 服务器一般不会有数千个连接;因此,此方面的内存需求不很明显。但是,用于存储队列中的电子邮件的邮件属性的内存需求可能会很大。SMTP 以两种状态在队列中存储邮件:已打开(即,使句柄处于打开状态)或已关闭(即关闭句柄)。SMTP 可在任何特定时刻使队列中的 1,000 封邮件处于打开状态,并在新邮件到达时关闭旧邮件。队列中打开的邮件会消耗 Inetinfo 进程的 10 KB 左右的内存,关闭的邮件会消耗 Inetinfo 进程的 4 KB 左右的内存。

SMTP 网关服务器要求的内存是一个函数,它代表服务器在特定时间所期望的排队邮件数量。以下示例演示了如何计算 SMTP 队列大致消耗的内存:

  • 1,000 封打开的邮件 = 10 MB Inetinfo 内存
  • 1,000 封打开的邮件 + 20,000 封关闭的邮件 = 80 MB Inetinfo 内存
  • 1,000 封打开的邮件 + 89,000 封关闭的邮件 = 366 MB Inetinfo 内存
note注意:
默认情况下,在拒绝新邮件之前 SMTP 网关进行排队的邮件的最大数量是 90,000。

SMTP 网关常被用于扩展通讯组列表。通讯组列表可将邮件发送到一个地址中,再分发给多个收件人。通讯组列表扩展指获取通讯组列表中的收件人列表的过程。通讯组列表扩展还影响 SMTP 网关所使用的内存。通讯组列表所扩展的每个收件人都占用 1 KB 的 Inetinfo 的内存。某些服务器会扩展非常大的通讯组列表、或经常扩展中等大小的通讯组列表,这些服务器要求更多的内存。

低流量的 SMTP 网关服务器在 256 MB RAM 下足够运行。在大队列较为常见且需要扩展较大的通讯组列表的大流量数据中心中,建议至少具有 512 MB RAM。一般情况下,超过 1 GB 的内存并不能使 SMTP 网关服务器受益。如果产生大量 SMTP 队列的服务器内存不足,则会产生过多的分页。此分页会明显提高服务器处理队列的时间。

可手动配置处于打开状态的邮件的最大数量和队列中所允许的邮件的最大数量。有关此主题的详细信息,请参阅下列 Microsoft 知识库文章:271084“XGEN: Exchange 2000 Server SMTP Optimized with Maximum Handle Threshold Registry Key”(英文)和 258748“XGEN: Setting a Limit on the Number of SMTP Messages in Queues”(英文)。

磁盘使用

SMTP 网关很耗费磁盘空间。SMTP 网关收到的每封邮件都要保存到磁盘。默认邮件大小为 50 KB,由 SMTP 网关处理的每封邮件都要对磁盘进行 7 到 8 次写入操作。此行为是正常的。一般情况下,SMTP 对队列中每封小于 32 KB 的邮件执行 7 次磁盘写入操作。SMTP 网关的写入缓冲区为 32 KB。因此,大于 32 KB 的邮件要求每 32 KB 就额外执行一次磁盘写入。例如,要将一封 100 KB 的邮件保存到队列中,需要执行 10 次磁盘写入。

因此,SMTP 网关服务器对磁盘子系统的性能要求很高。建议在 SMTP 队列驱动器中使用有多个磁盘心轴的 RAID0+1 阵列。将 RAID0+1 阵列配置为:阵列中一半的心轴条带化到一起,以创建一个大型卷。此卷被镜像到另一半用作数据冗余的可用心轴中。磁盘心轴的数量和写入缓存的大小能以预期的服务器 SMTP 邮件吞吐量为基础。

网络使用

SMTP 网关可处理大量的 SMTP 数据。随着负载的增加,服务器的网络资源也处于压力之中。最低网络能力应该是一个 100 Mbps 的全双工网络连接。全双工连接可同时接收和发送数据。根据预期的服务器负载,可能还需要一个 100 Mbps 的连接,或换成千兆比特的以太网。如果平均邮件大小为 50 KB,每秒发送大约 140 封邮件则会产生将近 13 Mbps 的网络流量。如果预期的处理负载超过 7 Mbps,则服务器就应该有两个 100 Mbps 的全双工网络连接,或一个千兆比特的以太网连接。

也可使用网络负载平衡来对通过多个 SMTP 网关服务器的 SMTP 通信进行平衡。

SMTP 可伸缩性标准

在设计 SMTP 服务器时,请考虑下列建议:

  • SMTP 网关在四处理器服务器上可很好地进行扩展。
  • SMTP 网关要求最少 256 MB RAM,以便管理大队列和扩展通讯组列表。建议最小 RAM 为 512 MB。
  • SMTP 网关要求大量的磁盘资源;每封排队的邮件都至少要求七次磁盘写入。高端服务器中包含队列的驱动器应配置为有多个磁盘心轴的 RAID0+1,它使用一个写入缓存阵列控制器。
  • 双处理器网关要求一个 100 Mbps 的连接。四处理器的高端服务器应适用两个 100 Mbps 的连接或一个千兆比特的以太网连接。
  • 可使用网络负载平衡将 SMTP 通信负载进行平衡,用 TLS 对 SMTP 通信进行加密不会对处理器或所需的内存产生明显的影响。