IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Lotus  >

优化 Lotus Domino 服务器性能: HTTP 线程设置

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 中级

George Demetriou, 性能工程师, Iris

1999 年 8 月 02 日

本文对 Windows NT 上的 Domino Web 服务器的资源利用进行了性能分析。文中的测试展示了更改 HTTP 线程设置对服务器响应时间和资源利用率的影响。

您是否已经将所有 Domino 服务器都设置为 “支持 Web”,但是又想充分利用系统资源?也许您还没有意识到,您可以调整服务器上运行的 HTTP 线程的数量,并提高服务器的响应时间和资源利用率。

在本文中,我们将深入了解 Windows NT 上 Domino Web 服务器资源利用率的性能分析。文中的测试展示了更改 HTTP 线程的设置对服务器性能的影响。我们首先定义什么是 HTTP 线程,然后描述测试方法和测试数据,最后总结测试结果。这可以帮助您决定将来如何设置您的环境。

有关如何针对 Lotus/Iris 实施性能分析的更多信息,或者有关所使用的工具的简介,请阅读 “优化服务器性能:端口加密和缓冲区设置”。要阅读改善服务器性能的更多建议,请参考 “提升服务器性能的十大方法”。

什么是 HTTP 线程?

HTTP 线程是处理传入 HTTP 请求的执行线程。要指定想在 Domino 服务器激活的线程的数量,可以使用 Public Address Book 中 Server 文档的 HTTP 部分的 “Number of active threads” 字段。默认设置是 40。在 Domino 服务器上初始化 HTTP 服务器任务时,将创建定义的线程,每个线程占用约 20-40Kb 的内存。在更改 Server 文档中的值并重启 HTTP 任务之前,这些线程的数量是固定的。

Domino 服务器在这里充当基于 HTTP 的消息传递服务器,在对它进行性能分析时,我们预期 HTTP 活动线程的设置应该等于特定 Domino 服务器上 Web 用户的数量。例如,如果您预计有 200 个 Web 用户使用 Domino 服务器,您可以假设应该将 HTTP 活动线程设置为 200。但是,正如您从我们的测试结果中看到的,实际情况并非如此





回页首


测试方法和测试数据

为了运行测试场景,我们安装了一个客户端,可以模拟运行新 NotesBench WebMail 工作负载的 Web 浏览器用户,其配置如下:

  • CPU:一个 Pentium II 处理器
  • 内存:256MB RAM
  • 操作系统:Windows NT 4.0 Workstation
  • Notes:Release 5(基于 Beta 1)
  • NotesBench WebMail 工作负载(可从 NotesBench 发行版 5 获取)

我们安装了一个 Domino 服务器,配置如下:

  • CPU:两个 Intel Pentium II/300MHz,512k 二级缓存
  • 内存:512MB RAM
  • 单个 SCSI 控制器
  • 跨 6 个磁盘驱动器创建 3 个硬件阵列
  • 硬盘驱动器:
    --Logical C:一个 RAID0 7200rpm 驱动器,用于操作系统
    --Logical D:一个 RAID0 7200rpm 驱动器,用于页面文件和 Domino 可执行文件
    --Logical F:一个 RAID5 7200rpm,带有 4 个驱动器,用于用户邮件文件、日志和邮箱(共 36GB 存储空间,用于 \data 目录)
  • 操作系统:Windows NT Server 4.0, Service Pack 3
  • Domino:Release 4.62 for Windows NT

具体来说,我们想测试改变以下 HTTP 线程设置时的相对影响(用户数量、响应时间、资源利用率):10、25、50、100 和 200。我们将每一种设置应用于 NotesBench WebMail,分别测试用户数为 25、50、100 和 200 的情况。该测试场景比较各种负载情况下的平均用户响应时间、探针响应时间、系统 CPU 利用率、占用的内存和磁盘利用率。我们在稳定状态下每次测试运行约 60 分钟,自举(ramp up)周期为 5 分钟。

我们在所有测试中使用的工作负载都是新的 NotesBench WebMail 工作负载,它在 R5 发布后可用。该工作负载允许每个模拟用户访问他们各自的邮件文件,邮件文件使用 R4.6 Mail - Combined 模版(mailc46.ntf)通过 HTTP 协议构建。每个用户迭代执行 15 分钟的脚本,该脚本由以下部分组成:

  1. 准备 10K 的消息并将其发送到三个收件人,这些收件人是从服务器的目录中动态选择的,每 15 分钟选择一次。
  2. 读取收件箱和前五个收件箱文档,然后删除第一个消息。

所有消息都可以通过同一个 Domino 服务器上的其他模拟 WebMail 用户发送和接受。

此外,WebMail 工作负载需要在客户端上设置以下 NOTES.INI:

  • ThreadStagger = 5(秒)
  • NormalMessageSize=10000
  • NumMessageRecipients=3

ThreadStagger 设置指定每个用户何时开始登录,在本例中,每个用户在 5 秒钟之后开始登录。该设置帮助服务器顺利地完成自举,在自举阶段不存在连接超时。NormalMessageSize 和 NumMessageRecipients 设置指定消息的大小 (10K) 以及 15 分钟的 WebMail 脚本中使用的收件人数量 (3)。

您可以通过侧栏 “HTTP 线程设置测试结果” 了解这些测试的结果。关于我们的结论,请参考下一节 “我们的发现”。





回页首


我们的发现

我们发现,HTTP 线程不一定 越多 越好。实际上,根据数据和图形可以看出,如果定义的 HTTP 线程数量高于实际需要的数量,将导致性能递减,内存消耗增加因此,您应该只定义服务器负载所需的最少 HTTP 线程数量。

针对给定用户负载确定最优 HTTP 线程设置的最佳方法是先运行与用户负载相符的 HTTP 线程设置。然后,在服务器控制台,输入以下内容检查使用的 HTTP 线程的最大数量:

show statistic domino.threads.active.peak

由于该值指示了使用的 HTTP 线程的最大数量,因此在 Server 文档中更适合使用该值设置 HTTP 线程。

如果您已经安装了 Domino 服务器并且大致了解它将支持的 Web 邮件用户的数量,那么可以将 HTTP 线程的数量设置为 Web 用户数的 10%,这是一个很好的初始值。例如,如果您预期 200 个 Web 邮件用户,那么合适的初始 HTTP 线程的数量为 20。用户运行之后,您可以根据 “domino.threads.active.peak” 统计数据对设置进行 “调优”。如果您经常发现 Peak 值与您定义的值一致,那么应该增加 Server 文档的 HTTP 部分定义的线程的值。

如果对基于 HTTP 的消息传递不使用服务器呢?您同样可以监控 “domino.threads.active.peak” 统计数据以确定启动的线程数是否高于实际所需的数量。通过降低线程数,您可以减少 HTTP 服务器使用的内存数量,从而将节省下的内存用于服务器的其他活动。



参考资料



关于作者

George Demetriou 于 1997 年从 Eastman Software 转入 Iris 工作。他是一名性能工程师,一直负责 Domino Web 服务器性能测量和评估方面的工作。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款