内容


IBM Lotus Quickr services for Lotus Domino 性能调优

Comments

性能调优的目的是改进特定硬件的输出。您应当特别注意适用于您的硬件和网络配置的调优参数。

本文从三个方面介绍如何进行性能调优:操作系统,Lotus Domino 和 Lotus Quickr。调优操作系统涉及到提高操作系统本身的性能,这会影响 Lotus Quickr services for Lotus Domino 性能。Lotus Quickr 8.1 支持 Microsoft® Windows®、AIX® 和 System i® 操作系统。另一方面,Lotus Domino 服务器是 Lotus Quickr services for Lotus Domino 的后端,因此调优 Lotus Domino 服务器也会影响 Lotus Quickr 的性能。

本文没有涵盖 Lotus Quickr 的另一个版本 Lotus Quickr services for WebSphere Portal。在本文中,当提到 “Lotus Quickr” 时,仅仅指的是 Lotus Domino。

调优:操作系统

本节介绍如何从操作系统方面调优性能,操作系统包括:Microsoft Windows、AIX 和 System i5。

调优 Microsoft Windows 操作系统

我们将介绍调优 Microsoft Windows 系统性能的以下方面:

  • 后台
  • 虚拟内存
  • 服务
  • 注册表调优

后台和虚拟内存

选择后台服务使所有程序都能获得相同的处理器时间。遵从以下步骤:

  1. 打开控制面板。
  2. 双击 System。
  3. 单击 System Properties 页面的 Advanced 选项卡。
  4. 在 Performance 窗体下,单击 Settings。
  5. 单击 Performance Options 页面的 Advanced 选项卡。
  6. 在 Processor scheduling 窗体下,选择 Background 服务。

要增加虚拟内存,请遵从以下步骤:

  1. 在 Virtual Memory 窗体下,单击 Change。
  2. 根据您的逻辑磁盘卷自定义客户虚拟内存的大小。

尝试将硬盘分配给不同的逻辑卷,这能够以不同的卷轻松扩展虚拟内存。对于 Windows 操作系统,请在非系统硬盘中安装 Lotus Quickr。在 Lotus Quickr 运行了很长一段时间之后,碎片文件会导致系统变慢,表现为性能降低。要避免性能的降低,您应该每周或每两周运行一次磁盘碎片整理。

禁用或移除不必要的服务

有些 Windows 系统服务对于 Lotus Quickr 不是必需的。例如,在大部分企业客户应用程序中,用户不需要 Lotus Domino 服务器的打印服务,管理员可禁用打印服务和其他不必要的服务。

禁用或删除不必要的服务是提高服务器性能的最佳方式。

注册表调优

向 Lotus Quickr 服务器应用清单 1 中的注册表更改。

清单 1. 注册表更改
 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 

"TcpTimedWaitDelay"=dword:0000001e 
"MaxUserPort"=dword:0000fffe 
"TcpWindowSize"=dword:0000ffff 
"MaxFreeTcbs"=dword:00011940 
"MaxHashTableSize"=dword:0000ffff

调优参数涉及 Windows 操作系统的几个方面。让我们逐个讨论。

TcpTimedWaitDelay 参数控制操作系统在应用程序关闭 TCP 连接之后等待端口回收的时间,默认值是四分钟。在负载较大时,可能会超出该限制,这时会导致 address in use: connect exception 问题。如果出现这种问题,可以尝试在注册表中提高 MaxUserPort 和 TcpTimedWaitDelay 的值。

MaxUserPort 参数确定在应用程序向系统请求可用的用户端口时 TCP 可以分配的最高端口号。通常,分配的短暂端口(即暂时使用的端口)号范围从 1024 到 5000。

要提高服务器的吞吐量,将 TcpTimedWaitDelay 从默认的四分钟减少到 30 秒 (0000001e),然后将 MaxUserPort 从默认的 5000 增加到 65,534 (0000fffe),如清单 1 所示。

