IBM Lotus Domino V8 服务器和 IBM Lotus Notes V8 客户机:性能

维持 IBM Lotus Domino V8 邮件服务器对于 IBM Lotus Notes V8 客户机的可伸缩性是非常重要的,本文将证明 Lotus Domino V8 不仅保持了原有的性能水平,而且超越了以前的版本。我们将展示 Lotus Domino V8 和 Lotus Notes V8 客户机在各种服务器平台上的性能表现。

IBM Lotus Notes/Domino Performance Team, 软件性能分析师, EMC

为本文做出贡献的 IBM Lotus Notes/Domino Performance Team 成员包括 Eric Bjorklund、Rich Buck、Wu W Huang、Angelo Lynn、James Powers、Andrew Nolet 和 Nirmala Venkatraman。



2009 年 3 月 09 日

IBM Lotus Notes/Domino V8 提供了一种全新的经过重新设计的 Lotus Notes 客户机,它增强了功能特性,并提供了非常出色的用户界面。Lotus Domino 邮件服务器是否能为这种新客户机提供相符的性能,对于用户来说是非常重要的。在本文中,我们将证明 Lotus Domino V8 的性能水平事实上超越了以前的版本。同时,还将展示 Lotus Domino V8 和 Lotus Notes V8 客户机在以下服务器平台上的性能表现:

  • IBM AIX
  • Linux
  • Sun Solaris
  • IBM System i
  • Microsoft Windows Server 2003
  • Linux on System z
  • IBM z/OS

我们通过常见的邮件和日历场景,用数千个模拟用户进行测试。因为新的客户机改变了对 Lotus Domino 服务器的一些请求,所以我们创建了一个新的工作负载(N8Mail),它模拟在真实的 Lotus Notes V8 用户执行所选任务时 Lotus Notes V8 客户机发起的事务。我们还对 Lotus Notes V7 客户机做了同样的工作,创建了 N7Mail 工作负载,它模拟同样的用户操作,但是采用 Lotus Notes V7 客户机产生的请求集。

我们还改变了测试方法,以求更精确地反映客户采用的部署环境。除了新的工作负载之外,我们在用户的邮件文件中放置了 3,000 个不同大小的文档。我们还启用了事务日志记录、邮件日志、Domino Domain Monitoring(DDM)探测和邮件规则。在测试期间,还运行默认的服务器任务。因此,产生的工作负载比以前的 R6Mail 工作负载大得多,所以不应该对这两种工作负载的性能测试结果进行对比。另外,我们不再给出可能的最大用户数,而是主要关注大约有 4,000 个用户的典型部署环境。关于新的工作负载的更多细节,请参考 “IBM Lotus Notes V8 工作负载:将性能提升到新的水平”。

本文所用的测试套件的设计目标是,帮助您对比 Lotus Domino V8 和 Lotus Domino V7 的性能,并帮助您制订升级计划:

  • 将第一个测试作为基线。这个测试采用 Lotus Domino V7 服务器,运行 Notes V7 邮件数据库(使用 mail7.ntf 模板)和 N7Mail 工作负载(模拟 Lotus Notes V7 客户机邮件用户)。
  • 第二个测试是一种混合型环境,它代表正处于迁移过程中的客户。这个测试采用 Lotus Domino V8 服务器,但是这个服务器运行基于 mail7.ntf 的邮件数据库(Lotus Domino V8 ODS 48 level,这是在 Lotus Domino V8 服务器上创建的数据库的典型情况),使用 N7Mail 工作负载(模拟还没有迁移到新的 Lotus Notes V8 的用户)。
  • 最后一个测试是纯粹的 Lotus Domino V8 测试。它采用 Lotus Domino V8 服务器,运行 Lotus Notes V8 邮件数据库(使用 mail8.ntf 模板)和 N8Mail 工作负载(模拟新的 Lotus Notes V8 客户机邮件用户)。

为了便于参考,表 1 列出了本文中图表所用的标签。

表 1. 性能测试结果的标签
测试套件工作负载模板ODS服务器
Lotus Domino V7N7MailMail7.ntf43Lotus Domino V7.0
Lotus Domino V8/V7 templateN7MailMail7.ntf48Lotus Domino V8.0
Lotus Domino V8N8MailMail8.ntf48Lotus Domino V8.0

下面几节中给出的 Lotus Domino 服务器 Notes.ini 设置值是经过多次测试和大量统计分析后调整的结果。我们并不建议直接使用这些值,应该通过分析 Lotus Domino 生产服务器的性能来确定它们。还要注意,这里针对某一平台给出的 Notes.ini 设置可能不适合另一个平台。对 INI 参数的解释和判断最优值范围的方法,请参考本文末尾的附录。在基于 Lotus Domino V8 模板创建数据库时,需要 Notes.ini 设置 Create_R8_Databases=1。本文中的所有 Lotus Domino V8 测试都使用这个设置。

注意:本文中的结果来自在一个受控环境中执行的基准。尽管在创建这个基准时力求包含典型的用户操作,但是基准所测试的功能范围毕竟比较窄,真实用户使用 Lotus Domino 的模式很可能不一样。因此,这些性能结果数据只应该用来理解 Lotus Domino 版本的相对性能。这些测试结果不作为对真实部署环境的建议。在制订容量计划时,建议您咨询自己的硬件供应商和 IBM TechLine,他们可以帮助您制订容量计划和新硬件的采购方案。

尽管我们会给出许多硬件平台上的性能结果,但是这些配置的容量并不一致。我们主要关注 Lotus Domino 的性能,这些数据不应该作为比较不同平台的性能的依据。

