跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

优化 Lotus Domino 服务器性能: I/O 子系统

Razeyah Stephen, Domino 性能工程师, Iris
Razeyah Stephen 是一名 Domino 性能工程师,她从 1998 年开始工作于 Iris。她从 Digital Equipment Corporation(现在的 Compaq)转到 Iris 工作,她曾在他们的 StorageWorks 部门工作了 5 年。Razeyah 的特长是 UNIX 性能。

简介: 本文介绍 Domino R5 在各种系统配置下的性能,特别关注 I/O 子系统。本文回顾了已经学过的内容,并推荐了一些 I/O 子系统配置。

查看本系列更多内容

发布日期: 1999 年 8 月 02 日
级别: 初级
访问情况 : 841 次浏览
评论: 


您可以对 Domino R5 的 I/O 瓶颈说 “不”。

当您将数据库和数据库服务升级到 R5 时,您将获得许多输入/输出 (I/O) 子系统带来的好处。有些 I/O 优化包括事务日志、在多个逻辑磁盘单元分发多个邮件文件的最新调整、多个 MAIL.BOX 数据库,以及新的 R5 数据库格式。这些 I/O 优化可以极大地提高性能。

在本文中,我们将了解 Domino R5 在各种系统配置下的性能,尤其关注 I/O 子系统。然后我们将回顾在每种配置下的 I/O 知识。最后,我们将推荐一些 I/O 子系统配置,以便您能充分利用 Domino R5 中的性能增强。

关于 Domino R5 中的 I/O 改进

Domino R5 包括以下能够提高性能的 I/O 改进:

  • 事务日志将所有对数据库的更改按顺序 写入日志文件,然后将这些更改提交到磁盘。顺序 写入提高了 I/O 的速度。(注意:您应该将事务日志文件放到独立 的磁盘驱动器上。有关事务日志的更多信息,请参见 “优化服务器性能:事务日志”。)
  • 现在,您可以使用文件链接在多个逻辑磁盘单元上分发多个邮件文件(比如,razeyah.nsf)。这意味着您不需要使用单个整体文件。相反,Domino 可以并发交付邮件,导致并发磁盘 I/O 并提高 I/O 性能。(注意:您应该通过多个硬件 RAID 控制器卡分发逻辑磁盘单元,以最大化 I/O 子系统的吞吐量)。
  • 使用多个 MAIL.BOX 数据库,用户(和服务器流程,比如代理和路由器)可以将消息存放到任何可用的 MAIL.BOX 数据库。这可以减少许多用户同时向单个 MAIL.BOX 发送消息时创建的内容。
  • R5 数据库格式提高了数据库的整体性能,因此数据库操作需要的 I/O 更少。

注意:有关使用这些特性的深入信息,请参见 Domino 5 Administration Help


测试方法和测试数据

现在,让我们了解一下 Domino R5 中这些 I/O 改进的性能分析。我们的测试环境使用 NotesBench R5 工作负载,用于 R5 邮件、Webmail、IMAP 和 SMTP/POP3。我们比较了平均响应时间(以秒为单位)、CPU 利用率和磁盘利用率。本节介绍系统配置,以及有关工作负载的详细信息。

系统配置

要运行我们的测试,需要使用以下配置设置三个系统:

系统 1 (Windows NT)

我们的第一个系统运行 Windows NT,环境如下:

  • 系统:IBM Netfinity 7000 M10 服务器
  • CPU:4 个 Xeon PII 400MHz 处理器,每个 CPU 使用 1MB 二级缓存
  • 内存:4GB
  • 驱动器:随测试变化(详细信息见下文)
  • 两个 IBM Netfinity ServeRAID-3H Ultra SCSI (40MB/s) 控制器
  • 网络:TCP/IP
  • 操作系统:Windows NT server EE 4.0, Service Pack 4
  • Domino:Release 5 for Windows NT

系统 2 (AIX)

我们的第二个系统运行 AIX,环境如下:

  • 系统:RS/6000 Enterprise Server S70
  • CPU:12 200MHz PowerPC 处理器
  • 内存:16GB
  • 驱动器:18 4.5GB 驱动器(详细信息见下文)
  • 网络:TCP/IP
  • 操作系统:AIX 4.3.1
  • Domino:Release 5 for AIX

