内容


优化 Lotus Domino 服务器性能

端口加密与缓冲池设置

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 优化 Lotus Domino 服务器性能

敬请期待该系列的后续内容。

此内容是该系列的一部分:优化 Lotus Domino 服务器性能

敬请期待该系列的后续内容。

当问及如何征服世界时,亚历山大大帝的回答是 “从不拖延”。如果您想要 Domino 服务器征服世界,您可能需要竭尽所能降低延迟。但是,您必须问自己,“我如何才能降低服务器延迟并优化服务器性能?”

要优化您的服务器性能,您需要理解服务器性能分析。服务器性能分析包括测试影响服务器性能的不同因素,并根据结果得出结论。然后您可以在您的环境中使用此信息改善服务器性能。本文将描述性能分析,展示我们如何在 Lotus/Iris 上进行分析。本文将向您介绍我们使用的工具,让您深入了解两种性能分析方法及其结果。第一个测试显示端口加密对服务器性能的影响。第二个测试显示 NOTES.INI 文件中的 NSF_BUFFER_POOL_SIZE 设置如何影响服务器性能,我们将通过分析几个不同的测试场景来得出结论。

理解对每个测试的分析很重要,因为能够显著增强一台服务器的性能的建议不一定总是对在稍微不同的环境中运行、具有不同配置的服务器有相同的效果。您应该将本文的所有测试结果应用到您自己的配置上,以帮助理解 Domino 服务器性能和如何设置您的 Domino 服务器系统。即使我们在给定配置下实现了一定程度的性能改善,也不能保证当某种规格翻倍或减半之后还能获得性能改善(很遗憾)。这就是性能评估的本质和我们执行如此多的不同测试的原因!支持本文中的建议的测试数据和方法能够帮助您决定哪些方法适用于您的环境,也可能帮助您规划如何未来设置您的环境。

要了解改善服务器性能的更多建议,请参见补充栏 “改善服务器性能的 10 种方式”。

基准工具

我们在 Lotus/Iris 上进行我们的服务器性能测试,我们在相关的基准方面进行了大量工作,以满足客户的需求。基准是一种标准,硬件或软件性能通过它来进行测量。我们的基准测试通常测量 Domino 服务器执行特定工作的的效率和速度。您可以使用我们的测试结果来帮助进行容量规划,以及在您自己的环境中优化服务器。

我们使用以下工具来进行测试:

  • 在 Windows NT 上使用 PerfMon
  • 在 UNIX 上使用 SAR、VMStat、IOStat、NetStat 和 PerfMeter
  • 在 OS/2 上使用 Pulse、MPCPUMON、WSTUNE、BonAmi 的 “CPU Monitor Plus”、COL Systems、“Osrm2 Lite Performance Monitor Utility” 和 Clear & Simple 的 Performance 3.0+
  • 在 AIX 上使用 Performance Tuning Redbook

我们也会使用 Domino 工具,比如:

此外,我们使用一个内部开发的工具,名为 NotesBench。这是一个基准工具,允许供应商和其他组织测试特定硬件配置能够支持多少用户和事务。NotesBench 模拟 Domino 工作站到服务器或服务器到服务器操作的行为。它返回测量结果,您可以使用这些结果来评估服务器性能和服务器系统成本。

NotesBench Consortium 是一个独立的非盈利组织,专注于向客户提供 Domino 和 Notes 性能信息。它要求每个成员采用相同的方法运行 NotesBench 测试,支持对测试进行审计。

深入测试端口加密对服务器性能的影响

现在,我们将看一下我们在 Iris 上执行的一些服务器性能测试示例。在第一个测试中,我们首先假设实施端口加密将会影响到服务器性能。我们定义要测试的功能,列出我们的测试方法和测试数据,总结测试结果对用户的意义,从而检验这个假设是否正确。通过阅读以下测试数据,您可以了解我们是如何得出这些测试结果的,还可以评估这些结果是否适用于您的环境。