现在,我们来看看不同服务器平台上的结果。

IBM AIX 结果

表 2 给出 AIX 配置的细节,清单 1 给出 AIX 的 Notes.ini 设置。

表 2. AIX 的配置
Lotus Domino 服务器配置细节
型号P570 PowerPC_POWER5
测试用的 CPU/速度 两个物理 CPU/两个逻辑 CPU(SMT),1.5 GHz
安装的内存16 GB RAM
活动的物理驱动器IBM FastT Fiber Channel 存储,7 个 tray,每个 tray 有 14 个 15,000 RPM,使用 RAID 0
活动的逻辑卷 3 个阵列用于 Lotus Domino 二进制代码/数据,一个阵列用于事务日志记录
OSIBM AIX 5.3 ML5 64 位
清单 1. AIX 的 Notes.ini 设置
ServerTasks=Replica,Router,Update,AMgr,Adminp,Sched,CalConn,RnRMgr,LDAP
NLCACHE_SIZE=159383552
Server_Transinfo_range=22
NSF_Buffer_Pool_Size_MB=250
NSF_DBUCACHE_MAX_ENTRIES=6000
RouterDbCacheSize=6100
Server_Pool_Tasks=100
Server_Max_Concurrent_Trans=100
Server_Show_Performance=1
NSF_DbCache_MaxEntries=6000
SCHEDULE_NO_VALIDATE=1

我们使用的 pSeries 测试机器是一台配置为多个 LPAR 的 p570+。(逻辑分区 LPAR 是一种将一台计算机的处理器、内存和其他硬件资源划分为多个环境的机制,每个环境有自己的操作系统和应用程序,可以独立地运行。)这些测试使用的 LPAR 配置为一个单一 DPAR(运行一个 Lotus Domino 服务器实例的 Domino 分区)。我们为这个 LPAR 配置了两个(有上限)物理 CPU。因为将运行 AIX 5.3,所以使用了 SMT(Symetrical Multi Threading)特性,这会再启用两个逻辑 CPU。

IBM FastT Fiber Attached Storage 使用 RAID 0 和 JFS2。图 1 显示 AIX 平台的 CPU 繁忙百分比。

图 1. AIX 的 CPU 繁忙百分比
AIX 的 CPU 繁忙百分比

我们看到,从 1,000 到 4,000 个虚拟用户,这三个测试用例的 CPU 繁忙百分比非常接近。

图 2. AIX 的每秒总磁盘 I/O 操作数
AIX 的每秒总磁盘 I/O 操作数

图 2 显示每秒总磁盘 I/O 操作数,这是在稳定状态下报告的数据。按照每次增加 1,000 个模拟用户的方式应用模拟负载,测试方式分别为:

  • 在 Lotus Domino V7.0 服务器上运行 N7Mail 工作负载,采用用基于 mail7.ntf 的数据库创建的 ODS 43 邮件文件
  • 在 Lotus Domino V8.0 服务器上运行 N7Mail 工作负载,采用用基于 mail7.ntf 的数据库创建的 ODS 48 邮件文件
  • 在 Lotus Domino V8.0 服务器上运行 N8Mail 工作负载,采用用基于 mail8.ntf 的数据库创建的 ODS 48 邮件文件

对于每个模拟用户数量,为了测量每秒磁盘 I/O 操作数,我们使用操作系统命令 iostat –DR。通过一个脚本(大约)每 20 分钟发出这个命令一次,然后计算在一小时的稳定状态期间的平均值。应该通过分析这些命令(iostat –DR 和/或 iostat –d)寻找繁忙的磁盘、文件系统和磁盘队列,可以通过调整这些热点提供更好的存储吞吐量。

注意:应该禁用 Lotus Domino 数据的预读取/读缓存。因为 Lotus Domino 不是关系型数据库,而且不进行连续的写操作(事务日志记录负担不了),所以 SAN(Storage Area Network)中的预读取性能改进不会提高性能。应该为写缓存提供尽可能多的 RAM。这个缓存有助于防止写请求变慢。

表 3. AIX 对于 4,000 个用户的资源使用情况
资源Lotus Domino V7Lotus Domino V8百分比变化
邮件模板Mail7.ntfMail8.ntfN/A
工作负载N7MailN8MailN/A
CPU 繁忙百分比6159-3.3%
每秒总??盘读数量734375-49%
每秒总磁盘写数量896619-31%
所使用的共享内存(MB)1,2491,49820%
所使用的进程内存(MB)28.639.839%
每秒网络传输字节数2,426,5902,903,36220%

对于 Lotus Domino V8,在安装了足够多的内存(通常等于或多于 4 GB RAM)的机器上,NSF 缓冲池的默认值是 512 MB,也可以显式地将 NSF Buffer_Pool_Size_MB 值改为默认值 512 之外的其他值。应该不再需要 ConstrainedSHM,我们建议不使用它,除非绝对必需。

在 Lotus Domino V7.0.2 和 IBM AIX 5LTM 5.2 或更高版本上,当使用 64 位内核时,我们启用 AIX_Very_Large_MM=1,这会把共享内存可用的 256 MB 内存段数量从 11 个增加到 13 个(增加两个内存段)。动态段分配让用户堆或共享内存可以使用额外的段。Lotus Domino 最初将前两个可用的段(0x3 和 0x4)作为用户堆内存,将最后一个段(0xF)作为共享内存。随着 Lotus Domino 内存需求的增长,分配给堆的段从 0x3/0x4 开始向上增长,分配给共享内存的段从 0xF 开始向下增长。要想查明 Lotus Domino 和其他应用程序使用了多少个段,可以使用以下命令之一:

ipcs –bm | grep <notes_id>
svmon -P


Linux 结果

本节介绍 Linux 测试的 NRPC 结果。测试使用一个 Intel 系统,运行 64 位的 Linux 版本 SuSE SLES 10 x86/64。尽管这个操作系统是 64 位的,但是测试使用的 Lotus Domino 版本都是 32 位的。在 64 位 Linux 上运行 32 位应用程序(比如 Lotus Domino)是有好处的。好处之一在内存方面。在 32 位 Linux 上,32 位的应用程序最多只能使用 3 GB 的内存;而在 64 位 Linux 上,32 位的应用程序最多可以使用 4 GB 的内存。Lotus Domino 可以利用增加的内存处理更多的服务器任务或应用程序。

表 4 给出 Linux 配置的细节,清单 2 给出 Linux 的 Notes.ini 设置。

表 4. Linux 的配置
Lotus Domino 服务器配置 细节
平台Intel Xeon MP 双核,带超线程
测试用的 CPU/速度四个,3400 MHz
安装的内存8 GB
活动的物理驱动器99
活动的逻辑卷 14 个 RAID 0 阵列
OSSLES 10 x86-64
清单 2. Linux 的 Notes.ini 设置
Show_Server_Performance=1
platform_statistics_enabled=1
SCHEDULE_NO_VALIDATE=1
MEM_AddressableMemSizeMB=3500
ConstrainedSHMSizeMB=3000
MEM_EnablePreAlloc=1
EVENT_POOL_SIZE=41943040
NSF_DBcache_maxentries=6000
NSF_buffer_pool_size_MB=512
Server_Max_Concurrent_trans=200
server_pool_tasks=100
RouterDbCacheSize=6100
Servertasks=Replica,Router,Update,AMgr,Adminp,Sched,CalConn,RnRMgr,LDAP

这组测试使用的测试服务器使用四个 Intel Xeon MP 双核 CPU,启用了超线程。它有 8 GB 的 RAM,有三个 DS4000 磁盘子系统,配置为 14 个 RAID 0 阵列。对于这些测试,模拟的邮件用户数据库均匀地分散在 14 个阵列上。DS4000 之一上的一个驱动器用于 Lotus Domino 事务日志文件。这些测试使用新的 N7Mail 和 N8Mail 工作负载。

对于这个 Linux 环境比较重要的一些 Notes.ini 参数如下:

  • MEM_AddressableMemSizeMB=3500
  • ConstrainedSHMSizeMB=3000
  • MEM_EnablePreAlloc=1

这些服务器 Notes.ini 参数控制 Lotus Domino 服务器的内存分配。正如前面提到的,运行 64 位 Linux 的系统可以给 32 位的应用程序分配 4 GB 内存。Notes.ini 参数 MEM_AddressableMemSizeMB=3500 告诉 Lotus Domino 它可以使用 3.5 GB 内存。这听起来似乎有点儿矛盾,因为我们提到过 32 位的应用程序可以使用 4 GB 内存。但是实际上,操作系统需要用这 4 GB 内存的一部分处理映射和其他内存池,这是它运行的所有 Lotus Domino 任务所需要的。通常,500 MB 就足够了。

下一个 Notes.ini 参数(ConstrainedSHMSizeMB=3000)告诉 Lotus Domino 它可以使用多少共享内存。因为 Lotus Domino 需要的内存主要是共享内存,对于这些测试,我们将这个参数指定为 3 GB。

第三个 Notes.ini 参数(MEM_EnablePreAlloc=1)指示 Lotus Domino 预先分配 Notes.ini 参数中定义的共享内存。这有助于防止 Lotus Domino 由于发生共享内存不足错误而崩溃,但是这也有缺点,因为锁定的共享内存量超过了所需要的内存量。这样做可能导致应用程序可用的局部内存不足,从而导致内存不足错误和应用程序失败。

图 3 显示在前面描述的配置中运行 N7Mail 和 N8Mail 工作负载时,不同的模拟用户数产生的 CPU 繁忙百分比。从图中可以看出,与 Lotus Domino V7 相比,Lotus Domino V8 在两个测试中都降低了 CPU 使用率。

图 3. Linux 的 CPU 繁忙百分比
Linux 的 CPU 繁忙百分比

图 4 显示在运行 N7Mail 和 N8Mail 工作负载时,不同的模拟用户数产生的每秒总读/写操作数。这个图说明,在使用基于 mail7.ntf 和 mail8.ntf 的数据库时,使用 Lotus Domino V8 都会减少 I/O 操作数量。它还说明,与 Lotus Domino V7 相比,用 Lotus Domino V8 和基于 mail8.ntf 的数据库会取得最好的结果。

图 4. Linux 的每秒总磁盘 I/O 操作数
Linux 的每秒总磁盘 I/O 操作数

表 5 显示对于 4,000 个模拟用户在稳定状态下的资源使用情况。表中对比了 Lotus Domino V7(使用基于 mail7.ntf 的数据库,运行 N7Mail 工作负载,模拟 Notes 7 邮件用户)和 Lotus Domino V8(使用基于 mail8.ntf 的数据库,运行 N8Mail 工作负载,模拟新的 Lotus Notes V8 邮件用户)。

CPU 繁忙百分比反映了图 3 中显示的信息。这说明与 Lotus Domino V7 相比,Lotus Domino V8 可以降低 CPU 使用率。