系统 3 (Sun Solaris)

我们的最后一个系统运行 Sun Solaris,环境如下:

  • 系统:SUN Enterprise 4500
  • CPU:8 个 336MHz UltraSPARC11 处理器,4MB 外部缓存
  • 内存:8GB
  • 驱动器:两个 8.4GB 外部驱动器和一个 Sun StorEdge A3500 Ultra SCSI 阵列,180GB 的磁盘空间(详细信息见下文)
  • 网络:TCP/IP
  • 操作系统:Solaris 2.6
  • Domino:Release 5 for Solaris

关于工作负载

我们的测试使用 NotesBench R5Mail、Webmail、R5IMAP 和 SMTP/POP3 工作负载。

注意:以下工作负载描述展示了在测试中发送消息时使用的时间间隔。您可以指定一个不同的时间间隔。

R5Mail 工作负载模拟活动用户阅读和发送邮件、安排约会、发送会议邀请等。该脚本每 90 分钟向 3 个收件人发送 6 条消息(两条备忘记录、两条约会消息和两次邀请)。对于 15 分钟脚本的每次迭代,客户端:

  • 读取 5 个文档
  • 更新 2 个文档
  • 删除 1 个文档
  • 添加 1 个文档
  • 滚动一个视图
  • 打开并关闭一个数据库

Webmail 工作负载使用 HTTP 协议模拟活动用户读取和发送邮件。所有消息都通过同一 Domino 服务器上的其他模拟 Webmail 用户发送和接收。在该脚本中,用户准备好 10k 的消息并将其发送到每 90 分钟从服务器目录中动态选出的 3 个收件人。对于 15 分钟脚本的每次迭代,客户端:

  • 读取 5 个文档
  • 删除 1 个文档
  • 打开并关闭一个数据库

R5IMAP 工作负载模拟连接 IMAP 模式(IMAP 在线模式)下的活动用户,服务器上带有邮件文件并能交互处理内容。对于 15 分钟脚本的每次迭代,客户端:

  • 检查邮件消息两次
  • 读取 5 个文档
  • 删除 1 个文档
  • 添加 1 个文档

SMTP / POP3 工作负载模拟接收 POP3 邮件和发送 SWTP 邮件的活动用户。该脚本每 30 分钟将一个 SMTP 消息发送到 3 个收件人。约 20% 的用户收到 80% 的邮件消息。对于 15 分钟脚本的每次迭代,客户端检查并检索 POP3 邮件消息。

关于测试结果

下表简单展示了我们的测试结果。有关测试结果的更多详细信息,请参见后文。

工作负载 服务器 用户数量 平均响应时间(以秒为单位) CPU 利用率 (%) 磁盘利用率 (%)
R5MailNetfinity 7000 M1010,0002.090*100
RS/6000 Enterprise S7010,0001.05512
WebmailNetfinity 7000 M102,0000.58545
SUN Enterprise 45002,0000.5656
R5IMAPSUN Enterprise 45003,0000.33525
SMTP/POP3Netfinity 7000 M105,0000.42875

* 对于第一次 R5Mail 测试,我们使用了 Domino R5 调试代码,这可能会导致很高的 CPU 和磁盘利用率。


场景 1:Windows NT

在我们的第一个评估场景中,我们在 Windows NT 系统上运行 R5 邮件、Webmail 和 SMTP/POP3 工作负载。以下几节解释详细内容和每个测试的结果。

R5 邮件

我们在有 10,000 个用户的 Windows NT 系统上运行 R5 邮件工作负载。对于存储器,系统有 22 个 9GB 10K RPM 驱动器,配置如下:

  • 4 个内部 9GB 驱动器,RAID0 Logical Unit Number (LUN),用于操作系统,Domino 可执行文件以及页面文件
  • EXP15 磁盘阵列中有 9 个 9GB 驱动器,可以配置为一个包含 5 个驱动器的 RAID0 LUN 和一个包含 4 个驱动器的 RAID0 LUN(位于 ServeRAID 控制器 1 的通道 1)
  • EXP15 磁盘阵列中有 9 个 9GB 驱动器,可以配置为一个包含 5 个驱动器的增强的 RAID1 LUN 和一个包含 4 个驱动器的 RAID0 LUN。增强的 RAID1 LUN 可以用于事务日志,RAID0 LUN 可以用于数据库(位于 ServeRAID 控制器 1 的通道 1)

