转自:developerworks
作者:Daniel Dumouchel, 软件工程师, IBM
Joseph Malek, 软件开发人员, IBM
Jim Powers, 软件工程师, IBM, Software Group
Lotus Server.Load 是基于 IBM Lotus Domino 特性的负载生成工具,可以使用它度量各种 Lotus Domino 服务器容量和响应指标。通过运行工作负载(也称为脚本)生成负载,模拟 Lotus Domino 客户机-服务器操作的行为。工作负载让用户能够使用一种通用工具对 Lotus Domino 或 IBM Lotus Sametime 服务器施加一致的可重复的负载,这样就可以评估各种操作系统、硬件和配置更改的效果。
有两种工作负载:内置的和定制的。大多数内置工作负载模拟不同类型的邮件用户活动。您可以修改内置工作负载,还可以根据需要编写自己的工作负载。对 Lotus Server.Load 的概述请参见 developerWorks Lotus 文章 “Domino 性能调优简介”。
Lotus Server.Load 是 IBM Lotus Domino Administrator 客户机的安装选项。可以在安装 Lotus Domino Administrator 客户机的过程中选择它。图 1 显示 Administrator 客户机安装过程中 Custom Setup 窗口中的 Server Load Utility 选项。
选择了 Lotus Server.Load 之后,要做什么?
如果选择了 Server Load Utility 选项,安装程序会在 Lotus Domino Administrator 的 Notes 目录中放一个 sload.exe 文件和一个 namagent.nsf 数据库。sload.exe 程序在客户机的可执行目录中 (notes),数据库 namagent.nsf 在客户机的数据目录中 (notes\data)。如果打算运行任何与 Lotus Sametime 相关的东西,那么还要把 CstClientTest.java 和 stjavatk.jar 复制到可执行目录中(sload.exe 所在的目录)。运行启用 Lotus Sametime 的工作负载需要这两个文件。
应该使用以下环境进行测试:
- Server Under Test (SUT)。这个测试系统运行 Lotus Domino,Lotus Server.Load 模拟的用户连接其中的 Lotus Domino。需要把数据库 (namagent.nsf) 中的代理复制到这个服务器的 Domino 目录。这些代理创建测试用户 Person 文档、设置 ACL 值等等。
- 客户机/驱动程序。这些系统运行 Lotus Server.Load 和工作负载脚本,模拟针对 SUT 的用户活动。需要在这些系统上安装 Lotus Notes 客户机,因为 Lotus Server.Load 需要使用 Lotus Notes API。根据所需的用户负载,可能需要多个客户机。每个客户机通常可以运行 512 到 1,500 个模拟用户(取决于客户机的硬件)。Lotus Server.Load 还可以用来把 Lotus Domino 服务器统计数据收集到文件中。使用一个单独的客户机运行服务器统计数据收集脚本(后面详细讨论)。客户机机器不必都是管理客户机。只要把所需的文件复制到客户机的可执行目录(通常是 Notes 目录),就可以使用标准的 Lotus Notes 客户机。在运行 Lotus Server.Load 之前,Lotus Notes 客户机需要连接到 SUT。我们建议在指向 SUT 的客户机上设置测试用户 ID 并创建 Location 文档。
图 2 显示 IBM Lotus Domino Designer 客户机,其中已经打开了 namagent.nsf 和 SUT 的 Domino Directory,下面要把代理从 .nsf 数据库复制到目录中。在右边的面板中,选择代理,把它们复制并粘贴到 SUT 的 Domino Directory 中的相同文件夹 (Shared Code - Agents)。
把代理复制到 SUT 的 Domino Directory 中之后,可以使用它们创建 Mail Person 文档。步骤如下:
- 在 Lotus Domino Designer 中,选择 Actions - Other。
- Run Agent 对话框打开,在其中选择要运行的代理。选择 “Create NotesBench Mail Person Documents” 代理创建 Person 文档。单击 Run。
- 在 “Enter A Number 1-9 to Select Workload Setup” 对话框中,输入 1 选择 NRPC Mail。单击 OK。
- 在 “Create NotesBench Mail Person Documents” 对话框中,在 “Starting Value to Create Mail Users” 框中输入 1。单击 OK。
- 接下来,在 “Number of Users to Create” 框中输入 1000,从而在 Domino Directory 中添加用户。可以添加任意数量的用户,但是要记住,要想在工作负载中运行一个用户,这个用户就需要有相应的 Person 文档。单击 OK。
- 接下来,在 “Number of Mailn.NSF Files to Use” 框中输入与第 5 步中相同的数字。在这个示例中,输入 1000。单击 OK。
- 在 “Starting Mailn.NSF File” 框中输入 1。一定要输入与第 4 步中在 “Starting Value to Create Mail Users” 框中输入的值相同的值。单击 OK。
- 在 “Location for Mail Databases (relative to Notes Data directory, blank = root)” 框中输入 mail\。单击 OK。
- 在 “Mail Domain (example: notebnch)” 框中输入您的服务器的域作为 SUT 的域名。单击 OK。
- 在 “Mail Server (example: sut1/notebnch)” 框中输入 yourserver/yourdomain(您的服务器的名称和域)作为 SUT 的名称和域。单击 OK。
- 在 “Create Person Documents for NRPC Mail” 对话框中,在 “Internet Host Name” 框中输入 SUT 的完全限定主机名,例如 yourserver.yourdomain.com。单击 OK。
- 在 “Create NotesBench Mail Person Documents” 对话框中,在 “Message Storage Format” 框中输入一个值。这个值取决于用户采用的格式。对于 Notes 格式,选择 0;对于没有首选格式的情况,选择 1;对于 Internet/Web 格式,选择 2。在大多数情况下,要运行 N8Mail 工作负载,应该选择 0。单击 OK。
- 在 “Mail System” 框中输入 1。单击 OK。
- 在最后一个对话框中,在 “Click OK to run Create Notesbench Person Documents Agent with the following settings” 框中输入 y。单击 OK。
在 SUT 上配置环境之后,可以配置客户端。工作负载在数据库上运行,需要填充数据库。接下来,决定哪个工作负载适合自己的需要。Lotus Server.Load 内置了许多工作负载。这些工作负载提供不同的用户模型,代表一般用户和用户可能执行的操作的典型情况。但是,Lotus Server.Load 提供的工作负载可能无法完全满足您的测试环境需求,所以 Lotus Server.Load 也可以输入定制的工作负载。请参考 Lotus Domino Administrator 帮助 中关于 Lotus Server.Load 的部分,了解各个内置工作负载的详细信息。
图 3 显示 Lotus Server.Load 中各个工作负载的下拉列表。
.
图 3. Lotus Server.Load 工作负载
我们先来运行一个内置的工作负载。运行 sload.exe 程序,这是在安装 Lotus Domino Administrator 客户机过程中选择 Lotus Server.Load 选项时装载的文件之一。在默认情况下,Lotus Server.Load 选择内置的工作负载类型。可以使用下拉框浏览工作负载,寻找希望运行的工作负载。
正如前面提到的,需要在运行工作负载的服务器 (SUT) 上创建和初始化邮件数据库。为此,要运行工作负载的初始化步骤;完成之后,就可以运行实际的工作负载。初始化步骤适用于大多数工作负载。关于这个过程的详细信息可以在 Lotus Domino Administrator 文档中找到。
如果提供的工作负载无法满足您的需要,可以选择 Custom 作为测试类型。Lotus Server.Load 有许多可供选择的命令(参见文档),可以查看内置的工作负载,复制这些命令集,根据需要编辑它们。这种方法可以快速简便地创建自己的定制工作负载。在编写自己的定制工作负载之后,可以把它存储在自己的机器上,可以通过 Lotus Server.Load 中的选项打开这个脚本。可以通过单击 Edit Script. 按钮查看脚本,根据需要修改定制的脚本。
如图 3 所示,还可以选择 manual 作为测试类型。manual 模式用来运行各种工作负载命令。在选择 manual 模式时,可以使用 Command-Line Screen 附签输入命令。这种模式有助于在完整地运行脚本之前测试脚本的各个部分。
图 4 显示工作负载类型区域下面的四个附签。这些附签用于进一步定制工作负载,每个附签上都有许多可以编辑的设置。在第一个附签 Test Parameters 上,可以编辑模拟用户的数量和运行脚本的次数。可以设置线程创建时间间隔(启动每个用户/线程时延迟的秒数)和初始线程数量。有时候,希望在某一时间段内运行脚本;在 Lotus Server.Load 中,可以通过测试时间参数选项来设置运行时间。最后,可以使用姓名和地址簿构建收件人列表和把测试输出到指定的文件中。
图 4. Lotus Server.Load 对话框的定制附签有时候,脚本可能会超时或响应时间太长。在 Stop Conditions 附签(图 5)中,可以定制停止条件。Lotus Server.Load 允许为这两种情况手工设置上限。如果达到这个数字,测试立即停止并发送输出。
图 5. Lotus Server.Load 对话框的 Stop Conditions 附签几乎所有工作负载都依靠脚本变量来驱动脚本。第三个附签 Script. Variables(图 6)允许修改每个变量的值。(关于变量是什么以及它们的推荐值的详细信息,请参见 Lotus Domino Administrator 帮助)。
图 6. Lotus Server.Load 对话框的 Script. Variables 附签最后一个附签 Command Line Screen 只用于 manual 模式。正如前面提到的,可以使用 manual 模式手工输入脚本可能使用的命令。
按您喜欢的方式定制工作负载之后,就可以执行工作负载了。
在运行脚本之前应该做的最后一件事是,决定测试应该记录哪些指标?在单击 Execute 按钮之后,有机会选择指标(见图 7)。Lotus Server.Load 允许选择脚本指标以及一组有限的服务器统计指标。它还每分钟记录一次线程统计数据。还可以为指标指定可选的存储。
现在可以运行工作负载了。输出显示在图 8 所示的窗口中。Lotus Server.Load 记录开始时间和结束时间,并在测试结束时通知您。
这个示例创建 N8Mail 工作负载使用的邮件数据库。图 9 显示选择的用户/线程数是 1;这创建一个数据库 mail1.nsf。可以编写 O/S 脚本多次复制这个数据库,文件名依次递增 mail2.nsf、mail3.nsf 等等,数据库的数量与创建的测试用户数匹配。还可以在 “Number of Users/Threads” 框中输入数据库总数,让 Lotus Server.Load 构建所有数据库。
这个示例给出对前面创建的邮件数据库运行 N8Mail 工作负载所用的设置。它将运行 1,000 个模拟用户,见图 10。
图 11 显示这个工作负载中使用的变量。这些变量大多数是预先装载的。只需添加两个变量:
- nb-dbdir 的值。这是服务器上 Lotus Domino 数据目录中的子目录,其中包含模拟用户的邮件数据库 —— 在这里是邮件子目录。
- MailTemplate 变量。在这个示例中,希望使用服务器 (SUT) Dolly 上的邮件模板。邮件模板的名称是 mail8.ntf。服务器名应该放在 !! 字符前面。因此,这个变量的值应该是 Dolly!!mail8.ntf。
注意:客户机应该交错启动,让每个客户机能够在启动下一个客户机之前完全启动。(但是,运行服务器统计数据收集脚本的客户机例外;这个客户机应该是第一个启动的客户机)。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14751907/viewspace-608436/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14751907/viewspace-608436/