Lotus Domino V8 中的重要特性之一是减少了 I/O 活动。图 4 以图形方式说明了 I/O 活动的减少,而表 5 给出了具体的数据。在这个表中,“所使用的共享内存” 字段说明这两个测试都使用了大约 3 GB 的内存。这是因为每个测试都预先分配了共享内存。Lotus Domino V8 测试的每秒网络传输字节数比较大,这是因为为了测试 Lotus Notes V8 客户机的额外功能,N8Mail 工作负载要执行更多的操作。

表 5. Linux 对于 4,000 个用户的资源使用情况
资源Lotus Domino V7Lotus Domino V8百分比变化
邮件模板 Mail7.ntf Mail8.ntfN/A
工作负载N7MailN8MailN/A
CPU 繁忙百分比11.069.09-17.8%
每秒总磁盘读数量927465 -49.8%
每秒总磁盘写数量900744-17.3%
所使用的共享内存(MB) 2,9532,9530%
每秒网络传输字节数2,763,3973,309.59816%

这些测试提供的数据可以帮助您为在 Linux 平台上升级到 Lotus Domino V8 的工作制定计划。您应该能够体会到 Lotus Domino V8 对 CPU 使用率和 I/O 数量的改进效果。


Sun Solaris 结果

表 6 给出 Sun Solaris 测试使用的配置,它使用一个有 8 个 CPU 的 Sun 服务器。Solaris 使应用程序能够使用几乎整个 4 GB 的地址空间;对于这个环境,Lotus Domino 的配置方式尽可能利用了大量可用内存。清单 3 给出 Solaris 的 Notes.ini 设置。

表 6. Solaris 的配置
Lotus Domino 服务器配置 细节
型号Sun 6800
测试用的 CPU/速度8 个 CPU,1050 MHz
安装的内存32 GB
活动的物理驱动器63
活动的逻辑卷 7 个 T3 阵列,配置为 RAID 0
OSSolaris 10
清单 3. Solaris 的 Notes.ini 设置
server_pool_tasks=100
server_max_concurrent_trans=100
NSF_Buffer_Pool_Size_MB=1024
NLCACHE_SIZE=159383552
EVENT_CORRELATION_POOL_SIZE=20971520
RouterDbCacheSize=5100
nsf_dbcache_maxentries=5100
log_mailrouting=10
SCHEDULE_NO_VALIDATE=1
MEM_EnablePreAlloc=1
DEBUG_ENABLE_SYS_V_SHM=1
ConstrainedSHMSizeMB=3300
ServerTasks=Update,Replica,Router,AMgr,AdminP,CalConn,Sched,RnRMgr,LDAP

Solaris 测试使用的服务器是使用 8 个 CPU 的 Lotus Domain,有 6 个磁盘阵列用来存储 Lotus Domino 的数据和可执行文件。另外,第 7 个阵列上的两个文件系统用来存储事务日志和日志文件。启用了 Solaris 大页面支持,并为 Lotus Domino 预先分配了 3300 MB 的共享内存。

图 5 显示对于 Lotus Notes V7 用户和 Lotus Notes V8 用户,Lotus Domino V8 在 CPU 使用率方面的性能改进。Lotus Domino V7 和 Lotus Domino V8/V7 template 这两个测试使用 N7Mail 工作负载,这种工作负载模拟 Lotus Notes V7 客户机的行为。Lotus Domino V8 测试使用 N8Mail 工作负载,这种工作负载模拟经过重新设计的 Lotus Notes V8 客户机。CPU 使用率是通过 Domino 平台统计数据报告的。

图 5. Solaris 的 CPU 繁忙百分比
图 5. Solaris 的 CPU 繁忙百分比

如图 6 所示,Lotus Notes/Domino V8 还减少了磁盘 I/O 操作总数。但是,对于处于迁移过程中的 Lotus Notes V7 用户,这个数字增加了。这里的 I/O 数量是通过 Solaris iostat 命令计算出来的,是 6 个数据卷以及事务日志和日志文件系统上读写操作的总和。

图 6. Solaris 的每秒总磁盘 I/O 操作数
Solaris 的每秒总磁盘 I/O 操作数

表 7 显示在有 4,000 个用户时的资源使用情况。

表 7. Solaris 对于 4,000 个用户的资源使用情况
资源 Lotus Domino V7Lotus Domino V8百分比变化
邮件模板Mail7.ntf Mail8.ntfN/A
工作负载N7MailN8MailN/A
CPU 繁忙百分比39.935.1-12.0%
每秒总磁盘读数量158114-27.8%
每秒总磁盘写数量894735-17.8%
所使用的内存(MB)3,1853,1940.3%
每秒网络传输字节数2,190,7602,601,33118.7%

在有 4,000 个用户时,Lotus Domino V8 在 CPU 和磁盘 I/O 方面优于 Lotus Domino V7,但是网络使用量增加了。网络和内存使用量数据来自 Solaris netstat 和 prstat 命令。因为我们为 Lotus Domino 预先分配共享内存,所以这两个测试之间的差异很小。


IBM System i 结果

表 8 给出在 IBM System i 上测试 Lotus Domino 所用的硬件和软件配置,清单 4 给出 Notes.ini 设置。