在我们的第一个测试中,我们没有使用事务日志。我们仅能运行约 7,500 用户,并且会遇到 I/O 瓶颈。然后,我们启用事务日志,这使我们能够实现 10,000 个用户的目标。由两个物理磁盘驱动器组成的镜像集 —— 一个硬件 RAID1 应该足以供事务日志使用。我们使用针对事务日志的增强的 RAID1,因为我们的系统已经包含了该配置。Domino R5 支持最大 4 GB 的事务日志大小。(有关事务日志的更多信息,请参见 “优化服务器性能:事务日志”。)

对于该测试,我们不断改变 MAIL.BOX 数据库的数量,从 1 个到 2 个、5 个、7 个、10 个。我们发现,在将 MAIL.BOX 数据库从 1 个变为 2 个时,获得的性能提升是最大的。当我们将 MAIL.BOX 数据库的数量提高到 2 个以上时,得到的性能提升很小。MAIL.BOX 数据库的数量不能大于 10。

Webmail

我们在有 2,000 个用户的 Windows NT 系统上运行 Webmail 工作负载。对于存储器,系统有两个 Netfinity ServeRAID-3H Ultra SCSI 适配器/控制器,8 个 9GB 10K RPM 驱动器,2 个 2GB 驱动器,配置如下:

  • 两个内部 2GB 驱动器,一个用于操作系统和 Domino 可执行文件,另一个驱动器上有一个 1GB 的分区,用于页面文件
  • EXP15 磁盘阵列中有 4 个 9GB 驱动器,可以配置为包含 4 个驱动器的 RAID0 LUN(位于 ServeRAID 控制器 1 的通道 1),用于数据库
  • EXP15 磁盘阵列中有 4 个 9GB 驱动器,可以配置为包含 4 个驱动器的 RAID0 LUN(位于 ServeRAID 控制器 2 的通道 1),用于数据库

在我们的第一个测试中,该系统有一个大型 LUN(RAID0 LUN),它由两个 4 磁盘驱动器组成。每个控制器上都有一个驱动器集。我们在操作系统级别上将 LUN 连接到数据库的一个逻辑单元。我们还使用一个 MAIL.BOX 数据库。使用这种配置,我们会遇到 I/O 瓶颈 —— 数据库 LUN 上的磁盘利用率会涨到 100%。

因此,我们切换为两个独立的 LUN。然后,我们利用了 Domino R5 对邮件文件的多个数据存储器的支持。我们在第二个 LUN 上创建第二个数据目录 —— data2。然后,我们使用目录链接连接两个数据目录。(有关创建目录和数据库链接的信息,请参见 Domino 5 Administration Help。)我们在每个数据目录分发 1,000 个邮件文件。通过这次更改,我们将磁盘利用率从单个大型 LUN 情况下的 100% 变为两个 LUN 情况下的 45%,因为这时消息是并发交付的。

此外,我们将 MAIL.BOX 数据库的数量从 1 个变为 2 个。当我们的 MAIL.BOX 数据库从 1 个变为 2 个时,我们发现性能明显提升。然后,我们将 MAIL.BOX 数据库从 2 个变为 4 个,这时提高的性能很有限。

因此,通过使用两个数据存储和两个 MAIL.BOX 数据库,我们实现了 2,000 Webmail 用户的目标。

SMTP/POP3

我们在有 5,000 个用户的 Windows NT 系统上运行 SMTP/POP3 工作负载(我们仅使用 4 个 CPU 中的其中 2 个)。对于存储器,系统有 22 个 9GB 10K RPM 驱动器,配置如下:

  • 4 个内部 9GB 驱动器,配置为 JBOD(磁盘捆绑),操作系统、页面文件、Domino 可执行文件和事务日志分别使用一个驱动器
  • EXP15 磁盘阵列中有 9 个 9GB 驱动器,RAID0 LUN,用于数据库(位于 ServeRAID 控制器 1 的通道 1)
  • EXP15 磁盘阵列中有 9 个 9GB 驱动器,RAID0 LUN,用于数据库(位于 ServeRAID 控制器 2 的通道 1)