TCPWindowSize 参数可以设置最大的 TCP 窗口。通过放大 TCP 窗口大小,发回的确认越少,发送者和接受者之间的网络通信就越流畅。将默认的 17,520 字节更改为 65,535 (0000ffff ) 字节,如清单 1 所示。

MaxFreeTcbs 参数是在 TIME-WAIT 状态中重用 TCP Control Blocks 之前随需的活动 TCP 连接的阈值。更改 MaxFreeTcbs 使系统能够避免重用 TCP Control Blocks。我们将 MaxFreeTcbs 的值从默认的 1m000 更改为 72,000 (00011940),如清单 1 所示。

MaxHashTableSize 参数控制 TCP Control Block (TCB) 表的大小。TCB 表存储每个活动 TCP 连接的控制值。在具有许多活动网络连接的服务器上,大型 TCB 表可以降低系统定位特定 TCB 的时间开销。我们将 MaxHashTableSize 的值从默认的 512 (0X200) 更改为 65,535 (0000ffff),如清单 1 所示。

有关 Windows 调优的更多信息,请参考 IBM Redbooks® 刊物,“调优 IBM System x Servers 以提高性能。”

调优 AIX 操作系统

AIX 5L 操作系统提供了许多参数,供用户提高 Lotus Domino 服务器性能时使用,然后可以影响 Lotus Quickr。您可以通过 Lotus Domino 服务器帐户设置、网络接口卡、处理器和内存、磁盘 I/O 等进行调优。本节将讨论这些参数。

AIXTHREAD_SCOPE=S

在 AIXTHREAD_SCOPE 参数中使用 S(系统范围)值表示每个用户线程使用一个内核线程,而默认是每 8 个用户线程使用一个内核线程。在 Lotus Notes® 用户配置文件中,输入该参数:

export AIXTHREAD_SCOPE=S

网络接口卡

要改进数据的传输和接收,可以配置一些网络适配器设置。对于每个活动的网络适配器,传送队列 (tx_for Ethernet) 和接收队列应该增加到它们的最大值。

要查看 ent0 适配器的队列大小,可以使用以下命令:

# lsattr -El ent0

要更改队列大小参数,可以执行清单 2 中所示的过程。

清单 2 更改队列大小参数
 Bring down the interface: 
 # ifconfig en0 detach 

 Change the value of the appropriate parameter: 
 # chdev -l ent0 -a tx_que_size=*** 

 ent0 changed 
 Bring the interface back to the up state: 
 # ifconfig en0 up

分页空间调优

考虑以下虚拟成员管理器参数:

  • maxclient%
  • maxperm%
  • strict_maxperm
  • strict_maxclient
  • lru_file_repage
  • lru_poll_interval
  • minfree
  • maxfree

您可以使用 vmo 命令进行更改:

vmo -p -o <parameter>=<value>

例如,要将 minfree 参数设置为 1920,请使用以下语法:

#vmo -p -o minfree=1920

您还可以通过命令 smitty tuning 更改这些参数。有关更多信息,请参考本文参考资料一节中列出的相关调优资料。

磁盘和 I/O 考虑

使用 iostat 命令(iostat – DR 和 / 或 iostat – d)查看热备份磁盘(hot disk)、文件系统和磁盘队列深度,调优这些内容可以提供更好的存储吞吐量。如果读取和写入参数设置的太高,可以考虑使用存储区域网络提高性能。

有关更多的 AIX 操作系统调优问题,请参看 IBM Redbooks 刊物,“AIX 5L 性能和系统调优”。

调优 System i5 操作系统

System i5 操作系统上的 Lotus Domino 服务器是其子系统中运行的应用程序,但是也会占用整个 System i5 的系统资源。

System i5 操作系统性能因素

表 1 列出了与 System i5 操作系统性能最相关的因素。