表 8. System i 的配置
Lotus Domino 服务器配置 细节
型号System i 520
测试用的 CPU/速度2 个 CPU,1.9 GHz
安装的内存32 GB
磁盘驱动器98
OSi5/OS V5R4M0
清单 4. System i 的 Notes.ini 设置
RouterDbCacheSize=6100
NSF_Buffer_Pool_Size_MB=300
NSF_DBCache_MaxEntries=6100
Server_Pool_Tasks=100
Server_Max_Concurrent_Trans=-1
Schedule_No_Validate=1

这个测试环境??用一台 System i Model 520,有两个处理器、32 GB 内存和 98 个磁盘驱动器(带 RAID-5 保护)。这个系统配置了一个 Lotus Domino 分区。Lotus Domino V7 和 Lotus Domino V8 都使用 N7Mail 工作负载(使用 Lotus Domino V7 邮件模板)进行了测试。还用 N8Mail 工作负载(使用 Lotus Domino V8 邮件模板)测试了 Lotus Domino V8。每个测试都采用 1,000、2,000、3,000 和 4,000 个用户运行,在每个数据点都收集性能数据,见图 7。

图 7. System i 的 CPU 繁忙百分比
System i 的 CPU 繁忙百分比

对于 N7Mail 和 N8Mail 工作负载,在每个数据点上,Lotus Domino V8 都降低了系统的 CPU 使用率。这说明,Lotus Notes V7 和 Lotus Notes V8 客户机都受益于 Lotus Domino V8 中的 CPU 使用率改进。

图 8. System i 的每秒总磁盘 I/O 操作数
System i 的每秒总磁盘 I/O 操作数

对于 N7Mail 和 N8Mail 工作负载,在每个数据点上,Lotus Domino V8 还降低了系统的总磁盘 I/O 操作数(见图 8)。这说明,Lotus Notes V7 和 Lotus Notes V8 客户机都受益于 Lotus Domino V8 中的磁盘 I/O 改进。表 9 显示在有 4,000 个用户时的资源使用情况。

表 9. System i 对于 4,000 个用户的资源使用情况
资源 Lotus Domino V7Lotus Domino V8百分比变化
邮件模板Mail7.ntf Mail8.ntfN/A
工作负载N7MailN8MailN/A
CPU 繁忙百分比42.737.3-13%
每秒总磁盘读数量28741043%
每秒总磁盘写数量829578-30%
每秒基本池页数26237142%
每秒网络传输字节数2,404,3522,979,840 24%

在有 4,000 个用户时,Lotus Domino V8 降低了系统的 CPU 使用率。Lotus Domino V8 的页面失效率和磁盘读数量高,但是磁盘写数量低。因为 Lotus Domino V7 的大多数磁盘 I/O 操作是写操作,所以 Lotus Domino V8 实际上降低了磁盘 I/O 操作的总数。Lotus Domino V8 的网络使用量增加了。

对于 Lotus Notes V7 和 Lotus Notes V8 客户机,在典型的 System i 配置中,Lotus Domino V8 可以降低 CPU 使用率和磁盘 I/O 操作总数。


Microsoft Windows Server 2003 结果

表 10 给出 Microsoft Windows 测试所用的硬件和软件配置,清单 5 给出 Notes.ini 设置。

表 10. Microsoft Windows Server 2003 的配置
Lotus Domino 服务器配置 细节
型号IBM x3850-[8863MC1]
测试用的 CPU/速度8 个 CPU,3.6 GHz
安装的内存8 GB
活动的物理驱动器42 个磁盘
活动的逻辑卷6 个 RAID 0 阵列
OSMicrosoft Windows Server 2003 Enterprise x64
清单 5. Microsoft Windows Server 2003 的 Notes.ini 设置
platform_statistics_enabled=1
server_pool_tasks=80
server_max_concurrent_trans=100
Show_Server_Performance=1
RouterDbCacheSize=6100
NSF_DBcache_maxentries=6000
server_pool_tasks=80
SCHEDULE_NO_VALIDATE=1
CONSOLE_LOG_ENABLED=1
NSF_Buffer_Pool_Size_MB=250

这个 Lotus Domino V8 测试环境设置为 eServer xSeries 3850 上的一个分区服务器,运行 Microsoft Windows Server 2003 Enterprise x64,Microsoft Windows 操作系统识别 8 个处理器和 8 GB 内存。Lotus Domino 可执行文件安装在一个 IBM FAStT 600(200 GB,RAID 0)上。邮件数据库分散在三个 IBM FAStT 600 阵列上(每个 800 GB,也是 RAID 0)。事务日志设置在单独的三磁盘阵列上(200 GB,RAID 0)。邮件日志设置在单独的磁盘阵列上。Windows Page File 放在单独的单磁盘阵列上。通过一个 1 GB 以太网适配器进行网络访问,采用全双工模式。

与其他平台上的测试结果一样,在 Microsoft Windows Server 2003 Enterprise x64 上运行的 Lotus Domino V8 也改进了 CPU 使用率和 I/O 性能,见图 9。我们用最多 4,000 个用户进行测试,从而代表典型的客户环境。

图 9. Microsoft Windows Server 2003 的 CPU 繁忙百分比
Microsoft Windows Server 2003 的 CPU 繁忙百分比

如图 10 所示,与 Lotus Domino V7 相比,Lotus Domino V8 在几个模拟用户数量级别上都显著降低了 I/O 数量。I/O 总数的降低是 Lotus Domino V8 的一项重要改进。按照每次增加 1,000 个模拟用户的方式应用模拟负载,测试方式分别为:

  • 在 Lotus Domino V7 服务器上运行 N7Mail 工作负载,采用用 mail7.ntf 模板创建的 ODS 43 邮件文件
  • 在 Lotus Domino V8 服务器上运行 N7Mail 工作负载,采用用 mail7.ntf 模板创建的 ODS 48 邮件文件
  • 在 Lotus Domino V8 服务器上运行 N8Mail 工作负载,采用用 mail8.ntf 模板创建的 ODS 48 邮件文件