什么是端口加密?

您可以在特定端口上加密网络数据,以避免网络协议分析者进行网络窃听。网络加密在选定协议的网络传输层上进行。网络数据只在传输时加密。一旦接收到数据,网络加密将不再有效。

只要在网络连接的某一端启用了加密,就会进行网络数据加密。例如,如果您在一台服务器的一个 TCP/IP 端口上启用了网络数据加密,那么就无需在连接到该服务器的工作站或服务器的 TCP/IP 端口上启用加密了。

一台服务器上的多个高速的加密连接可能影响服务器性能。加密网络数据对客户端性能的影响微乎其微。我们想要确定 TCP/IP 端口加密对服务器的影响,并查看该影响是否因用户负载不同而不同。以此作为我们的性能目标,我们将进行一系列测试。

测试方法和测试数据

要运行测试,我们组装一台具有以下配置的服务器:

  • CPU:3 个 200Mhz Pentium Pro,512K 二级缓存
  • 硬盘驱动器:Ultra Wide SCSI II (Adaptec),9 Disk (4GB)
  • Raid 级别:RAID0
  • 网络:100MBit 以太网
  • 内存:1.5GB
  • OS:Windows NT 4.0
  • Domino:Release 4.6a

我们然后在服务器上启动 500、800 和 1,000 位用户的活动用户负载,评估端口加密是否会影响 CPU 利用率。我们执行每个负载测试两次,以确定是否会发生相同的结果。这可以测试结果的有效性。我们模拟 NotesBench Mail & Discussion 数据库工作负载的每个用户,并进行以下更改:

  • 消息量为 10K,NotesBench 标准为 1K。
  • 所有消息都传递到本地地址,以测试相同的服务器传递过程。
  • 用户读取在测试期间传递的消息,这会增加视图刷新活动。

在每个用户负载点,我们平均生成并传递了 70,000 条消息。系统上总共有 2,500 个人员条目和邮件数据库。要查看这些测试的结果,请参见补充栏 “端口加密测试结果”。要了解我们的结论,请查阅下面的 “我们得出的结论” 部分。

我们得出的结论

在端口加密测试中,与没有端口加密相比,500、800 和 1,000 名活动用户的 CPU 利用率增长范围在 5% 到 10% 之间。对于所有三种活动用户负载,用户响应时间均小于 0.20 秒。峰值 CPU 利用率持续时间均超过了 90 秒(从用户最初建立到服务器的连接开始)。

在 CPU 利用率小于 60% 的范围内,我们得出的测试结论是:

  • 端口加密对系统利用率的影响随用户数增大而增大。
  • 端口加密对最终用户响应时间的影响随用户数增大而增大。

这些数据不能告诉我们在不同的 CPU 利用率范围(比如大于 85%)的影响是否也是这样的。

通过这些测试的结果,我们得出的结论是,使用端口加密会使 CPU 利用率增加 5-10%。这意味着当总体系统利用率小于 60% 时,您可以启用端口加密,而不用担心在用户响应时间方面的性能影响。

深入测试 NSF_BUFFER_POOL_SIZE 设置对服务器性能的影响

这一部分介绍我们在 Iris 上执行的另一系列深入测试。我们想要确定在服务器的 NOTES.INI 文件中使用 NSF_BUFFER_POOL_SIZE 设置是否会改善系统利用率和响应时间。这些信息对于容量规划非常重要。我们还想知道在以下情况下系统如何使用内存:不使用 NSF_BUFFER_POOL_SIZE 设置并让 Domino 分配空间,指定可用内存的 1/4(这是最低需求,当用户数量增多时将不够用),以及指定可用内存的一半(这些内存可能不会被全部用到)。这些信息对您很重要,因为作为一名管理员,您要控制缓冲池大小规格和决定要指定的缓冲池大小。