表 1. System i5 中常见的性能类别和影响
性能类别影响性能的因素 用于监控和调优的工具
处理器负载作业处理器使用率 Work with Active Jobs (WRKACTJOB)
Work with System Activity (WRKSYSACT)
主存储器错误统计
等待资格审查(Wait-to-ineligible)
Work with System Status (WRKSYSSTS)
磁盘 磁盘臂数量少
磁盘臂速度低
Work with Disk Status (WRKDSKSTS)
通信线路慢
线路错误
线路用户超载
Work with TCP/IP Connection Status (NETSTAT)
System i5 操作系统的 Performance Tools Advisor
System i5 操作系统的 Performance Tools Component Report
通信跟踪
输入 / 输出处理 处理器 IOP 失衡System i5 操作系统的 Performance Tools Advisor
System i5 操作系统的 Performance Tools Component Report
应用程序对象锁定Performance Tools for iSeries® (5722-PT1)
Work with Object Locks (WRKOBJLCK)

下面将介绍 System i5 操作系统调优选项:

  • 调整系统值
  • 处理器
  • 内存
  • 磁盘 I/O
  • 网络调优

调整 System i5 系统值

表 2 列出了可以更改以提高 Lotus Domino 服务器性能的 System i5 系统值。您可以使用 Work with System Values (WRKSYSVAL) 命令做出这些更改。

表 2 System i5 系统值
系统值定义默认值推荐值是否需要 IPL 进行更新?
QTOTJOB 在初始程序加载 (IPL) 期间分配了辅助存储的作业的总数。
注意:如果该值设置太高,该参数会大大延长 IPL 的总时间。
30可变
QADLTOTJ 达到 QTOTJOB 时还需要分配存储的作业的数量10可变
QACTJOB 在 IPL 期间分配了辅助存储的活动作业的初始数量20可变
QADLACTJ 达到 QACTJOB 时还需要分配存储的作业的数量10可变
QMAXACTLVL 系统的最高活动级别* 无最大值可变
QMCHPOOL*MACHINE 存储池(WRKSYSSTS 中的池 1)的大小20可变
QBASPOOL *BASE 存储池(WRKSYSSTS 中的池 2)的最小大小主存储的 5%,最小值为 2000 KB 可变
QBASACTLVL *BASE 存储池的活动级别6Lotus Domino 服务器数量的 120 倍
QPFRADJ 指定系统是否应该在 IPL 期间调优值的性能调整值,间隔为系统池大小和活动级别的常规间隔,或不做任何自动调整。该功能通常称为 iSystem 5 性能调整器(adjuster)。3(自动调整)2(在 IPL 期间调整并且是自动调整)或 3(自动调整),支持内存池活动级别的自动调整。
QDYNPTYADJ 交互作业的优先级被动态调整,以维护批量作业处理的高性能。1(打开)可变
QDYNPTYSCD 动态优先级调度器1(打开)可变
QPRCMLTTSK处理器多任务功能2(系统控制)1(打开)

处理器调优:选择处理器优先级

System i5 上的所有 Lotus Domino 作业都作为批处理作业运行,所有作业的运行优先级均为 20。如果在观察 UPDATE 或 AMGR 等作业引起的高处理器占用率时发现响应时间异常,可以降低这些任务的优先级,以提高性能。

内存调优:选择要使用的内存池

默认情况下,所有 Lotus Domino 服务器都在 BASE 内存池中运行。因此,为一个 Lotus Domino 子系统分配一个共享池是合理的。您可以更改共享池的大小和活动级别,并使用 CHGSHRPOOL 或 WRKSHRPOOL 命令缓存行为(分页选项),然后可以使用 CHGSBSD 命令为子系统分配池。

磁盘 I/O 调优

在日志文件中分隔辅助存储池(ASP)在我们的测试中是必要的。出于性能原因,使用 ASP 对于将事务日志文件从 Lotus Domino 数据文件、Lotus Quickr 缓存与 Lotus Quickr 数据中分离出来非常重要。