图 10. Microsoft Windows Server 2003 的每秒总磁盘 I/O 操作数
Microsoft Windows Server 2003 的每秒总磁盘 I/O 操作数

表 11 中的统计数据是通过 Lotus Domino 平台统计和 Microsoft Windows Performance Monitor 获得的。可以使用下面的 Performance Monitor 计数器检查磁盘 I/O、内存和 CPU 使用率,这会精确地反映 Microsoft Windows 操作系统上的 Lotus Domino 服务器的资源使用情况:

  • Logical disk - total disk read/sec
  • Logical disk - total disk write/sec
  • Process - private bytes
  • Process - virtual bytes
  • Processor - percent processor time
表 11. Microsoft Windows Server 2003 对于 4,000 个用户的资源使用情况
资源 Lotus Domino V7Lotus Domino V8百分比变化
邮件模板Mail7.ntf Mail8.ntfN/A
工作负载N7Mail N8MailN/A
CPU 繁忙百分比19.218.1-5.7%
每秒总磁盘读数量690292-57.6%
每秒总磁盘写数量1512617-59.1%
所使用的共享内存(MB) 1,5031,70315.1%
所使用的进程内存(MB)131113-13.5%
每秒网络传输字节数 2,632,1803,071,60216.7%

这个测试(和前面的测试)证明,与 Lotus Domino V7 相比,Lotus Domino V8 改进了性能和总拥有成本(TCO)。在我们的测试中,升级到 Lotus Domino V8 和 Notes V8 邮件模板使磁盘读写总数降低了 50% 以上。


Linux on System z 结果

在 I/O 和 CPU 两方面,Linux on System z 上的 Lotus Domino V8 都取得了不错的性能结果。表 12 给出 Linux on System z 测试的配置,清单 6 给出 Notes.ini 设置。

这里给出的所有性能测试结果都来自一台 series z9 model 2094-S54 上的一个逻辑分区(LPAR)。这个 LPAR 有 6 个专用处理器,但是对于这个测试只启用了两个处理器,因为我们希望让 CPU 使用率比较高,这样便于比较。这个 LPAR 配置为一个单一 DPAR(运行一个 Lotus Domino 服务器实例的 Domino 分区)。这台机器引导 SLES 10,并应用了一些更新。性能测试 LPAR 配置了 12 GB 内存。我们使用一个 Gigabit Ethernet Open System Architecture(OSA)卡。我们的局域网被隔离开,以避免不相关的活动导致网络通信冲突。所有磁盘都是从一个 Enterprise Storage Server(DS8300)阵列中分配的,每个磁盘配置为一个 3390 model 9。客户机邮件数据库均匀分布在 57 个 LVM 文件系统上,每个都分布在一个 LVM 中的 4 个卷上,每个文件系统提供 28 GB 的可用空间。我们为 Lotus Domino 的执行程序、Notes 数据和 Domino Directory、邮件箱 1 到 4 和事务日志分配了单独的卷。一个 LVM 中的另外 4 个卷用于邮件日志。Linux for System z 上使用的文件系统是 EXT3。

表 12. Linux on System z 的配置
Lotus Domino 服务器配置 细节
型号z9 2094–S54
测试用的 CPU/速度两个专用处理器,LPAR
安装的内存12 GB
DASD 类型DS8300
活动的逻辑卷57x4 LVM 邮件数据库,1x4 LVM 邮件日志,7 个卷用于 Notes 数据、名称、邮箱和事务日志
OSSUSE SLES 10,并应用了一些更新
清单 6. Linux on System z 的 Notes.ini 设置
Platform_statistics_enabled=1
Server_pool_tasks=100
RouterDbCacheSize=6100
NSF_DBcache_maxentries=6000
NSF_Buffer_Pool_Size_MB=386
NLCACHE_SIZE=104857600
TRANSLOG_Performance=1
TRANSLOG_Path=/translog1
TRANSLOG_Status=1
SCHEDULE_NO_VALIDATE=1

图 11 显示三种情况下的 CPU 百分比:使用 Notes V7 邮件模板和 N7Mail 工作负载的 Lotus Domino V7,使用 Notes V7 邮件模板和 N7Mail 工作负载的 Lotus Domino V8,以及使用 Notes V8 邮件模板和 N8Mail 工作负载的 Lotus Domino V8。每个数据点增加 1,000 个用户,这里的 CPU 百分比是一小时的稳定状态下的平均值。图 11 表明,与第一种情况(使用 Notes V7 邮件模板的 Lotus Domino V7)相比,第三种情况(使用 Notes V8 邮件模板的 Lotus Domino V8)下的 CPU 使用率出现了 26% 到 34% 的改进。图 11 还说明,在同样使用 Notes V7 邮件模板的情况下,Lotus Domino V8 的 CPU 使用率比 Lotus Domino V7 提高了 23% 到 31%。

图 11. Linux on System z 的 CPU 繁忙百分比
Linux on System z 的 CPU 繁忙百分比

图 12 显示从 Lotus Domino V7 到 Lotus Domino V8 在总 I/O 操作数方面的改进。这个图表明,从同样使用 Notes V7 邮件模板的 Lotus Domino V7 到 Lotus Domino V8 产生了 6% 到 19% 的 I/O 改进,从使用 Notes V7 邮件模板的 Lotus Domino V7 到使用 Notes V8 邮件模板的 Lotus Domino V8 产生了 25% 到 34% 的 I/O 改进。