使用该配置,我们不会遇到 I/O 性能瓶颈,因为我们通过两个 ServeRAID 控制器(使用目录链接)分发和平衡邮件文件。同样,我们使用了事务日志,因此我们很轻松地实现了 5,000 SMTP/POP3 用户的目标。该配置中我们使用了 7 个 MAIL.BOX 数据库。


场景 2:AIX

在我们接下来的评估场景中,我们在有 10,000 个用户的 AIX 系统上运行 R5 邮件工作负载。对于存储器,系统有 18 个 4.5GB 的驱动器,配置如下:

  • 两个 4.5GB 内部磁盘驱动器逻辑卷组,用于操作系统、Notes 二进制文件和交换
  • 4 个 7133-020 SSA Disk 子系统用于数据库,带有:
    • 两个 SSA 控制器(80 MB/s)
    • 两个环路中有 16 个磁盘驱动器,每个环路 8 个。我们使用磁盘间最大策略(inter-policy maximum)和磁盘内居中策略(intra-policy center)将 16 个磁盘驱动器配置到一个逻辑卷组中。

我们从 IBM RS/6000 组接收该 AIX 机器,该组预配置了逻辑卷组。它们通过两个环路平衡和分发了磁盘驱动器。使用该配置,我们不会遇到 I/O 性能瓶颈。SSA 子系统非常高效,10,000 个 R5 邮件用户时磁盘利用率是 12%。在该配置中我们使用了 7 个 MAIL.BOX 数据库。


场景 3:Sun Solaris

在最后一个评估场景中,我们在 Sun Solaris 系统上运行 Webmail 和 IMAP 工作负载。对于所有测试,系统的存储器配置如下:

  • 两个 8.4GB 外部存储器,其中一个驱动器安装操作系统,另一个存储 Domino 二进制文件
  • 一个 Sun StorEdge A3500 Ultra SCSI 存储器阵列,180GB 磁盘空间,配置如下:
    • 20 个 9GB 10K RPM 驱动器
    • 两个控制器模块,每个模块有两个 Ultra SCSI 控制器卡
    • 8 个 SBus Ultra Differential FW SCSI 主机适配器,通过 8 个 Ultra SCSI (40 MB/s) 总线连接
    • 4 个硬件 RAID0 LUN,每个 LUN 有 5 个驱动器。我们在 Ultra SCSI 控制器卡上分发和平衡每个 RAID0 LUN。其中 3 个 RAID0 LUN 用于数据库,1 个用于交换空间。

使用该配置,我们成功实现了 2,000 个 Webmail 用户和 3,000 个 IMAP 用户的目标。该场景的一个优势在于,我们在学习了 Windows NT 和 AIX 平台上的 I/0 知识后,我们采用了 Sun 机器。因此,我们确定每个 A3500 阵列都有多个控制器模块,而且我们平衡了每个控制器卡上的 4 个 RAID0 LUN,用于数据库和交换空间。此外,每个控制器卡都使用自己的 Ultra SCSI 总线连接到自己的主机适配器。

Domino R5 并发传递邮件,导致并发磁盘 I/O 和提高的 I/O 性能。磁盘利用率非常低(Webmail 6%,IMAP 25%),因此该配置允许数据库进一步增长。在该配置中我们使用 7 个 MAIL.BOX 数据库。


推荐 I/O 配置

为了优化服务器的 I/O 性能,我们建议您查看 Domino 数据库、事务日志和存储器的配置。

Domino 数据库

正如前文提示,您现在可以使用文件链接跨多个逻辑磁盘单元分发多个邮件文件。要分发文件,您可以在 Windows NT 上使用目录链接,在 UNIX 上使用符号链接。(该特性是 Windows NT 的新特性,但已经可用于 UNIX。)然后 Domino 可以并发发送邮件,实现并发 I/O 并提高 I/O 性能。