网络调优

您可以利用许多工具和参数改进系统的网络性能。下节将从各个方面介绍网络调优。

接口和路由

默认情况下,System i 跨任何已配置的网络接口(共享通用路由)对网络通信执行负载平衡。有些交换机生成一个路由表,其中包含了主机的 IP 地址和 IP 地址所在配置器的 MAC 地址。但是,您会发现与此负载平衡有关的性能问题。通过查看 CFGTCP 菜单选项 2,您可以确定系统定义了多少路由,还能确定它们是否都绑定到了特定的接口。

宿主表(Host table)和域信息

Lotus Domino 服务器常常需要解析自己的名称。记住,让 Lotus Domino 服务器在本地宿主表中解析自己的名称要比查询 DNS 快的多。使用 CFGTCP 菜单上的菜单选项 10 和 12 配置该设置。

最大传输单位(MTU)大小

将 MTU 设为 1496 字节适用于大部分 Lotus Domino 服务器。更多有关 MTU 的信息以及处理大型帧的交换机能力,请咨询您的网络管理员。

TCP/IP 缓冲区大小

通过调优 TCP/IP 所使用的缓冲区大小,您可以提高 Lotus Quickr Web 服务性能,尤其是发送大量数据时更是如此。如果您的网络可靠,尝试将缓冲区大小从默认的 8000 提高到 64000。

TCPONLY for Ethernet

通过将 Ethernet 线路描述中的 TCPONLY 参数设置为 *YES,可以进一步提高 TCP/IP 性能。该设置可以减少 TCP/IP 代码路径长度 —— 它限制了 IOP 中用于线路描述而加载的代码。

线路速度和双向传输

线路描述的设置应该与它所连接的硬件相匹配。如果 System i unit 连接到 1 GB 交换机,并且该交换机设置为自动协商最快的线路速度和双向传输,则 System i 线路描述的配置应该匹配此设置。

有关 System i5 操作系统调优的更多内容,请参见 IBM Redbooks 刊物 “Domino for iSeries 的大小和性能调优”。

Lotus Domino 服务器调优

由于 Lotus Quickr 在 Lotus Domino 服务器上运行,因此调优 Lotus Domino 服务器的性能对于提高 Lotus Quickr 服务器性能非常有用。调优 Notes.ini 参数和 Lotus Domino 设置可以提高 Lotus Quickr 性能。

使用 Notes.ini 禁用不必要的 Lotus Domino 任务

默认的 Lotus Domino 任务列表在 Notes.ini 中列出:

ServerTasks=Update,Replica,Router,AMgr,AdminP,CalConn,Sched,HTTP,RnRMgr

如果有些任务在用户环境中没有使用,那么可以将其从 Notes.ini 中移除。例如,在我们的单服务器测试环境中,只有 HTTP 任务是活动的:

ServerTasks=HTTP

要提高 Lotus Domino 服务器性能,可以添加以下参数。

NSF_DbCache_Maxentries=<n>

该变量指定数据库缓存(如果启用的话)中存储的数据库的最大数量。在很短的时间内,Lotus Domino 存储的数量最多是该设置数字的 1.5 倍。提高数据库的最大数量可以提高性能,但是需要更多内存。

NSF_DBUCACHE_MAX_ENTRIES=<n>

该变量与 NSF_DBcache_MaxEntries 变量结合使用,以支持 Lotus Domino 服务器缓存指定的数据库数量。您可以将该变量设置为每个 Lotus Domino 分区的最大活动数据库数量或并发用户数据库数量。

我们的环境设置如下:

NSF_DBUCACHE_MAX_ENTRIES=3000
QuickPlaceTimedHashTableTimeout=86400

注意:这些参数与硬件相关,因此应该调整它们以优化特定的硬件配置。

调优 Lotus Domino 服务器设置