注意:尽管我们发现在指定 1/4 的可用内存(几乎相当于保留 Domino 服务器的默认设置)时获得了性能提升,但在本文用于评估的配置下,指定一半的可用内存没有获得性能提升。而且,在特定内存配置下得到的性能行为观察值不一定适用于拥有更高的 RAM 配置的系统。

在第二个深入测试中,我们实际上运行了 3 个测试案例场景,以确定 NSF_BUFFER_POOL_SIZE 设置对内存利用率、系统性能和 CPU 利用率的影响。在第一个场景中,我们首先假设在测试系统配置下,将 NSF_BUFFER_POOL_SIZE 规格设置为可用内存的 1/4 能够获得最佳的系统响应时间和最低的处理器利用率(测试案例 #1)。我们的第二个假设是指定缓冲池大小对内存利用率的影响因用户负载不同而不同(测试案例 #2)。

我们的第三个假设是重构数据库中的视图所花的时间与可用内存和 CPU 数量是独立的(测试案例 #3)。这将意味着购买更多内存对重构时间没有帮助。而且,当重构视图时,重构两个具有相同大小的数据库的视图所花的时间大约为重构一个数据库的视图所花时间的两倍。因此,在同时处理多个任务时,Domino 的内部机制使其能够尽可能有效地工作。

我们定义要测试的功能,列出我们的测试方法和测试数据,总结测试结果对用户的意义,从而判断这些假设是否正确。通过阅读以下测试数据,您可以了解我们是如何得出这些测试结果的,并评估测试结果是否适用于您的环境。

什么是 NSF_BUFFER_POOL_SIZE 设置?

对数据库建立索引可能是一个耗时和资源密集型的活动。要控制此过程,您可以在 NOTES.INI 文件中使用 NSF_BUFFER_POOL_SIZE 设置来指定用于索引的最大大小(以字节为单位)。这个设置控制 NSF 缓冲池的大小,后者是用于缓冲 NIF 索引函数与磁盘存储之间的 I/O 传输的一部分内存。用户数量、视图的大小和数量,以及数据库数量都会影响到您设置缓冲池规格的方式。

使用 NSF_BUFFER_POOL_SIZE 设置可能会影响服务器的响应时间和系统资源利用率。因此,我们希望确定设置和不设置 NSF_BUFFER_POOL_SIZE 对服务器性能的影响。

测试方法和测试数据

为了运行所有测试案例,我们组装一台具有以下规格的服务器:

  • CPU:4 个 200Mhz Pentium Pro,512K 二级缓存
  • 硬盘驱动器:Ultra Wide SCSI II (Adaptec),9 Disk (4 GB)
  • Raid 级别:RAID0
  • 网络:100Mbit 以太网
  • 内存:1.5GB
  • OS:Windows NT 4.0
  • Domino:Release 4.6a

我们测试一个拥有 128MB 内存的系统,NSF_BUFFER_POOL_SIZE 设置包括没有规格的默认设置、指定可用内存的 1/4(最小规格,32 MB)、指定可用内存的一半(最大的建议值,64 MB)。我们也在一个拥有 256MB 内存的系统上运行设置这些值,并调整 NSF_BUFFER_POOL_SIZE 规格,使其与总内存相称。当您增大 NSF_BUFFER_POOL_SIZE 设置时应该使用警告。根据您的配置,您可能看到不同的结果。我们使用 Domino Release 4.6a 来运行所有测试。

测试案例 #1 - 指定 NSF_BUFFER_POOL_SIZE 设置与使用默认设置
在这个测试案例中,我们评估各种用户负载下的处理器负载和响应时间。在一种情况中,我们将服务器配置为使用默认的 NSF_BUFFER_POOL_SIZE 设置。当您不指定 NSF_BUFFER_POOL_SIZE 时,系统分配的内存稍微小于可用内存的 1/4。在另一种情况下,我们指定 NSF_BUFFER_POOL_SIZE。

我们执行 NotesBench 工作负载 Groupware_B,它非常逼真地模拟了一个使用了许多协作功能的 Domino 用户。但是,未使用协作功能的用户的所有活动都会增加工作负载。这个模拟包括复制、邮件活动和网络活动。我们对 1、100、150、200、250、300、350 和 400 位模拟用户进行评估。当测试执行时,我们使用 Server.Planner Probe 来监控总体系统响应时间。

要查看使用 NSF_BUFFER_POOL_SIZE 设置与使用默认内存设置的结果,请参见补充栏 “测试案例 #1 的结果”。要查看我们的结论,请查阅 “我们得出的结果” 部分。

测试案例 #2 - 确定每个用户需要的内存量
此场景非常类似于测试案例 #1。它测试 Groupware_B 工作负载,模拟 1、100、150、200、250、300、350 和 400 名用户。我们添加了另一个系统配置来进行分析:一个 CPU,256MB 内存,接受默认的 NSF_BUFFER_POOL_SIZE 规格。这允许我们评估不同用户负载下的内存利用率。

要查看使用 NSF_BUFFER_POOL_SIZE 设置的结果,以及它如何影响不同用户数量的内存利用率,请参见补充栏 “测试案例 #2 的结果”。要查看我们的结论,请查阅 “我们得出的结论” 部分。

测试案例 #3 - 重构视图
在这个测试案例中,我们测试在一个数据库中重构视图的性能影响。我们使用一个支持 7 个视图的讨论数据库。我们将数据库大小分别设置为 8K、16K、32K、64K、128K 和 256K。我们还设置了各种系统参数,包括 NSF_BUFFER_POOL_SIZE 设置的大小、CPU 数量和可用内存量。这些信息可以帮助您:

  • 预测重构之后的数据库大小
  • 规划支持您的用户所需的磁盘需求
  • 影响您的 Domino 数据库设计的方向,使您了解支持多个更小规模的数据库或将它们组合为一个大型数据库的优点和影响
  • 评估在具有一个或多个 CPU 的系统上支持一个或多个更新操作的影响和需求

要查看调整系统参数的结果和重构视图的影响,请参见补充栏 “测试案例 #3 的结果”。要查看我们的结论,请查阅后面的 “我们得出的结果” 部分。

我们得出的结果

从我们的测试数据,我们得出以下结论:

  • 在测试案例 #1 中,我们发现在所测试的系统配置下,将 NSF_BUFFER_POOL_SIZE 规格设置为可用内存的 1/4 能够获得最佳的响应时间和最低的处理器利用率。尽管我们发现当指定可用内存的 1/4(相当于保留 NSF_BUFFER_POOL_SIZE 默认设置或 Domino 服务器自调优时的设置)能够获得性能提升,但指定可用内存的一半不会自动获得性能提升。这反驳了 “越多越好” 的理论。还有一点需要注意,在具有更少 RAM 的服务器配置中,提高 NSF_BUFFER_POOL_SIZE 将会占用 NT 服务器和 Domino 服务器的可用内存总量。这两种服务器都需要此内存来有效地进行操作。因此,对于配备了较小的 RAM 的 Domino 服务器,增大缓冲池大小会降低其效率和总体性能。
  • 在测试案例 #2 中,我们发现,当规划面向普通到高级用户的系统时,平均每个用户需要 1MB 内存。
  • 在测试案例 #3 中,我们发现,NSF_BUFFER_POOL_SIZE 设置对视图或重构时间没有显著影响。

结束语

您可以采用许多方式来优化服务器的性能。在支持的测试环境中理解这些建议至关重要。这可以帮助您决定是否应该购买硬件来组装或升级您的服务器。它还能够帮助您更好地权衡性能与价格。然后您可以制定明智的决策来降低延迟和优化服务器的性能。您可以使用您的服务器征服全世界!


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=398641
ArticleTitle=优化 Lotus Domino 服务器性能: 端口加密与缓冲池设置
publish-date=08021999