图 12. Linux on System z 的每秒总磁盘 I/O 操作数
Linux on System z 的每秒总磁盘 I/O 操作数

图 12 表明,使用 Notes V8 邮件模板的 Lotus Domino V8 使 I/O 读改进了 26%,使 I/O 写改进了 36%。总共享内存增加了 11%,总进程内存增加了 24%。另外,收发的网络字节总数增加了 22%。

表 13. Linux on System z 对于 4,000 个用户的资源使用情况
资源 Lotus Domino V7Lotus Domino V8百分比变化
邮件模板Mail7.ntf Mail8.ntfN/A
工作负载N7MailN8MailN/A
CPU 繁忙百分比69.751.3-26%
每秒总磁盘读数量919585-36%
每秒总磁盘写数量951876-7.8%
所使用的共享内存(MB) 9601,07011.4%
所使用的进程内存(MB)15319124.8%
每秒网络传输字节数2,100,2212,580,28422.8%

实验室测试结果表明,在 Linux on System z 上,新的 Lotus Notes 邮件工作负载使 CPU 性能改进了 34%;与使用 N7Mail 工作负载的 Lotus Domino V7 相比,使用 N8Mail 工作负载的 Lotus Domino V8 使 I/O 性能改进了 34%。由于 Lotus Domino V8 和 mail8.ntf 模板增加了一些新特性,实验室结果表明一些内存性能有所下降,比如共享内存增加了 11%,进程内存增加了 23%,每秒网络传输字节总数增加了 22%。但是,Lotus Domino V8 在 CPU 和 I/O 方面非常出色。


IBM z/OS 结果

对于 IBM z/OS 上的 Lotus Domino V8,实验室测试结果表明 Lotus Domino V8 与 Lotus Domino V7 相比显著改进了 CPU 和 I/O 性能。

这里给出的所有性能测试结果都来自一台 series z9 model 2094-S54 上的一个逻辑分区(LPAR)。这个 LPAR 配置为一个单一 DPAR。这个 LPAR 有 6 个专用处理器,但是对于这个测试只启用了两个处理器,因为我们希望让 CPU 使用率比较高,这样便于比较。这台机器运行 z/OS 1.7。性能测试 LPAR 配置了 12 GB 内存。我们使用一个 Gigabit Ethernet Open System Architecture(OSA)卡。我们的局域网被隔离开,以避免不相关的活动导致网络通信冲突。所有磁盘都是从一个 Enterprise Storage Server(DS8300)阵列中分配的,每个磁盘配置为一个 3390 model 9。客户机邮件数据库均匀分布在 57 个 z/FS 文件系统上,每个都分布在 4 个 span 卷上,每个文件系统提供 28 GB 的可用空间。我们为 Lotus Domino 的执行程序、Domino/Notes 数据、Domino Directory、邮箱 1 到 4 和事务日志分配了单独的 z/FS 文件系统。另一个包含 4 个 span 卷的 z/FS 用于邮件日志。

表 14 给出 z/OS 配置的细节,清单 7 给出 Notes.ini 设置。

表 14. z/OS 的配置
Lotus Domino 服务器配置 细节
型号z9 2094–S54
测试用的 CPU/速度两个专用处理器,LPAR
安装的内存12 GB
DASD 类型DS8300
活动的逻辑卷57x4 z/FS 邮件数据库,1x4 z/FS 邮件日志,7 个 z/FS 卷用于 Notes 数据、名称、4 个邮箱和事务日志
OSz/OS 1.7
清单 7. z/OS 的 Notes.ini 设置
Platform_statistics_enabled=1
Server_pool_tasks=100
RouterDbCacheSize=6100
NSF_DBcache_maxentries=6000
NSF_Buffer_Pool_Size_MB=196
NLCACHE_SIZE=83886080
TRANSLOG_Performance=1
TRANSLOG_Path=/translog1
TRANSLOG_Status=1 
SCHEDULE_NO_VALIDATE=1

图 13 显示三种情况下的 CPU 百分比:使用 mail7.ntf 模板和 N7Mail 工作负载的 Lotus Domino V7(绿线),使用 mail7.ntf 模板和 N7Mail 工作负载的 Lotus Domino V8(蓝线),以及使用 mail8.ntf 模板和 N8Mail 工作负载的 Lotus Domino V8(红线)。每个数据点增加 1,000 个用户,这里的 CPU 百分比是一小时的稳定状态下的平均值。这个图表明,使用 mail7.ntf 模板的 Lotus Domino V8 使 CPU 性能出现了 9% 到 16% 的改进。它还表明,与使用 mail7.ntf 模板的 Lotus Domino V7 相比,使用 mail8.ntf 模板的 Lotus Domino V8 使 CPU 性能出现了 18% 到 22% 的改进。

图 13. z/OS 的 CPU 繁忙百分比
z/OS 的 CPU 繁忙百分比

图 14 显示从 Lotus Domino V7 到 Lotus Domino V8 在总 I/O 操作数方面的改进。图 14 表明,使用 mail7.ntf 模板的 Lotus Domino V8 使 I/O 性能出现了 20% 到 22% 的改进,使用 mail8.ntf 模板的 Lotus Domino V8 产生了 34% 到 40% 的 I/O 改进。

图 14. z/OS 的每秒总磁盘 I/O 速率
z/OS 的每秒总磁盘 I/O 速率