Lotus Quickr 使用 Lotus Domino HTTP 任务,因此 Lotus Domino Web 设置的调优也有利于 Lotus Quickr 性能的提高。

并行运行 Web 代理和 Web 服务

Lotus Quickr 提供许多 Web 服务。有些功能可以直接调用 Web 服务。Blog 和 Wiki 中的部分功能由 Lotus Domino 代理实现。Blog 有 4 个代理,Wiki 中有 2 个代理。遵从以下步骤:

  1. 在 Lotus Quickr 中通过 Lotus Notes 客户机打开 names.nsf 数据库,或者通过 Lotus Notes Administrator 客户机连接到 Lotus Quickr 服务器。
  2. 打开 Lotus Quickr 服务器文档。
  3. 打开 Internet Protocols - Domino Web Engine - Web Agents and Web Services。

该部分有两个设置:

  • Run Web agents and Web services concurrently
  • Web agent and Web services timeout

在我们的测试环境中,选择选项 Run Web agents and Web services concurrently。保持 Web agent and Web services timeout 的值为默认值:”0”,该值表示运行 Web 代理和 Web 服务没有时间限制。

最大并发代理

大部分 Lotus Quickr 客户都是跨国公司,因此它们的负载在白天和夜间几乎都是相同的。因此,可以通过 names.nsf 数据库调整最大并发代理 —— 操作如下:

Server tasks - Agent Manager - Daytime Parameters/Nighttime Parameters - Max concurrent agents

daytime 和 nighttime 参数的值的范围为 0 到 10;客户可以根据他们的工作负载调整该值。在我们的测试环境中,daytime 和 nighttime 参数的值都设置为 10。

本节只描述几种调优 Lotus Domino 服务器性能的方式。实际上,有很多 Lotus Domino 服务器调优方法和参数。它们几乎都能影响 Lotus Quickr 的性能。有关更多信息,请参考本文参考资料一节中列出的 Lotus Domino 性能相关资料。

Lotus Quickr 调优

本节介绍 Lotus Quickr 本身的性能调优,并涵盖了 Notes.ini 和 qpconfig.xml 设置的调优。

禁用 Notes.ini 中不必要的 Lotus Quickr 服务任务

安装了 Lotus Quickr 服务器之后,Lotus Quickr 服务器将以下任务自动添加到 Notes.ini 文件中。如果有些任务对于当前应用程序不重要,您可以将它们从 Notes.ini 中删除,以提高 Lotus Quickr 性能。

ServerTasksAt1=Catalog,Design
ServerTasksAt2=UpdAll
ServerTasksAt3=Object Info -Full
ServerTasksAt5=Statlog
ServerTasksAt4=qptool refresh -a,qptool report -policyexecute,qptool register – a

有关这些服务器任务的详细说明,请参考本文参考资料中列出的相关资料。

在 Notes.ini 中调优 Lotus Quickr

Notes.ini 文件中有许多与 Lotus Quickr 性能有关的参数。我们将一一进行介绍。

QuickPlaceWebCacheEnabled=<n>

该变量启用和禁用缓存。设置 QuickPlaceWebCacheEnabled=1 可以启用缓存。要禁用服务器缓存,设置 QuickPlaceWebCacheEnabled=0。服务器缓存在默认情况下是启用的。

QuickPlaceWebCacheDir=< 完整路径 >

默认的缓存目录是 <DOMINOPROGRAM>>\data\domino\quickplace\cache。如果该变量没有在 Notes.ini 文件中设置,那么将自动设置为默认目录。如果指定的目录路径无效,则禁用服务器缓存。Lotus Quickr 服务器通过目录频繁读取和写入缓存,因此在 RAID 磁盘系统中设置目录,或将磁盘从 Lotus Quickr 服务器代码中分离出来。如果 Lotus Quickr 服务器上只有一个物理磁盘,可以通过 Lotus Quickr 服务器代码将目录设置为一个不同的逻辑硬盘。

