级别: 中级 Rich Buck, 软件工程师, IBM Wu W Huang, 软件工程师, IBM Dave Johnson, 软件工程师, IBM Angelo Lynn, 软件工程师, IBM Andy Nolet, 软件工程师, IBM Joseph H. Peterson, 软件工程师, IBM Jim Powers, 软件工程师, IBM
2005 年 12 月 05 日 在这个由三部分组成的文章系列的第二部分中,我们回顾了为确定 Domino 7 与 Domino 6.5 在支持 Domino Web Access 用户方面有哪些不同之处所执行的测试的结果。
本文是由三部分组成的文章系列的第二部分,在这个文章系列中,我们讨论对 Domino 7 的性能改进进行的测试。本文主要集中讨论通过使用 R6iNotes 工作负载,模拟 Domino Web Access 用户所得到的基准测试结果。第一篇文章 “Lotus Domino 7 服务器的性能,第 1 部分: Lotus Notes 客户机的任务负载” 讨论了通过模拟 Notes 客户机用户所得到的 Domino 7 性能结果。最后一篇文章将回顾通过使用包括集群复制、本地复制和全文索引以及 Notes 客户机通信的工作负载更真实的模拟典型企业环境所得到的结果。
提高性能,由此减少总拥有开销(total cost of ownership,TCO)是 Domino 7 关注的焦点。对于 Domino Web Access 用户,我们通过减少各个用户的服务器 CPU 占用率来提高可伸缩性,并优化代码路径来使瓶颈降至最低,从而在指定的处理器使用情况下允许为更多的用户提供服务。测试的所有平台都显示在使用相同数量的 R6iNotes 用户进行测试时,CPU 使用率有所下降。CPU 节省情况表示了我们期望在客户环境中能看到的最大程度的性能改进。
在 Domino 7 中,进行测试的所有平台上,Domino 的性能都有所改进,由于体系结构不同,改进的幅度也随环境的不同而不同。我们能提高所有平台上受支持的用户的可伸缩性,主要是通过减少 Domino 7 服务器上 Domino Web Access 的 CPU 和内存使用情况来实现的。这些可伸缩性的提高可以增强服务器的稳定性,使服务器有资源支持更多的用户。
本文剩下的部分将显示在各种平台上所得到的基准测试结果。这些结果来自单个 Domino 分区,这些分区没有使用事务记录(除特殊说明外)。我们将使用基于邮件模板的发行版 7 版本的用户邮件文件(dwa7.ntf)测试 Domino 7 所得到的结果。将其与 Domino 6.5 服务器进行比较,在 Domino 6.5 服务器中,用户邮件文件是基于 6.5 的(iNotes6.ntf)模板的。
所有的结果都是 Domino 响应时间不到一秒时的数据。为了进行基准测试,我们只运行 Router 和 HTTP 任务(除特殊说明外)以避免来自其他活动的数据峰值。我们希望您能够从中发现有用的信息,并能够对 Domino 7 中实现的性能改进有所理解。
注: 本文中的结果都来自于可控环境中执行的基准测试。虽然在创建基准的过程中为包括典型的用户操作作出了一定的努力,但是更可能出现的情况是,实际的用户对 Domino 的使用会超出基准测试所覆盖的狭窄的功能范围。因此这些数字主要用于理解 Domino 版本相对的性能改进,而不代表现实中推荐的部署。为辅助容量规划,建议向硬件提供商咨询。同时,我们在各种硬件平台上展示结果,这些配置并不具有一致的容量。我们的目的集中于 Domino 自身的性能改进,这里的数据不应该用来比较操作系统之间的差异。
在本文的以下部分中,逐个平台地分析了我们的测试结果。
AIX
对于 AIX 测试,使用了下列硬件配置:
|
型号
|
p670
| | CPU | 32 个物理的 Power4 CPU,时钟速度为 1.4 GHz,分配到三个逻辑分区(logical partition,LPAR)。用于这些测试的 LPAR 配置为使用八个 CPU。 | | 安装的内存 | 用于测试的 LPAR 具有 32 GB 的 RAM。 | | 活动物理驱动器 | 为 Domino Binaries 和 Domino Data 配置了带有四块盘的 64 SSA 驱动器(每块盘也是一个逻辑卷)。
每一个驱动器分为 15 个 9 GB,还有一个 9 GB 用于 JFS 日志。 | | 活动逻辑卷 | 五个:
- 四个逻辑卷用于 Domino Binaries 和 Domino Data(JFS 2),其中一个用于 Domino 事务记录(当使用时)
- 一个逻辑卷用于安装操作系统
| | 操作系统 | AIX 5.2 |
为帮助优化性能,我们将下列设置添加到测试服务器的 Notes.ini 文件中:
|
Domino 6.5
|
Domino 7
| NSF_Buffer_Pool_Size_MB=450
Server_Pool_Tasks=64
Server_Max_Concurrent_Trans=64
NSF_DbCache_MaxEntries=2000
ServerTasks=Router,LDAP,HTTP,SMTP
Server_Transinfo_range=12 | NSF_Buffer_Pool_Size_MB=450
Server_Pool_Tasks=100
Server_Max_Concurrent_Trans=100
NSF_DbCache_MaxEntries=2000
NSF_DbUCache_Max_Entries=12000
Server_Transinfo_range=12
ServerTasks=Router,LDAP,HTTP,SMTP |
AIX 使用内存分段体系结构,以限制共享内存和堆的段的数量。因此,我们使用一个低于默认数量的 NSF_Buffer_Pool_Size 值,以使测试运行达到较高的模拟用户级别。在生产机器的配置中,我们将期望 NSF_Buffer_Pool_Size 可以设置为稍微更高些的值。对 Server_Pool_Tasks 和 Server_Max_Concurrent_Trans 值进行设置,以便支持在各 Domino 版本上获得较高的终端用户可伸缩数目。在更改这些设置的默认值之前,我们建议先进行分析以优化所使用的值。
我们建议在所有的 Domino 生产机器上设置 Notes.ini 中的 Server_Transinfo_range 参数。根据监视 Server Expansion Factor 和 Server Availability Index 的情况,设置该值将需要一个反复的过程。要完全理解这些值和设置,请参阅 Domino Administrator 的 Help 部分中的配置 Server Availability Index。
在图 1 中,与 Domino 6.5 相比,可以看到 R6inotes 虚拟用户所需 CPU 资源实质性的减少。
图 1. AIX 的 CPU 使用情况
减少数量的不同,依赖于服务器的繁忙程度,但是在 6500 个用户时,Domino 7 CPU 占用大约为 53%,而在活动用户数量相等的情况下,Domino 6.5 中的 CPU 占用为 92%。节约了 42% 的 CPU 资源!我们还看到对于这个基准测试,在相同的 CPU 使用情况下,Domino 7 将支持 10,500 个用户,而 Domino 6.5 仅支持 6500 个用户。
下表显示了当在 Domino 6.5 和 7 上的 6500 个基准测试用户都处于活动状态时,CPU、磁盘、内存和网络资源各自的使用情况。除了前面提到的 CPU 资源方面的节省,我们可以看到消耗了更少的网络带宽和更频繁的总的磁盘活动。由于在 Domino 7 测试中,增加了服务器池任务和服务器最大并行事务数量,进程将占用更多的内存。
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 6500 | 6500 | n/a | | CPU 占用百分比 | 92 | 53 | -42 | | 总的磁盘读取速度 KB/sec | 112,680 | 186,457 | 65 | | 总的磁盘写入速度 KB/sec | 1,597,255 | 1,608,150 | 0.7 | | 使用的共享内存(MB) | 1128 | 1163 | 3 | | 进程使用的内存(MB) | 68 | 128 | 88 | | 网络 bytes/sec | 1,823,930 | 679,017 | -63 |
从该表可以看出在相同的模拟用户负载的情况下,对于相同的时间运行相同数量的测试工作负载,Domino 7 在 CPU 使用上大约少 42%,网络带宽上少 63%,对 Domino 7 服务器的共享内存使用大约多出 3%,磁盘 I/O 读取多 65%。这清晰地表示了 Domino 7 部署是如何增强 AIX/pSeries 上的驱动器服务器稳定性的。
如同我们在本节前面所注意到的,我们的 p670 设备被“一块块地”分为三个逻辑分区(LPAR),我们所记录的结果位于一个单独的 LPAR。在这些测试运行时,另外的两个 LPAR 用于开发故障排除和测试。在 p670 上,我们能够在这个机器上运行多个不同的活动,在这种情况下仍然能够得到本节中这样激动人心的测试结果报告。
Linux
下图中显示了在这个 Domino Web Access 基准测试中所使用的服务器配置。该系统是一个稳健的 Intel 平台,由四个 1.4 GHz Xeon MP CPU(超线程)组成,带有 4 GB 的 RAM。磁盘配置是混合的 IBM EXP 阵列,附到一个 SCSI 控制器和一个 FAStT 600 系统上,通过两个 QLogic 光纤卡连接到服务器。这么做的目的是为了消除所有的磁盘瓶颈,允许系统能够达到 15,000 个用户。操作系统使用的是 SuSE SLES 9,以允许 Domino 7 利用内核 2.6 中的优势,以及 NPTL Posix 库。
| CPU | 四个 Xeon MP CPU,时钟速度为 1.4 GHz。 | | 安装的内存 | 4 GB 的 RAM。 | | 活动物理驱动器 | 带有三个 EXP300 RAID 阵列的 SCSI 控制器,和一个带有两个 EXP700 的 FAStT 600,都设置为 RAID 0 配置。 | | 活动逻辑卷 | 14 个:
- 一个用于 /opt
- 一个用于 /tmp
- 一个当需要时用于事务日志文件
- 11 个用于 Domino 数据
| | 操作系统 | Linux S uSE SLES 9 SP2 |
下一张表显示了测试中用到的对 Notes.ini 的更改与默认设置有哪些不同。这里尤其需要注意的有趣的地方是 ConstrainedSHMSizeMB 变量的设置。在 Domino 6.x 中,只需要将其设置为 1 GB 左右,因为 Domino 只有 2 GB 的可用内存(SuSE SLES 8 和 SLES 9 包含的内存指定给 Domino 的为 2 GB),而且其中的一些需要用做堆栈空间。在 Domino 7 中,这个 Notes.ini 参数值能够增加一些,因为我们找到了一种途径,可以在 SuSE SLES 8 和 SLES 9 中默认情况下分配给 Domino 大约 4 GB 的内存。这是通过一个特殊的程序(tunekrnl)实现的,该程序自动调整系统参数使 Domino 更加高效地运行。从该表中还可以看到,服务器任务运行将限制在那些需要进行 NotesBench 测试的人的范围之内。这允许服务器在进行测试时获得最大性能。
|
Domino 6.5
|
Domino 7
| ConstrainedSHMSizeMB=1024
NSF_buffer_pool_size_MB=256
NSF_DBUcache_max_entries=5000
NSF_DBcache_maxentries=5000
Server_Max_Concurrent_trans=200
server_pool_tasks=100
ServerTasks=Router | ConstrainedSHMSizeMB=2560
NSF_DBUcache_max_entries=6100
NSF_DBcache_maxentries=6100
NSF_buffer_pool_size_MB=512
Server_Max_Concurrent_trans=200
server_pool_tasks=100
ServerTasks=Router |
与 Domino 6.x 上的 NRPC 不同,Linux 上的 Domino Web Access 并不需要每个用户都具有 HTTP 线程和堆栈。HTTP 任务本身能够使用池,所以默认的 40 个 HTTP 线程能够支持几千个用户。CPU 使用百分比限制了所能支持的用户数,在 Domino 6.x 和 Domino 7 中都是这样。
在 Domino 7 中,我们实质性地减少了支持用户所需的 CPU 数量。图 2 显示了在 CPU 百分比方面的减少,以及这如何使 Domino 7 比 Domino 6.x 多为 50% 的 Domino Web Access 用户提供服务。
图 2. Linux 的 CPU 使用情况
下表显示了一些用于比较的衡量标准,让 4000 个模拟的 Domino Web Access 用户运行在 Domino 6.x 和 Domino 7 上。使用 4000 个模拟用户是因为这是该测试硬件配置在 Domino 6.x 上支持的最大用户数量。
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 4000 | 4000 | n/a | | CPU 占用百分比 | 95 | 59.4 | -38 | | 总的磁盘读取速度 KB/sec | 1483.83 | 1548.51 | 4 | | 总的磁盘写入速度 KB/sec | 337.78 | 352.12 | 4 | | 使用的共享内存(MB) | 664 | 949 | 43 | | 进程使用的内存(MB) | 70 | 92 | 31 | | 网络 bytes/sec | 427,407 | 483,989 | 13 |
在该表中,可以清楚地看到 Domino 7 中节约的 CPU 百分比。在磁盘读取和写入以及网络传输方面稍微有所增加,这是由于在 NotesBench 测试脚本中使用了更健壮的 Domino 7 邮件模板和一些更改而造成的。Domino 7 中共享内存和进程内存的增加是由于现在可以给 Domino 赋予更大的内存空间而造成的。
无论从哪方面看,运行在 Linux 上的 Domino 7 显示了在 Domino Web Access 的可伸缩性和节约大量 CPU 方面有极大的改进。通过增加更多用户或附加的应用程序,允许用户在服务器合并或扩展的规划中具有更大的灵活性。
iSeries
Domino 7 为 iSeries 环境提供了实质性的性能提高。在这一节中,我们将讨论两种不同配置所得到的结果,一种使用 iSeries 型号 570,另一种使用 iSeries 型号 810,以显示使用 Domino 7 实验室测试所观察到的改进范围。
iSeries 型号 570
在我们的第一个测试中,使用带有 14 个处理器、大量内存和磁盘资源的 iSeries 型号 570。选择该配置来显示 Domino 7 在不受限制的环境中的结果,还用于测试 Domino 7 在单一 Domino 分区中支持更多用户方面的新增功能。
|
型号
|
iSeries 型号 570
| | CPU | 14 个 1.65 GHz | | 安装的内存 | 128 GB | | 磁盘驱动器 | 93 | | 操作系统 | I5/OS V5R3 |
下表显示了测试中对 Notes.ini 的更改与默认设置有哪些不同。
|
Domino 6.5
|
Domino 7
| | Server_Max_Concurrent_Trans=1000 | Server_Max_Concurrent_Trans=1000
NSF_Buffer_Pool_Size_MB=1500 |
Domino 6.5 限制最多运行 16,000 个用户。在 Domino 7 中这个限制宽松些,并且在我们的测试配置中,使用 dwa7.ntf 和 inotes6.ntf 模板,在 iSeries 上我们能够分别运行 18,000 和 20,000 个用户。在用户数量为 16,000,Domino 7 使用新的 dwa7.ntf 模板时,比较 Domino 6.5 和 Domino 7 的 CPU 占用情况,我们观察到 13% 的性能改进。如果我们在两个测试中都使用相同的 inotes6.ntf 模板,比较 Domino 6.5 和 Domino 7,在同样的 16,000 个用户的情况下,我们观察到 32% 的性能提高。这个百分比数字代表了我们在客户环境中所能够期望的最大程度的性能改进。这些结果包含在图 3 中。
图 3. iSeries 型号 570 的 CPU 使用情况
可能的情况是当移到 Domino 7 后,客户将首先升级服务器,稍后再将用户迁移到 Domino 7 模板。
下表包含使用两种模板执行测试所得到的资源使用情况。第一个表显示了运行 mail6.ntf 邮件模板的 16,000 个模拟用户:
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 16,000 | 16,000 | n/a | | CPU 占用百分比 | 67.0 | 45.7 | -32 | | 磁盘读取 请求/秒 | 115.3 | 81.6 | -29 | | 磁盘写入 请求/秒 | 1046.2 | 1206.3 | 15 | | 基本池 页/秒 | 413.0 | 220.1 | -47 | | 总网络 KB/second | 4308.7 | 4250.3 | -1 | 平均响应时间(msec)
1 GB 以太网 | 124.9 | 137.9 | 10 |
在第二个表中,我们模拟的 Domino 7 用户运行 mail7.ntf 模板:
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 16,000 | 16,000 | n/a | | CPU 占用百分比 | 67.0 | 58.3 | -13 | | 磁盘读取 请求/秒 | 115.3 | 279.6 | 243 | | 磁盘写入 请求/秒 | 1046.2 | 1902.2 | 182 | | 基本池 页/秒 | 413.0 | 615.4 | 50 | | 总网络 KB/second | 4308.7 | 6999.7 | 62 | 平均响应时间(msec)
1 GB 以太网 | 124.9 | 166.4 | 33 |
虽然两个模板都显示了极大的 CPU 节省,但是可以看到在某些情况下,Domino 7 服务器需要更多的资源来提供一些集成在 Domino 7 模板中的新功能。
结果表明 Domino 7 在单一分区中能支持更多的用户,同时还降低了每个用户的 CPU 需求。内存资源、磁盘以及网络资源方面的增加导致平均响应时间稍微有所增加。使用 inotes6.ntf 模板得到的结果在实质上比使用 dwa7.ntf 模板得到的结果要好。虽然这些表显示了 Domino 6.5 和 Domino 7 之间响应时间的比较,但是下一节中描述的配置显示了更大的响应时间改进,因为对 Domino 6.5 环境的基准数据是在占用相对较多的 CPU 资源情况下进行测试的。
iSeries 型号 810
我们的第二个 iSeries 测试环境使用的是带有两个处理器的 iSeries 型号 810。该服务器具有 16 GB 的内存和 63 个磁盘驱动器,并配置了一个单一 Domino 分区。
|
型号
|
iSeries 型号 810
| | CPU | 两个 750 MHz | | 安装的内存 | 16 GB | | 磁盘驱动器 | 63 | | 操作系统 | I5/OS V5R3 |
我们使用默认的 Notes.ini 设置对 Domino 6.5 和 Domino 7 进行测试。
为该环境配置了一个单一的 Domino 分区,对 1200 个用户和 1800 个用户的数据点进行了测试。与前一节中描述的 iSeries 型号 570 配置相比,这些用户数反映了对于每个 Domino 分区用户数更典型的客户配置。
如果 Domino 7 使用新的 dwa7.ntf 模板,对 Domino 6.5 和 Domino 7 的 CPU 使用情况进行对比,我们可以看到在 1800 个用户时,CPU 使用情况有 8% 的改进。如果对两个测试都使用同一 mail6.ntf 模板来比较 Domino 6.5 和 Domino 7,我们会观察到在 1800 个用户时,CPU 使用情况会有更大程度的改进(达到 24%)。这些数字表示我们可能期望在每个分区配置了较少用户的客户环境中看到的更典型的性能改进范围。图 4 中包含了这些结果。
图 4. iSeries 型号 810 的 CPU 使用情况
可能的情况是当移到 Domino 7 后,客户将首先升级服务器,稍后再将用户迁移到 Domino 7 模板。
下面两个表显示了使用两种模板执行测试所得到的资源使用情况。虽然两个模板都显示了 CPU 资源的节省,但可以看到当处理一些集成到 dwa7.ntf 模板中的新增功能时,Domino 服务器使用了稍多的资源。在两种情况下平均响应时间都更短一些,这主要是因为在 Domino 7 中减少了 CPU 资源的需求。当 Domino 7 使用 inotes6.ntf 模板进行测试时,这种影响最为显著,这是由于节省了 24% 的 CPU 资源。表中显示的百分比值的一些改变,可能由于这些结果来自低基准的 Domino 6.5 测试这一事实而被夸大,所以来自 Domino 7 的边界增长显示了大百分比增长。
在第一个表中,我们的模拟用户使用的是 mail6.ntf 邮件模板:
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | CPU 占用百分比 | 94.6 | 71.6 | -24 | | 磁盘读取 请求/秒 | 4.7 | 6.5 | 38 | | 磁盘写入 请求/秒 | 112.5 | 119.6 | 6 | | 基本池 页/秒 | 12.3 | 18.9 | 53 | | 总网络 KB/second | 437.3 | 491.2 | 12 | 平均响应时间(msec)
1 GB/sec 以太网 | 554.2 | 250.9 | -55 |
在下面这个表中,Domino 7 用户运行的是 mail7.ntf 邮件模板:
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | CPU 占用百分比 | 94.6 | 87.4 | -8 | | 磁盘读取 请求/秒 | 4.7 | 12.1 | 25 | | 磁盘写入 请求/秒 | 112.5 | 186.6 | 66 | | 基本池 页/秒 | 12.3 | 34.5 | 280 | | 总网络 KB/second | 437.3 | 780.9 | 178 | 平均响应时间(msec)
1 GB/sec 以太网 | 554.2 | 426.9 | -23 |
在这一节中给出的两个 iSeries 环境中 Domino 7 所展现的优势,表明了在用户环境中所能够实现的性能改进范围。性能改进的程度将随提供给 Domino 进程的 CPU、内存、磁盘和网络资源数量的不同而不同。如上表中所显示的,当有足够可用的系统资源并且使用带有 inotes6.ntf 模板的 Domino 7 时,可以实现更高级别的性能改进。由于 Domino 7 提升了在单一 Domino 分区上支持更多用户数量的能力,合并为更少的 Domino 分区能够提供附加的性能改进。
Solaris 9
用于性能测试的 Sun 6800 由一个来自 12 CPU 系统的 8 CPU 域构成。我们有六个 T3 阵列,每个阵列带有九个驱动器供测试使用。我们在第一个阵列上安装了 Domino 可执行文件,用户数据库分布于所有六个阵列。
|
型号
|
Sun 6800
| | CPU | 八个 1050 MHz | | 安装的内存 | 32 GB | | 活动物理驱动器 | 54 | | 活动逻辑卷 | 六个 – Raid 0 阵列 | | 操作系统 | Solaris 9 |
我们在服务器上对 Notes.ini 文件做了以下修改:
|
Domino 6.5
|
Domino 7
| NSF_Buffer_Pool_Size_MB=1536
ServerTasks=Router | NSF_Buffer_Pool_Size_MB=1024
server_max_concurrent_trans=100
nsf_dbucache_max_entries=10000
inotes_wa_profilecachesize=10000
MEM_EnablePreAlloc=1
ConstrainedSHMSizeMB=3300
ServerTasks=Router,HTTP |
在 Domino 6.5 测试中,我们使用 1.5 GB 作为 NSF 缓冲池,但是对于 Domino 7,我们将其降低至 1 GB,以允许在 Domino 7 中支持更多的用户。还增加了 server_max_concurrent_trans、NSF_dbucache_maxentries 和 inotes_wa_profilecachesize 以更好地处理其他用户负载。
我们对 Domino Directory 配置做了附加更改,Domino 7 能利用这些配置来启用 Solaris 的大页面支持。
|
设置
|
Domino 6.5
|
Domino 7
| | 用户数 | 10,000 | 10,000 | | HTTP 线程 | 250 | 250 | | 侦听队列大小 | 6000 | 2000 | | 并行网络会话的最大数 | 3000 | 2000 | | Domino Web Engine - 缓存用户的上限 | 10000 | 4000 |
在图 5 中,与 Domino 6.5 相比,将看到 R6iNotes 虚拟用户所需的 CPU 资源有实质性的减少。减少的数量依据服务器的繁忙程度而不同,但是在 5500 个用户时,Domino 7 的 CPU 资源占用为 51%,相等活动用户数量的情况下我们在 Domino 6.5 上看到的 CPU 资源占用为 86%。节省了 41%(相对)的CPU 资源!从这个基准测试中我们还看到,Domino 7 将支持大约 9000 个用户,使用相同的 CPU 时 Domino 6.5 仅支持 5500 个用户。在 CPU 资源占用为 97% 时,Domino 7 上最多能够运行 9750 个用户。
图 5. Solaris 9 的 CPU 使用情况
下表显示了当在 Domino 6.5 和 7 上的 5500 个基准测试用户都处于活动状态时,CPU、磁盘、内存和网络资源各自的使用情况。除了前面提到的 CPU 资源方面的节省,我们可以看到消耗了几乎相同的网络带宽和稍显频繁的总的磁盘活动。在内存占用方面的不同主要是因为我们对 Domino 7 服务器所做的配置更改。例如,上面所显示的 NSF 缓冲池的大小减少了一半,几乎引起了同样数量的共享内存下降。
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 5500 | 5500 | n/a | | CPU 占用百分比 | 86 | 51 | -41 | | 磁盘读取 请求/秒 | 1940 | 1659 | -14 | | 磁盘写入 请求/秒 | 6697 | 7351 | 10 | | 使用的共享内存(MB) | 2192 | 1603 | -27 | | 进程使用的内存(MB) | 118 | 153 | 30 | | 网络 bytes/sec | 533,486 | 525,612 | -1 |
在 Solaris 上,Domino 7 在可伸缩性方面显示了卓越的改进,允许运行 9750 个基准用户,而相同的硬件设备中,我们前面使用 Domino 6.5 进行的测试中仅能达到 5500 个用户。另外,还极大地节省了 CPU 资源,当考虑服务器合并时这一点将是非常有价值的。
Windows 2003 Enterprise Server
Domino 7 作为单独分区服务器安装在运行 Windows 2003 Enterprise Server 的 eServer xSeries 365 上,eServer xSeries 365 带有八个处理器、启用了超线程并具有 3.5 GB 的可用内存。Domino 的可执行文件安装在 IBM FAStT 200 GB 阵列 RAID 0 上。邮件数据库分布于五个 IBM FastT 200 GB 阵列,同样配置为 RAID 0。通过一个 1 GB 以太网适配器进行网络访问,在全双工模式下运行。下面的数据包含了 xSeries 服务器和 Domino 服务器的配置。
|
型号
|
eServer xSeries 365
| | CPU | 8 个 3.0 GHz HT | | 安装的内存 | 3583 MB | | 活动物理驱动器 | 62 | | 活动逻辑卷 | 5 个阵列 RAID 0 | | 操作系统 | Windows 2003 Enterprise Server |
和大多数其他测试一样,我们修改了服务器的 Notes.ini 文件:
|
Domino 6.5
|
Domino 7
| Show_Server_Performance=1
platform_statistics_enabled=1 | iNotes_WA_EnableProfileStats=1
NSF_DBUCACHE_MAX_ENTRIES=12000
iNotes_WA_ProfileCacheSize=11050
NSF_DBcache_maxentries=11050
NSF_Buffer_Pool_Size_MB=512
Show_Server_Performance=1
platform_statistics_enabled=1
server_max_concurrent_trans=100 |
我们为 Domino 6.5 定义了 7000 个用户,为 Domino 7.0 定义了 10,000 个用户。
图 6 显示了我们的结果。
图 6. Windows 2003 Enterprise Server 的 CPU 使用情况
如图 6 所示,与 Domino 6.5 相比,可以看到 R6iNotes 虚拟用户所需 CPU 的资源有实质性的减少。同使用其他平台一样,运行在 Windows 2003 Enterprise 服务器上的 Domino 7 获得了 CPU 利用和可伸缩性方面的改进。运行在基于 Windows 2003 平台上的 Domino 7 支持的最大虚拟用户数为 10,500。在 7000 个用户的负载级别上,Domino 7 与 Domino 6.5 相比,显示了显著的 CPU 占用节省。虚拟用户数为 7000 时,Domino 6.5 占用了 92% 的 CPU 资源,而 Domino 7 占用的 CPU 资源仅为 40%,减少了57% 的 CPU 资源占用。随着 Domino 虚拟用户的增加,节省的 CPU 资源也增多。
下表包含使用两个模板进行测试时所获得的资源使用情况。虽然两个模板都显示了极大的 CPU 节省,但可以看到当处理一些集成到 Domino 7 模板中的新增功能时,Domino 服务器使用了稍多的资源。在第一个表中,我们的模拟用户使用的是 mail6.ntf 邮件模板:
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 7000 | 7000 | n/a | | CPU 占用百分比 | 92 | 35 | -62 | | 磁盘读取 请求/秒 | 21255 | 13008 | -39 | | 磁盘写入 请求/秒 | 7345 | 5869 | -20 | | 使用的共享内存(MB) | 1369 | 1140 | -17 | | 进程使用的内存(MB) | 63 | 120 | 90 | | 网络 bytes/sec | 881255 | 649861 | -26 |
在下面这个表中,Domino 7 用户使用的是 mail7.ntf 邮件模板:
|
资源
|
Domino 6.5
|
Domino 7
|
变化(百分比)
| | 用户数 | 7000 | 7000 | n/a | | CPU 占用百分比 | 92 | 40 | -57 | | 磁盘读取 请求/秒 | 21255 | 19824 | -7 | | 磁盘写入 请求/秒 | 7345 | 5975 | -19 | | 使用的共享内存(MB) | 1369 | 1250 | -9 | | 进程使用的内存(MB) | 63 | 120 | 90 | | 网络 bytes/sec | 881255 | 655926 | -26 |
正如从数据中看到的,在 Windows 2003 上 Domino 7 运行 Domino Web Access 较之 Domino 6.5 有几个显著的性能优势。使用更少的 CPU 资源,节省内存,并且支持的用户数增加了 50%。与 Domino 6.5 相比,Domino 7 在可伸缩性、性能和 TCO 方面继续得到改进。
zSeries 上的 Linux
对于在 zSeries 平台的 Linux 上执行的测试,在 series z990 型号 2084-C24 上,我们使用了一个逻辑分区(LPAR)。z990 有 24 个 可用的 CPU,其中 6 个专用于性能测试 LPAR。其余的 18 个 CPU 以及一些其他的设备资源,共享给其他的 13 个用于 Domino 开发和测试活动的 LPAR。性能测试 LPAR 配置了 12 GB 的内存。在 SLES 8 上,仅使用了 2 GB 的中心内存,因为是 31 位的操作系统,2 GB 的扩展内存将用于交换空间。在 SLES 9 上,总共使用 12 GB。使用单一的 GB Ethernet Open Systems Architecture(OSA)卡。LAN 是独立的。所有的磁盘都是从 Enterprise Storage Server(2105 型号 800)阵列分配的,每一个磁盘都配置为 3390 型号 3。有独立的文件系统位于单一的卷(磁盘)上,用于 Domino 执行、数据(除了客户机邮件数据库)和 Domino 通讯录(Names.nsf),为进行事务记录在一个逻辑卷管理器(logical volume manager,LVM)中附加了两个卷。客户机邮件数据库均匀分布于 52 个 LVM 文件系统,每一个分配都横跨 LVM 中的五个卷,为每一个文件系统提供 11.5 GB 的可用空间。EXT 3 文件系统用于 zSeries 上的 Linux。安装的操作系统为带有 SP3 的 SLES 8 或带有 SP1 的 SLES 9。我们在运行中启用了事务记录,使用硬件代替 LZ1 软件来压缩数据。只有在 zSeries 上的 Domino 7 中提供此功能。
|
型号
|
z990 2084-C24
| | CPU | 6 个专用 CPU | | 安装的内存 | 12 GB | | DASD 型号 | 2105 型号 800,3390 型号为 3 的卷 | | 文件系统 | 52 x 5 LVM 邮件数据库,7 个其他卷用于 Notes 数据、notesbin、Domino 目录、邮箱、实用程序和事务日志 | | 操作系统 | SLES 8 SP3 / SLES 9 SP1 |
在测试之前,将 Domino 6.5 和 Domino 7 服务器的 Notes.ini 文件配置为包括下列内容:
TRANSLOG_Status=1
NSF_Buffer_Pool_Size_MB=256
ServerTasks=Router, HTTP
NSF_DBCache_MaxEntries=9000
iNotes_WA_ProfileCacheSize=9000
iNotes_WA_ProfileCacheSize=9000
图 7 显示了 Domino 6.5 和 Domino 7 运行 R6iNotes 邮件工作负载时 CPU 的性能改进,测试了来自 Domino 6.5 的 iNotes6 模板和来自 Domino 7 的 dwa7 模板。
图 7. zSeries 上 Linux 的 CPU 使用情况
图 7 显示了运行 iNotes6 模板的 Domino 7 的 CPU 具有从 25% 到 32% 的性能改进范围,运行 dwa7 模板的 Domino 7 具有从 11% 到 23% 的性能改进。显然,使用 iNotes6.ntf 和 dwa7.ntf 时 Domino 7 的 CPU 使用情况都比 Domino 6.5 有所改进。根据模板中包含的功能的不同,不同模板(定制的和默认的)中数据的变化是可以预期的。在保持功能增强的同时,IBM 将不断地评估这些方面以使 CPU 的效率最大化。
图 8 显示了在 SLES 9 上运行使用 iNotes6 模板的 Domino 7 时,CPU 性能有从 5% 到 12% 的改进。SLES 9 中没有 31 位 SLES 8 体系结构中固有的内存限制,所以 SLES 9 能够从 Domino 6.5 到 Domino 7 的 CPU 性能改进中获得更大的好处。
图 8. 与 SLES 8 相比 SLES 9 上 CPU 使用情况的改进
在 Domino 6.5 和 Domino 7 服务器上,工作负载生成了相同数量的工作;引起了相同数量的网络字节发送和接收;发送了相同数量的消息;并完成了相同数量的事务。结果,在 Domino 7 上 CPU 资源的节省转换为高工作负载级别的稳定性,从而允许运行在 zSeries 服务器 Linux 上的单一 Domino 7 支持更多的客户机。更重要的是,与运行在 zSeries 服务器 Linux 上的 Domino 6.5 相比,Domino 7 上更少的 CPU 资源需求能够产生总体拥有成本的实质性降低。
z/OS
本节所描述的所有测试都运行在 zSeries z990 型号 2084-C24 的一个专用 LPAR 上。它有 24 个可用的 CPU,其中 6 个专用于性能测试 LPAR。其余的 18 个 CPU 以及一些其他的设备资源,共享给其他的 13 个用于 Domino 开发和测试活动的 LPAR。性能测试 LPAR 配置了 12 GB 的中心存储内存。我们使用了一个单独的 GB Ethernet OSA 卡。我们的 LAN 是独立的。所有的磁盘都是从 Enterprise Storage Server(2105 型号 800)阵列分配的;每一个磁盘都配置为 3390 型号 3。 一个位于单独卷(磁盘)上的单独的 z/FS 文件系统,用于 Domino 的执行、数据(除了客户机邮件数据库)和 Domino 目录(Names.nsf)。一个文件系统横跨两个卷,用于事务记录数据。客户机邮件数据库均匀分布于 53 个 z/FS,每一个分配都横跨五个卷,为每一个文件系统提供 11.5 GB 的可用空间。安装的操作系统是 z/OS 版本 1 R5。我们在运行中启用了事务记录,使用硬件代替 LZ1 软件来压缩数据。
|
型号
|
z990 2084-C24
| | CPU | 6 个专用 CPU | | 安装的内存 | 12 GB | | DASD 型号 | 2105 型号 800,3390 型号为 3 的卷 | | 文件系统 | 53 x 5 z/FS 邮件数据库,7 个其他卷用于 Notes 数据、notesbin、Domino 目录、邮箱、实用程序和事务日志 | | 操作系统 | z/OS 1.5 |
我们对 Domino 6.5 和 Domino 7 服务器的 Notes.ini 文件做了如下修改:
TRANSLOG_Status=1
NSF_Buffer_Pool_Size_MB=256
ServerTasks=Router. HTTP
NSF_DBCache_MaxEntries=10000
iNotes_WA_ProfileCacheSize=10000
iNotes_WA_ProfileCacheSize=10000
我们这个测试定义了 10,000 个用户。
图 9 显示了 Domino 6.5 和 Domino 7 运行 R6iNotes 工作负载时 CPU 的性能改进,测试了来自 Domino 6.5 的 iNotes6 模板和来自 Domino 7 的 dwa7 模板。该图显示了运行 iNotes6 模板的 Domino 7 的 CPU 具有从 27% 到 34% 的性能改进范围,运行 dwa7 模板的 Domino 7 具有从 10% 到 24% 的性能改进。可以看到,Domino 7 在使用 inotes6 和 dwa7 模板时 CPU 使用情况都比 Domino 6.5 有所改进。
图 9. z/OS 上的 Linux 的 CPU 使用情况
图 10 显示了 Domino 7 上来自 HTTP 任务的主要性能改进。Router 任务也显示了 Domino 7 上的 CPU 性能改进。
图 10. Server、Router、HTTP 和事件任务的 CPU 使用情况
在 Domino 6.5 和 Domino 7 服务器上,工作负载生成了相同数量的工作;引起了相同数量的网络字节发送和接收;发送了相同数量的消息;并完成了相同数量的事务。因此,在 Domino 7 上 CPU 资源的节省转换为高工作负载级别的稳定性,从而允许运行在 z/OS 服务器上的单一 Domino 7 支持更多的客户机。
结束语
对于 Domino 7,我们主要为 Domino Web Access 用户做了两个方面的性能改进。第一个方面是提高了 Domino 服务器的可伸缩性,克服了代码瓶颈,第二个方面是使早期版本中存在的 CPU 资源使用和资源争用最小化。随着当前服务器硬件性能的提升,许多客户正在寻找一体化的环境,我们需要为实现这种环境做好准备。在本文的结尾部分,我们展示了与 Domino 6.5 相比,运行在所有平台上的 Domino 7 增加了基准测试用户数量。 即使不想让您的生产服务器承受像我们的基准测试中那么重的负担,也应该知道 Domino 现在的版本与 6.5 版本相比,能够处理的用户数量增加了 50%。
随着可伸缩性的增强,与 Domino 6.5 相比,Domino 7 减少了处理相同数量的用户时所需要的 CPU 资源数量。在不同的平台和服务器设备上,性能提高的程度是不同的,但是一般来说,在最繁忙的服务器上我们看到了最大的性能提高。
参考资料
作者简介  | |  | Rich Buck 在 IBM 有长期从事性能方面工作的经验。Rich 的工作涉及 Domino 支持的所有操作系统,当前集中于 Solaris 操作系统。 |
 | |  | Wu W Huang 是 Lotus Domino Performance 团队的一员,主要集中于 zSeries 平台。 |
 | |  | Dave Johnson 现在是 iSeries System Performance 团队的一员,致力于 Domino 性能方面的研究。Dave 的小组还负责对 IBM eServer iSeries 的 NotesBench 进行审核。 |
 | |  | Angelo Lynn 是 Domino Performance 团队的性能工程师。他目前主要负责基于 Windows 平台的 Domino 性能问题。他刚毕业于 Northeastern 大学。 |
 | |  | Andy Nolet 自 20 世纪 90 年代末期就开始从事与 Notes 性能相关的客户方面的工作。加入 Domino Performance 团队之前,Andy 在 Lotus Support 部门工作。 |
 | |  | Joseph H. Peterson 是位于 Rochester Minnesota 的 iSeries 开发团队的一员。他致力于 Lotus 产品性能方面的研究。 |
 | |  | Jim Powers 是 Domino Performance 团队的一员。以前,Jim 负责领导 Lotus Domino Support 组织的性能团队。他从事计算机系统的工作经验有 30 多年了,在他的职业生涯中,从事过各种硬件和软件方面的工作。 |
对本文的评价
|