表 15 表明,使用 mail8.ntf 模板的 Lotus Domino V8 使 I/O 速率改进了 34%,I/O 强度(I/O 强度等于 I/O 速率乘以 I/O 响应时间)改进了 52%。Lotus Domino V8 使共享句柄增加了 15.9%,共享内存增加了 13%,进程句柄减少了 30%,进程内存减少了 25%。注意,与共享句柄和共享内存相比,进程句柄和进程内存的数量非常小。另外,收发的网络字节总数增加了 25%。

表 15. z/OS 对于 4,000 个用户的资源使用情况
资源 Lotus Domino V7Lotus Domino V8百分比变化
邮件模板 Mail7.ntf Mail8.ntfN/A
工作负载N7MailN8MailN/A
CPU 繁忙百分比62.751.0-18.6%
总磁盘速率17,92311,730-34.5%
总磁盘强度49,05423,113-52.0%
所使用的共享句柄(MB)39846115.9%
所使用的进程句柄(MB)4.32.9-30.0%
所使用的共享内存(MB)79290213.8%
所使用的进程内存(MB)4332-25.8%
收发的网络字节数(数据来自 SMF108 NWBR 和 NWBS)2,128,9352,675,56225.7%

我们的实验室数据表明,z/OS 上的 Lotus Domino V8 使 CPU 性能改进了 22%,I/O 数量降低了 40%。由于 Lotus Domino V8 和 mail8.ntf 模板增加了一些新特性,所以一些内存的使用量增加了,比如共享内存增加了 13%,共享句柄增加了 16%。另外,网络字节总数增加了 26%。从总体上看,z/OS 上的 Lotus Domino V8 在 CPU 和 I/O 方面非常出色。


结束语

这份报告中的测试数据表明,迁移到 Lotus Domino V8 和新的 Lotus Notes V8 客户机应该会产生非常积极的效果。我们看到,与 Lotus Notes/Domino V7 的性能相比,在大多数平台上 CPU 使用率和 I/O 数量出现了显著的下降。尽管 Lotus Notes V8 客户机的功能更加丰富了,但是 Lotus Domino V8 服务器上的 CPU 使用率和 I/O 数量却降低了。因此,支持新的 Lotus Notes V8 客户机并不会增加 Lotus Domino 服务器基础结构的总拥有成本。由于出现了新的客户机交互,网络使用量有所增加。Lotus Domino V8 测试表现出的网络使用量比较大,这是因为为了测试 Lotus Notes V8 客户机的额外功能,N8Mail 工作负载要执行更多的操作。另外,在某些平台上,内存使用量增加了,所以对这些内存参数比较敏感的系统应该相应地调整计划。

附录 1. Notes.ini 设置
Notes.ini 参数描述
ConstrainedSHMSizeMB通过设置这个参数,将共享内存限制在指定的大小(以 MB 为单位)。
Create_R8_Databases应用于 Lotus Domino V8 服务器。将它设置为 1,就表示在 Lotus Domino V8 服务器上创建新的 ODS48 数据库。
DEBUG_ENABLE_SYS_V_SHM将它设置为 1,就让 Lotus Domino 对共享内存使用 System V,而不是使用 UNIX 平台上的 mmap 文件。
DEBUG_NSF_SHOW_ALLSTATSLotus Domino V8 中新增的参数。将它设置为 1,就会为数据库元数据、视图和对象启用 Domino I/O 统计数据收集。
EVENT_CORRELATION_POOL_SIZE指定事件任务和 DDM 所用的事件关联池的大小。
EVENT_POOL_SIZE指定未处理的事件、未处理的通知和事件抑制所用的内存量。默认设置是 5242880(5 MB)。
log_mailrouting指定路由器进程执行的路由器事件日志级别。
MEM_AddressableMemSizeMB覆盖 Domino 看到的 “可寻址” 内存量的默认设置(这里的值以 MB 为单位,默认值因平台而异)。
MEM_EnablePreAlloc将它设置为 1,就会启用共享内存的预先分配。
NLCACHE_SIZE以字节为单位指定 Namelookup Cache 的大小。默认值是 16 MB。
NSF_Buffer_Pool_Size_MB以字节为单位指定 NSF 缓冲池的最大大小。NSF 缓冲池是专门用来缓冲 Lotus Domino 和磁盘存储设备之间的 I/O 传输的一段内存。
NSF_Dbcache_Maxentries指定服务器在它的数据库缓存中可以同时容纳的数据库数量。
RouterDbCacheSize指定 Router Database 缓存的大小,这个缓存用于在路由器进程中缓存邮件数据库。
SCHEDULE_NO_VALIDATE决定 SchedMgr 是否每天检验它的 busytime 数据库项:
0(默认) —— 启用检验
1 —— 禁用检验
Server_MAX_CONCURRENT_TRANS设置服务器上并发调度的最大事务数。
Server_Pool_TasksDomino 服务器(DbServer)线程池中物理线程的总数。
Server_Show_Performance应用于服务器。指定是否在控制台上显示服务器性能事件。将这个变量设置为 1,就会在控制台上显示服务器性能事件。
ServerTasks指定在服务器启动时自动启动的任务,这些任务会一直运行到服务器关闭为止。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


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


忘记密码?
更改您的密码

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

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

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

选择您的昵称



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

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

标有星(*)号的字段是必填字段。

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

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=279620
ArticleTitle=IBM Lotus Domino V8 服务器和 IBM Lotus Notes V8 客户机:性能
publish-date=03092009