QuickPlaceWebCacheLimitInMB=< 大小以 MB 为单位 >

该变量控制缓存回收的大小限制。如果缓存大小小于此设置值,Lotus Quickr 无法回收缓存。如果缓存大小大于设置,Lotus Quickr 服务器将回收设置值大小的缓存。默认大小是 50 MB。

通常,此变量越大,Lotus Quickr 性能越好。注意,如果变量设置太大,Lotus Quickr 服务器需要消费更多资源才能处理更大的缓存大小。

QuickPlaceWebCacheGCIntervalInMIN=< 时间间隔以分为单位 >

该变量用于设置清除缓存的时间间隔;默认值为 60。Lotus Quickr 服务器使用设置的时间间隔处理缓存;如果缓存大小大于 QuickPlaceWebCacheLimitInMB 设置,则缓存大小将根据设置的间隔进行回收。在回收缓存时,Lotus Quickr 服务器性能可能很差,因此注意不要将时间间隔提高的太多。

QuickPlaceEnableVersionCheck=<n>

该变量用于启用(1)或禁用(0)查询 Lotus Quickr 服务器版本号的能力。

QuickPlaceExpireCachedUsers=< 时间间隔以秒为单位 >

该变量用于指定在服务器移除用户条目之前,它们留在缓存中的时间长度。默认的间隔为 120 秒。

QuickPlaceTimedHashTableTimeout =< 时间间隔以秒为单位 >

该变量用于设置 Lotus Quickr 使用的 LDAP 缓存刷新频率。

QuickPlaceMaxCachedUsers=<n>

该变量用于指定缓存中允许的最大用户条目数。当缓存到达指定的数量时,将移除旧条目以为新条目挪出位置。默认情况下,缓存中允许 64 条新条目。

下面是在我们的系统测试中使用的参数设置:

 QuickPlaceWebCacheEnabled=1
 QuickPlaceWebCacheDir= D:\QuickrCache
 QuickPlaceWebCacheLimitInMB=4000
 QuickPlaceWebCacheGCIntervalInMIN=60
 QuickPlaceEnableVersionCheck=1
 QuickPlaceExpireCachedUsers=86400
 QuickPlaceMaxCachedUsers=1500
 NSF_DBcache_maxentries=3000

使用 Lotus Quickr qpconfig 设置进行调优

位于 Lotus Domino 数据中的 qpconfig.xml(如清单 3 所示)是 Lotus Quickr 性能调优的另一个重要文件。您可以更改该文件中的设置,以提高 Lotus Quickr 性能。

清单 3 qpconfig.xml 文件
 <place_catalog_servers> 
 <server> 
 <domino_server_name>qpcat/IBM</domino_server_name> 
 <nsf_filename>PlaceCatalog.nsf</nsf_filename> 
 <statistics enabled="true" update_interval="<time interval in minutes>"/> 
 </server> 
 </place_catalog_servers> 
 </place_catalog>

update_interval 参数用于指定 place 目录的更新间隔(以分为单位)。在我们的系统测试环境中为 1440。

有关更多 Lotus Quickr 调优信息,请参考 QuickPlace Version 7.0 管理员指南

结束语

本文讨论了如何从三个方面提高 Lotus Quickr services for Lotus Domino 的性能,这三个方面是:操作系统、Lotus Domino 和 Lotus Quickr。本文中讨论的参数对于提高 Lotus Quickr services for Lotus Domino 的性能很重要。它们适用于 Lotus Quickr 8.0、Lotus Quickr 8.0.0.2 和 Lotus Quickr 8.1。在我们的测试环境中,我们比较了一些事务在调优前后的性能。在进行调优后,几乎所有事务的性能都得到改进,其中一些事务的性能改进了 20% 到 40%。


相关主题


评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=388370
ArticleTitle=IBM Lotus Quickr services for Lotus Domino 性能调优
publish-date=05112009