针对 Domino Web access 用户的 Domino 7 性能
在 Lotus Domino 7 的开发过程中,Domino/Notes 小组与 IBM Global Services(IGS)小组密切合作,他们使用 Domino 7 升级或部署了 30 多台 Domino 服务器,可以支持 55,000 名以上的用户。他们共同的目标是使 Domino 7 具备较高的质量,并验证在 IBM 部署的生产环境中得到的实验性能结果。
在本文中,将描述在 IBM 的 Domino 7 环境中三台 pSeries 服务器的配置,分享收集到的性能数据,并讨论部署和监控技巧。对于这三台服务器,当升级到 Domino 7 时,在其中的一台生产服务器上节省了 55% 的 CPU 资源,在另外两台生产服务器上节省了 15% 到 24% 的 CPU 资源。本文中所提供的信息非常有助于在通常情况下部署 Domino 7,尤其对于在 pSeries 上部署帮助会更大。
本文假定您是一位经验丰富 Domino 管理员。
IBM 内部的 Domino 7 邮件服务器
IBM 于 2004 年 5 月开始在生产中部署 Domino 7。目前,IBM Domino 7 服务器支持超过 55,000 名的 Notes 客户机用户。图 1 显示了 IBM 内部 Domino 7 服务器支持的 Notes 用户在数量上的增长:
图 1. Domino 7 支持的邮件用户
Domino 开发小组与 IBM 开发小组密切合作以监控和提高质量和性能。IBM 的 Domino 7 邮件服务器以前的部署环境中包括八台 pSeries 服务器,三台 zSeries 服务器(两台 zOS 和一台 zlinux),以及四台 iSeries 服务器。
Domino 7 的性能
本节描述了 IBM 内部所使用的在 pSeries 服务器上部署 Domino 7 的三种配置。第一种配置支持 IBM Research,第二种支持 IBM Global Services,第三种配置支持各种 IBM 群组和部门。这些生产服务器上正在运行 Domino 6.5.1 和 Domino 6.5.3,并且要升级到当前可用的 Domino 7 beta 版本。图中提供的 Domino 7 结果基于安装了一些修补程序的 Domino 7 beta 4 版本。(请注意 Notes/Domino 7 已经发布,现在已经可用,并可在此下载试用版。)
配置 1:IBM Research
第一种配置负责处理来自 IBM Research 的用户。下表显示了此配置的硬件/软件:
系统型号
IBM 7038-6M2(pSeries 650)
处理器类型
PowerPC_Power4
处理器数目
6
处理器时钟速度
1452 MHz
CPU 类型
64 位
内核类型
32 位
内存大小
16384 MB
总内存分页空间
6144 MB
已用百分比(内存分页空间)
1%
活动物理驱动器
38
活动逻辑驱动器
74
文件系统类型
JFS
操作系统
AIX 5.3 ML1
Domino 版本
Domino 7 公用 beta 4
逻辑分区数目(LPAR)
1
Domino 分区数目(DPAR)
2
注册用户(DPAR 1)
2120
注册用户(DPAR 2)
1413
活动用户百分比(DPAR 1)
33%
活动用户百分比(DPAR 2)
38%
平均邮件数据库大小(DPAR 1)
243 MB
平均邮件数据库大小(DPAR 2)
349 MB
启用这个服务器上的下列服务器任务:
ServerTasks=Tivoliv60,Router,Update,Amgr,Adminp,Sched,CalConn,mtbf,http,tmmscan,tmscan,
tmmscan,dbscan mail1.box,dbscan mail2.box
ServerTasksAt2=UpdAll updsystemnsfs.ind, updAll updmailfolders1.ind, updAll updmailfolders2.ind
ServerTasksAt1=Catalog
第一个 Domino 分区(DPAR 1)有 2120 个注册用户,700 个活动用户(33%),每天正常上班时间平均处理大约 2,800,000 个事务。每个用户每天的平均事务数为 4,000。第二个 Domino 分区(DPAR2)有 1413 个注册用户,537 个活动用户(38%),每天正常上班时间平均处理大约 2,300,000 个事务。第二个分区上每个用户每天的平均事务数为 4,283。
两个分区上都启用了 Domino Web Access。(两个 DPAR 都有足够的 CPU 资源来为 Domino Web Access 用户提供服务。) 这些是 Domino 7 的用户数目;Domino 6.5.1 的用户数目平均要少 3%。
两个 DPAR 都启用了循环事务日志记录。通过在 Notes.ini 文件中设置 MAILBOXDISABLETXNLOGGING=1 禁用邮箱的事务日志记录。通过设置 SCHEDULE_DISABLETXNLOGGING=1 禁用 Busytime.nsf(如果是集群则为 Clubusy.nsf )。
本配置使用了下列邮件模板(所有的数目都为近似值): 500 个用户使用修改后的 Std45Mail 模板。 900 个用户使用修改后的 StdR50Mail 模板。 300 个用户使用修改后的 StdR6iMail 模板。(这个模板既支持 Notes 功能又支持 Domino Web Access 功能。) 1500 个用户使用修改后的 StdR6Mail 模板。
此外,333 个用户使用不同类型的模板(邮箱以外的、用户修改的等等)。这些用户中大约 42% 使用修改后的 StdR6Mail 模板。
在这个配置中,用户运行 LotusScript、java 和基于公式的代理。运行在服务器上的第三方应用程序包括: Trend Micro 的 Scanmail (Lotus Domino 消息的防病毒安全性工具),支持各服务器上的多个邮箱。 IBM Tivoli Monitoring for Messaging and Collaboration(ITMMC,Build Level 5.1.1.6)。 Document Expiration API。每晚对所有的邮件数据库运行,并删除到达或超过到期日期的文档。
IBM Research 的性能数据
图 2 显示了我们的 IBM Research 配置中每星期的 CPU 使用百分比。每条线表示一周的数据(周一到周五,上午 7 点到下午 5 点)。
图 2. IBM Research CPU 使用情况
这个配置在 10/29/04 后升级到了 Domino 7。从 10/29/04 开始使用这个配置运行各种 Domino 7 beta 版本,并且从 8/12/05 到 9/09/05 各周的数据是 Domino 7 beta 4 版本的。从在这台生产服务器上收集到的数据中可以看到,Domino 6.5.1 平均使用了 62% 的 CPU 资源,当升级到 Domino 7 beta 4 版本后,平均 CPU 使用率下降到 28%,节省了 55% 的 CPU 资源。
配置 2:IBM Global Services
第二种配置负责处理来自 IBM Global Services(IGS)的用户。下表列出了 IGS 服务器的硬件/软件配置:
系统型号
IBM 7038-6M2(pSeries 650)
处理器类型
PowerPC_Power4
处理器数目
8
处理器时钟速度
1452 MHz
CPU 类型
64 位
内核类型
32 位
内存大小
32768 MB
总内存分页空间
4672 MB
已用百分比(内存分页空间)
1%
活动物理驱动器
34
活动逻辑驱动器
59
文件系统类型
JFS
操作系统
AIX 5.3 ML1
Domino 版本
Domino 7 公用 Beta 4
逻辑分区数目(LPAR)
1
Domino 分区数目(DPAR)
4
注册用户(DPAR 1)
4080
注册用户(DPAR 2)
3992
DPAR 3
邮件中央服务器
DPAR 4
Tivoli Storage Manager 服务器
活动用户百分比(DPAR 1)
34%
活动用户百分比(DPAR 2)
32%
平均邮件数据库大小(DPAR 1)
162 MB
平均邮件数据库大小(DPAR 2)
129 MB
启用这些服务器上的下列服务器任务:
ServerTasks=Tivoliv60,Router,Update,Amgr,Adminp,Sched,CalConn,mtbf,tmmscan,tmscan,
tmmscan,dbscan mail1.box,dbscan mail2.box
ServerTasksAt2=UpdAll updsystemnsfs.ind, updAll updmailfolders1.ind, updAll updmailfolders2.ind
ServerTasksAt1=Catalog 第一个 DPAR(在上表中作为 DPAR 1 列出)有 4080 个注册用户,1387 个活动用户(34% 活动),并且每天处理大约 7,500,000 个事务(正常上班时间)。每个用户每天事务的平均事务数为 5,407 个。第二个 DPAR(DPAR 2)有 3992 个注册用户,1277 个活动用户(32% 活动),并且每天的“正常工作时间”处理大约 6,500,000 个事务。每个用户每天的平均事务数为 5090 个。这些数据是在 Domino 7 上获得的;Domino 6.5.3 上的用户数目平均要少 5%。
两个 DPAR 都启用了归档事务日志记录。通过在 Notes.ini 文件中设置 MAILBOXDISABLETXNLOGGING=1 禁用邮箱的事务日志记录。通过设置 SCHEDULE_DISABLETXNLOGGING=1 禁用 Busytime.nsf(如果是集群则为 Clubusy.nsf )。
本配置使用下列邮件模板: 272 个用户使用修改后的 Std45Mail 模板。 800 个用户使用 StdR50Mail 模板。 7000 个用户(用户总数的 87%)使用修改后的 StdR6Mail 模板。
在这个配置中,用户主要运行 LotusScript 和基于公式的代理。运行在服务器上的第三方应用程序与在前面 IBM Research 配置中列出的相同。
IGS 的性能数据
图 3 显示了我们的 IGS 配置中每星期的 CPU 使用百分比。每条线都表示一周的数据(周一到周五,上午 7 点到下午 5 点)。
图 3. IBM Global Services CPU 使用情况
这个配置在 02/11/05 后升级到了 Domino 7。从 02/11/05 开始使用这个配置运行各种 Domino 7 beta 版本,并且从 8/12/05 到 9/16/05 各周的数据是 Domino 7 beta 4 版本的。从在这台生产服务器上收集到的数据中可以看到,Domino 6.5.3 平均使用了 65% 的 CPU 资源,当升级到 Domino 7 beta 4 版本后,平均 CPU 使用率下降到 56%,CPU 的利用率提高了 14%。
在这个配置下 Domino 7 CPU 性能的提高比 research 服务器上的小,这是因为更多的用户使用了修改后的 StdR6Mail 模板(87%),这个模板中的一些新功能需要额外的 CPU 开销。另一个因素可能是用户的使用模式。根据每天事务的平均数目,IGS 用户比 IBM Research 用户更为活跃并且“更忙碌”。
配置 3:各种 IBM 群组
第三种配置负责处理来自各种 IBM 群组的用户,下表列出了此配置使用的硬件/软件:
系统型号
IBM 7038-6M2(pSeries 650)
处理器类型
PowerPC_Power4
处理器数目
8
处理器时钟速度
1452 MHz
CPU 类型
64 位
内核类型
32 位
内存大小
32768 MB
总内存分页空间
6144 MB
已用百分比(内存分页空间)
1%
活动物理驱动器
36
活动逻辑驱动器
79
文件系统类型
JFS
操作系统
AIX 5.3 ML1
Domino 版本
Domino 7 公用 Beta 4
逻辑分区数目(LPAR)
1
Domino 分区数目(DPAR)
4
注册用户(DPAR 1)
3985
注册用户(DPAR 2)
4001
DPAR 3
邮件中央服务器
DPAR 4
Tivoli Storage Manager 服务器
活动用户百分比(DPAR 1)
31%
活动用户百分比(DPAR 2)
33%
平均邮件数据库大小(DPAR 1)
136 MB
平均邮件数据库大小(DPAR 2)
149 MB
启用这个服务器上的下列服务器任务:
ServerTasks=Tivoliv60,Router,Update,Amgr,Adminp,Sched,CalConn,mtbf,tmmscan,tmscan,
tmmscan,dbscan mail1.box,dbscan mail2.box
ServerTasksAt2=UpdAll updsystemnsfs.ind, updAll updmailfolders1.ind, updAll updmailfolders2.ind
ServerTasksAt1=Catalog 第一个 DPAR(DPAR 1)有 3985 个注册用户,1235 个活动用户(31% 活动),并且每天正常工作时间处理大约 7,000,000 个事务。每个用户每天事务的平均数为 5,668 个。DPAR 2 有 4001 个注册用户,1320 个活动用户(33% 活动),并且每天正常工作时间处理大约 7,000,000 个事务。每个用户每天事务的平均数为 5303 个。这些是在 Domino 7 上得到的数据;Domino 6.5.3 的用户数目平均要少 6%。
在两个 DPAR 上,都启用了归档事务日志记录。与其他配置一样,通过在 Notes.ini 文件中设置 MAILBOXDISABLETXNLOGGING=1 禁用邮箱的事务日志记录。通过设置 SCHEDULE_DISABLETXNLOGGING=1 禁用 Busytime.nsf(如果是集群则为 Clubusy.nsf )。
本配置使用下列邮件模板: 306 个用户使用修改后的 Std45Mail 模板。 726 个用户使用 StdR50Mail 模板。 6954 个用户(用户总数的 87%)使用修改后的 StdR6Mail 模板。
用户主要运行 LotusScript 和基于公式的代理。运行在服务器上的第三方应用程序与在前面两种配置中描述的相同。
配置 3 的性能数据
图 4 显示了这种配置中每星期的 CPU 使用百分比。每条线都表示一周的数据(周一到周五)。
图 4. 配置 3 的 CPU 使用情况
这个配置在 02/25/05 后升级到了 Domino 7。从 02/25/05 开始使用这个配置运行各种 Domino 7 beta 版本,并且从 8/12/05 到 9/16/05 各周的数据是 Domino 7 beta 4 版本的。从收集到的数据中可以看到,Domino 6.5.3 平均使用了 66% 的 CPU 资源,当升级到 Domino 7 beta 4 版本后,平均 CPU 使用率下降到 51%,CPU 的利用率提高了 23%。
Domino 7 部署技巧
基于我们在这三种配置上部署 Domino 7 的经验,提出如下建议。
Domino 参数
运行多个邮箱(我们使用了两个邮箱)。通过在 Notes.ini 文件中设置参数 MailBoxDisableTXNLogging=1 禁用邮箱的事务日志记录。通过在 Notes.ini 文件中设置参数 Schedule_Disabletxnlogging=1 禁用 Busytime.nsf(如果是集群则为 Clubusy.nsf )。另外,在服务器的 Notes.ini 文件中进行如下设置:
Server_Max_Concurrent_Trans=1000
Server_Pool_Tasks=100
Disable_BCC_Group_Expansion=1
Server_session_Timeout=31
实现扩展目录编目而不是目录编目以避免全文索引的开销(例如,Edcww.nsf 使用视图索引,而 dircat/ibmdclns.nsf 使用全文索引)。至少,实现循环事务日志记录以得到更好的数据完整性和更快的重新启动速度。关闭不需要的 Domino 服务器任务。为了提高服务器的性能,限制记录到日志文件(LOG.NSF)和控制台的调试/记录数量。
我们通过单独的系统数据库文件系统获得了更好的性能。每个 Domino 分区(DPAR)为 Domino 数据目录(/notesdata)配置了四个 SSA RAID 5 阵列,为扩展目录编目配置了一个 SSA RAID 5 阵列。每个 Domino 分区都有一对镜像 SCSI 事务日志驱动器,硬件 RAID 1 镜像使用 2498 或类似的 SCSI RAID 适配器。
使用 Domino Directory 的大型目录(例如 Names.nsf、Edcww.nsf 和 Wwpdl.nsf)。设置 VIEW_REBUILD_DIR=/notesdata/viewbuild。默认的位置是 Domino 数据目录。在实施时,Domino 使用优化的视图重建而不是标准的重建。转移到其他目录可以避免高访问文件争用(Log.nsf、Names.nsf 等等)。
限制数据库的增长以减少对 I/O 和 CPU 资源的需求(大文件使用更多的 CPU 资源;带有更多文档的邮件数据库使用更多的 CPU 资源)。这有助于加快视图更新和重建。
AIX 参数
启用 IOCP(I/O 完成端口)。输入 smitty iocp 并确保当前状态为“available”。同时,确保“State to be configured at system restart”设置为“available”。在我们的配置中所讨论的所有 IBM 服务器上,都启用了 IOCP 并且将当前状态设置为“available”。
设置 maxuPRoc 为 128。(有关详细信息请参阅发行说明。)
在我们的服务器上,将 maxperm% 和 maxclient% 都设置为 10 以确保不进行分页。为了使这些设置在系统重新启动后仍然保留,输入“vmo -p -o maxperm%=10 -o maxclient%=10”。在您的环境中,maxperm% 和 maxclient% 的设置可以与我们的不同。另外,在我们的服务器上将总分页空间分别设置为 6144 MB 和 4672 MB。
进行如下设置: AIXTHREAD_COND_DEBUG=OFF 关闭 AIX 调试程序使用的条件变量列表的自动记录。默认情况下是 ON。 AIXTHREAD_RWLOCK_DEBUG=OFF 关闭 AIX 调试程序使用的读写锁列表的自动记录。默认情况下是 ON。 AIXTHREAD_MUTEX_DEBUG=OFF 关闭 AIX 调试程序使用的活动 mutexes 列表的维护功能。默认情况下是 OFF。
这些变量可以在 .profile 或者 Notes 用户的.kshrc 或 .chrc 文件中进行设置。
性能监控技巧
本节列出了 AIX 和 Domino 服务器的一些性能监控技巧。
AIX 服务器
下面是工具集(定期运行),我们使用这些工具监控 AIX 服务器的性能: 'ps -aux' 用于收集进程信息,例如进程 ID、CPU 百分比以及虚拟内存足迹。 vmstat 和 iostat 信息用于收集 CPU、内存以及 I/O 性能数据。在高峰和非高峰期定期收集这些信息。例如,“vmstat 300 2”收集两个五分钟时段的样例。 filemon 信息,类似于 iostat 信息,例如磁盘/文件 I/O 性能数据。 tprof 数据用于收集 CPU 简要表信息。例如,要收集一分钟 tprof 样例并创建样例输出 domino.prof,请运行下列命令:tprof -ske -r domino -x 'sleep 60'。 'show stat' 用于收集 Domino 统计信息,使用远程控制台或通过 statrep。
Domino 服务器
下面是在升级后用于监视 Domino 服务器的一些工具,用于确保一切都按预期运行: Domino 统计信息。Events4.nsf 和 Statrep.nsf 用于配置、创建和报告基础设施中所有 Domino 服务器的信息。 操作系统统计信息。受监控的最基本的统计信息是 CPU 使用情况、磁盘 I/O 活动以及磁盘容量。可以将这些统计信息与以前版本的统计信息相比较,验证系统不存在瓶颈。 活动趋势。用于记录和报告针对 Domino 服务器上数据库进行的用户活动(客户机)的统计信息。所报告的统计信息是随时间变化的趋势,提供了一种对服务器上的负载进行测量和比较的方法。该信息用于标识每台服务器上最活跃的用户和数据库。该工具对于短期和长期的容量规划都非常有用。 Domino 7 Administrator 客户机(服务器监控)非常有用,它让您能够快速浏览基础设施,并可以识别可能已经失败的任务。 Domino 日志。检查 Domino 日志(Log.nsf 和控制台日志),了解是否存在数据库损坏、进程启动和停止、失败的进程或错误条件、网络传输、代理、安全性、SMTP、HTTP 等等方面的问题,这些问题可能会引起性能问题。应该每天都进行这种检查以便尽早捕捉问题(如果有的话)。
使用这些工具收集到的历史数据有助于监视和解决升级过程中的性能问题。在 IBM 生产服务器上进行 Domino 7 升级时,我们已经广泛地用到了这些工具,并没有导致过多的系统开销。我们使用这些工具构建一个基准,并收集历史数据。这使得我们可以简便地查找更改,并且如有需要,可以找到任何性能问题。
结束语
在我们测试的 IBM pSeries 生产环境中,与 Domino 6.5.1/6.5.3 相比,能节省 14% 到 55% 的 CPU。55% 的 CPU 性能提高体现在有两个 Domino 分区的 pSeries 服务器上。该服务器负责处理 3533 个研究用户。在另外两台服务器上(负责处理 IGS 用户和各个部门的其他用户),我们测试到能分别节省 14% 和 23% 的 CPU。这两台服务器各自负责处理约 8000 个用户,并各有两个 Domino 分区。我们认为这两种配置是更典型的客户环境。
在我们的实验室环境中,经过测试,得出在 pSeries 上使用 AIX 能提高 CPU 25%。因此,严格的实验室结果确实能够预测生产趋势。当然,由于一些因素,例如邮件文件大小、用户负载等等,结果会有所不同。
作者简介
Razeyah Stephen 是 Domino Performance 小组的经理,自从 1998 年以来与 Iris 一起工作。她是 Lotusphere 的常客。她拥有五年在存储子系统性能方面的经验。
Varadarajulu(Varada) Manavalan 是 IBM IGS Service Delivery Organization 的 Domino IT 架构师。他于 1997 年加入 IBM,从 19 世纪 90 年代初就开始从事 IT 工作。可以通过 varlu@us.ibm.com 与 Varada 联系。
Nirmala Venkatraman 是 IBM 的高级软件工程师,担任 Domino Server Performance 小组的项目负责人。