这里重要的是,您必须使用多个 RAID LUN 存储数据。您应该通过多个硬件 RAID 控制器卡分发和平衡 LUN,以便最大化 I/O 子系统的吞吐量。如果您使用多个 RAID 阵列,请确保将每个阵列置于自己的主机适配器上(最好是自己的 I/O 主板),以便主机适配器/主板不会影响性能。

此外,您应该使用硬件 RAID0+1(镜像和分条)或 RAID1 Enhanced(分条和镜像)实现 Domino 数据库的最佳性能。这个建议是我们比较了各种工作负载下对磁盘的写入和读取访问率后得出的。我们的结果显示,工作负载是写入密集型的。(要了解有关监控自己应用程序磁盘数据的更多信息,请参见 Lotusphere 演示,Deploying R5 for Performance and Scalability in your Environment。)

对于写入密集型的应用程序,您不应该使用 RAID5。RAID5(奇偶校验和分条)写入需要三个额外的磁盘 I/O,而 RAID 0+1 和 RAID1 Enhanced 写入只需要一个额外的磁盘 I/O。有关 RAID 级别以及读取/写入访问测试结果的更多信息,请参见侧栏 “配置 RAID 级别以提高 I/O 性能。”

注意,您应该对 Domino 数据库使用硬件 RAID 而不是软件 RAID。软件 RAID 的效率比硬件 RAID 的效率低,会给服务器的 CPU 带来更多开销。同样,打开硬件 RAID 控制器上的回写缓存。我们建议对 RAID LUN 使用分条或 32KB 或 64KB 的块大小,SMTP/POP3 工作负载除外,这种情况下我们建议使用 64KB。

最后,我们意识到您可能对数据存储使用 RAID0+1 或 RAID1 Enhanced,因为这些 RAID 级别的有效存储率为 50%。(有关详细信息,请参见侧栏 “配置 RAID 级别以提高 I/O 性能。”)因此,选择 RAID 级别时要权衡性能和成本。尤其要查看他们的 I/O 子系统、主机适配器和控制器的数量和类型,以及磁盘配置。这些报告中包含使用 RAID0+1、RAID1 Enhanced 和 RAID 5 的性能结果。

事务日志

使用 Domino R5 事务日志,所有更改都按顺序 写入磁盘,这会得到更快的 I/O。有关事务日志的性能分析,请参见 “优化服务器性能:事务日志。”

您应该为事务日志文件分配一个独立 磁盘驱动器 —— 不能 与 Domino 数据库、交换文件、操作系统使用相同的驱动器,也不能是 Domino 用于重建视图的临时目录。我们强烈建议使用硬件 RAID1(执行了镜像的两个磁盘驱动器),这会提高您的系统可用性和可靠性。所需的成本只是一个磁盘驱动器的价格!

要进一步最大化性能并降低 I/O 争用,可以将事务日志文件放到自己的主机适配器端口。更好的方法是,将日志文件放到自己的 RAID 控制器上。同样,要打开 RAID 控制器上的回写缓存供事务日志文件使用。

其他存储器

最后,您应该使用独立磁盘驱动器供交换和页面文件使用,并作为 Domino 用于重构视图的临时空间。如果您有额外的 RAID 控制器,要为临时空间配置一个至少包含两个磁盘驱动器的 RAID0 LUN。要做到这一点,添加以下 NOTES.INI 设置,以将临时视图重建指向额外磁盘或 LUN:

VIEW_REBUILD_DIR=/extra_LUN

我们希望您可以使用这些建议移除系统中的任何 I/O 瓶颈!


参考资料

关于作者

Razeyah Stephen 是一名 Domino 性能工程师,她从 1998 年开始工作于 Iris。她从 Digital Equipment Corporation(现在的 Compaq)转到 Iris 工作,她曾在他们的 StorageWorks 部门工作了 5 年。Razeyah 的特长是 UNIX 性能。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=398649
ArticleTitle=优化 Lotus Domino 服务器性能: I/O 子系统
publish-date=08021999
author1-email=RazeyahStephen@laura.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。