Performance tuning IBM Lotus Quickr services for Lotus Domino

This article describes how to improve the performance of IBM® Lotus® Quickr™ services for Lotus Domino®.

Gao Jin Sheng, Staff Software Engineer, IBM

Gao Jin Sheng is a Staff Software Engineer at IBM working on the test team for IBM Lotus Quickr services for Lotus Domino,. He has worked on Lotus Domino related areas for more than five years. You can reach Gao Jin Sheng at gaojins@cn.ibm.com.



Li Chen, Staff Software Engineer, IBM

Li Chen is a Staff Software Engineer at IBM working on the system test team for IBM Lotus Quickr services for Lotus Domino. You can reach Li Chen at licchen@cn.ibm.com.



Luo Xiao Guang, Software Engineer, IBM

Luo Xiao Guang is a Software Engineer at IBM working on the test team for IBM Lotus Quickr services for Lotus Domino. You can reach Luo Xiao Guang at luoxg@cn.ibm.com



15 July 2009 (First published 17 March 2009)

Also available in Chinese Japanese

Editor's note: Know a lot about this topic? Want to share your expertise? Participate in the IBM Lotus software wiki program today.

Introduction

The goal of performance tuning is to improve the output based on certain hardware. You should pay particular attention to the tuning parameters that apply to your hardware and network configurations.

This article shows you how to conduct performance tuning in three aspects: the operating system, Lotus Domino, and Lotus Quickr. Tuning the operating system involves improving the performance of the operating system itself, which reacts to the performance of Lotus Quickr services for Lotus Domino. Lotus Quickr 8.1 supports the Microsoft® Windows®, AIX®, and System i® operating systems. Another layer, the Lotus Domino server, is the back end for Lotus Quickr services for Lotus Domino, so tuning the Lotus Domino server also reacts to improvements in the performance of Lotus Quickr.

A different version of Lotus Quickr, Lotus Quickr services for WebSphere Portal, is not covered in this article. Here, when we refer to "Lotus Quickr," we mean Lotus Quickr services for Lotus Domino exclusively.


Tuning: The operating system aspect

This section describes how to tune performance from the operating system aspect: Microsoft Windows, AIX, and System i5.

Tuning the Microsoft Windows operating system

We cover these aspects of tuning the performance of Microsoft Windows:

  • Background
  • Virtual memory
  • Services
  • Register tuning

Background and virtual memory

Select Background services so that all programs receive equal amounts of processor time. Follow these steps:

  1. Open the Control Panel.
  2. Double-click System.
  3. Click the Advanced tab on the System Properties page.
  4. In the Performance frame, click Settings.
  5. Click the Advanced tab on the Performance Options page.
  6. Select Background services on the Processor scheduling frame.

To increase virtual memory, follow these steps:

  1. In the Virtual Memory frame, click Change.
  2. Customize the customer virtual memory size according to your logical disk volume.

Try to allocate your hard disk to different logical volumes, which can make it easy to expand virtual memory in different logical volumes. For the Windows operating system, install Lotus Quickr in the non-system hard disk. After Lotus Quickr has been running for a long time, fragmented files can make the system slow, which shows up as poor performance. To avoid this degradation in performance, you should run Disk Defragmenter weekly or biweekly.

Disable or remove unnecessary services

Some Windows system services are unnecessary for Lotus Quickr. For example, in most enterprise customer applications, users do not use the Print function of the Lotus Domino server; if that is the case, the administrator might disable the Print function and any other unnecessary services.

Disabling or removing unnecessary services is the best way to increase your server performance.

Register tuning

Apply the Registry changes shown in listing 1 to the Lotus Quickr server.

Listing 1. Registry changes
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

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

These tuning parameters cover several aspects of the Windows operating system. Let's discuss them one by one.

The TcpTimedWaitDelay parameter, which controls the amount of time the operating system waits to reclaim a port after an application closes a TCP connection, has a default value of four minutes. With heavy loads, these limits might be exceeded and so can result in an address in use: connect exception. If you experience address in use: connect exceptions, try to increase the value of MaxUserPort and TcpTimedWaitDelay in the Registry.

The MaxUserPort parameter determines the highest port number that TCP can assign when an application requests an available user port from the system. Typically, ephemeral ports (that is, those used only briefly) are allocated to port numbers 1024 through 5000.

To increase the throughput of the server, decrease TcpTimedWaitDelay from the default of four minutes to 30 seconds (0000001e), and increase MaxUserPort from the default of 5000 to 65,534 (0000fffe) as shown in listing 1.

The TCPWindowSize parameter sets the maximum TCP window. With the large TCP window size, fewer acknowledgments are sent back, resulting in more optimized network communication between the sender and the receiver. Change the default of 17,520 bytes to 65,535 (0000ffff ) bytes as shown in listing 1.

The MaxFreeTcbs parameter is the threshold number of active TCP connections required before TCP Control Blocks in the TIME-WAIT state are reused. Changing MaxFreeTcbs allows the system to avoid reusing TCP Control Blocks. We changed the value of MaxFreeTcbs from the default of 1m000 to 72,000 (00011940) as shown in listing 1.

The MaxHashTableSize parameter controls the size of the TCP Control Block (TCB) table. The TCB table stores the control values for each active TCP connection. On a server with many active network connections, a large TCB table can reduce the amount of time that the system spends to locate a particular TCB. We changed the value of MaxHashTableSize from the default of 512 (0X200) to 65,535 (0000ffff) as shown in listing 1.

For more information on tuning for Windows, refer to the IBM Redbooks® publication, "Tuning IBM System x Servers for Performance."

Tuning the AIX operating system

The AIX 5L operating system provides many parameters that let users tune to improve performance for Lotus Domino servers, which then can react to Lotus Quickr. You can tune from the Lotus Domino server account settings, network interface cards, processor and memory, disk I/O, and more. This section discusses some of these parameters.

AIXTHREAD_SCOPE=S

Using S (system scope) as the value in the AIXTHREAD_SCOPE parameter means using one kernel thread per user thread instead of the default setting of one kernel thread per eight user threads. In the Lotus Notes® user profile, enter this parameter:

export AIXTHREAD_SCOPE=SNetwork interface cards

To improve transfer and receive large amounts of data, you can configure a couple of network adapter settings. For each active network adapter, the transmit queue (tx_for Ethernet) and the receive queue size should be increased to their maximum value.

To view the queue size for the ent0 adapter, use following command:

# lsattr -El ent0

To change the queue size parameters, perform the procedure shown in listing 2.

Listing 2. Changing queue size parameters
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

Paging space tuning

Consider the following virtual member manager parameters:

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

You can change them by using the vmo command:

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

For example, to set the minfree parameter to 1920, use the following syntax:

#vmo -p -o minfree=1920

You also can change these parameters by command: smitty tuning. For more detailed information, you can refer to the related tuning materials listed in the Resources section of this article.

Disk and I/O considerations

Use the iostat command ( iostat –DR and/or iostat –d) to look for hot disks, file systems, and disk queue depths that can be tuned to provide better storage throughput. If the read and write parameters are set too high, consider using storage area networks to increase performance.

For more AIX operating system tuning, see the IBM Redbooks publication, "AIX 5L Performance and System Tuning."

Tuning the System i5 operating system

Lotus Domino server on the System i5 operating system is an application that runs within its own subsystem, but also competes for overall System i5 system resources.

System i5 operating system performance factors

Table 1 lists the factors that are most often associated with System i5 operating system performance.

Table 1. Typical performance categories and degradation influences on System i5
Performance categoryFactors affecting performance Available tools for monitoring and intervention
Processor load Job processor usage Work with Active Jobs (WRKACTJOB)
Work with System Activity (WRKSYSACT)
Main storageFaulting statistics
Wait-to-ineligible
Work with System Status (WRKSYSSTS)
Disk Low arm number
Low arm speed
Work with Disk Status (WRKDSKSTS)
CommunicationsSlow lines
Line errors
Line user excess
Work with TCP/IP Connection Status (NETSTAT)
Performance Tools Advisor for the System i5 operating system
Performance Tools Component Report for System i5 operating system
Communications Trace
Input/output processes Processor imbalance IOP deficiencyPerformance Tools Advisor for the System i5 operating system
Performance Tools Component Report for System i5 operating system
Applications Object locks Performance Tools for iSeries® (5722-PT1)
Work with Object Locks (WRKOBJLCK)

The following sections describe the System i5 operating system tuning options:

  • Adjusting system values
  • Processor
  • Memory
  • Disk I/O
  • Network tuning

Adjusting the System i5 system values

Table 2 contains a list of the System i5 system values that can be changed to help improve performance for a Lotus Domino server. You can make these changes using the Work with System Values (WRKSYSVAL) command.

Table 2. System i5 system values
System valueDefinitionDefault valueRecommended valueNeed IPL to update?
QTOTJOB Total number of jobs for which the auxilliary storage is allocated during initial program load (IPL).
NOTE: If set too high, this parameter can significantly lengthen the total time to IPL.
30VariesYes
QADLTOTJ Additional number of jobs that need storage allocated when QTOTJOB is reached10VariesNo
QACTJOB Initial number of active jobs for which auxiliary storage is allocated during an IPL20VariesYes
QADLACTJ Additional number of active jobs that need storage allocated when QACTJOB is reached10VariesNo
QMAXACTLVL Maximum activity level of the system*NO MAXVariesNo
QMCHPOOLSize of the *MACHINE storage pool (Pool 1 in WRKSYSSTS)20VariesNo
QBASPOOL Minimum size of the *BASE storage pool (Pool 2 in WRKSYSSTS)5% of the main storage with a minimum value of 2000 KB VariesNo
QBASACTLVL Activity level for the *BASE storage pool6120 times the number of Lotus Domino serversNo
QPFRADJ Performance adjustment values that specify whether the system should adjust values during IPL, at regular intervals for system pool sizes and activity levels, or not make any automatic adjustments. This functionality is commonly referred to as the iSystem 5 performance adjuster.3 (Automatic adjustment)2 (Adjustment at IPL and automatic adjustment) or 3 (Automatic adjustment), to allow for automatic adjustment of memory pool activity levels.Yes
QDYNPTYADJ Priority of interactive jobs is dynamically adjusted to maintain high performance of batch job processing.1 (On)VariesYes
QDYNPTYSCD The dynamic priority scheduler 1 (On) Varies Yes QPRCMLTTSK Processor multitasking capability 2 (System-controlled)1 (On)VariesYes
QPRCMLTTSKProcessor multitasking capability2 (System-controlled)1 (On)Yes

Processor tuning: Choosing processor priority

All the Lotus Domino jobs on System i5 run as batch immediate jobs, and all have a run priority of 20. If the response time rises exceptionally high during the times when you observe high processor utilization caused by jobs such as UPDATE or AMGR, you can reduce the priority of those tasks to improve performance.

Memory tuning: Choosing a memory pool to use

By default, all the Lotus Domino servers run in the BASE memory pool. Therefore, it makes sense to assign one of the shared pools to a single Lotus Domino subsystem. You can change the size and activity level of a shared pool and the expert cache behavior (paging option) with the CHGSHRPOOL or WRKSHRPOOL commands, and then you can use the CHGSBSD command to assign the pool to the subsystem.

Disk I/O tuning

Separating some auxiliary storage pools (ASPs) for journal files was essential to our test. Using ASPs is particularly important to separate the transaction logging files from the Lotus Domino data files and the Lotus Quickr cache from the Lotus Quickr data for performance reasons.

Network tuning

You can leverage a number of tools and parameters to improve the network performance on your system. The following section describes network tuning from a couple of aspects.

Interfaces and routes

By default, System i load balances network traffic across any configured network interface that shares a common route. Some switches generate a route table that includes the IP address of the host and the MAC address of the adapter that owns the IP address. You might experience performance problems related to this load balancing, though. By looking at CFGTCP menu option 2, you can identify how many routes your system has defined and determine whether they are bound to specific interfaces.

Host table and domain information

A Lotus Domino server frequently has to resolve its own name. Keep in mind that it is quicker to allow the Lotus Domino server to resolve its name in the local host table than to query DNS. Use menu options 10 and 12 on the CFGTCP menu to configure this setting.

Maximum transmission unit (MTU) size

An MTU of 1496 bytes is a good size for most Lotus Domino servers. Consult your network administrator for more information about MTUs and your switch’s ability to handle large frames.

TCP/IP buffer size

You can increase Lotus Quickr Web serving performance by tuning the buffer size that is used by TCP/IP, especially when sending large amounts of data. If your network is reliable, try increasing the buffer size from the default (8000) to 64000.

TCPONLY for Ethernet

TCP/IP performance can be further improved by setting the TCPONLY parameter to *YES on an Ethernet line description. This setting decreases the TCP/IP code path length by limiting the code that is loaded in the IOP for the line description.

Line speed and duplex

The settings of the line description should match the hardware to which it is cabled. If the System i unit is cabled to a 1 GB switch and that switch is set to automatically negotiate the fastest line speed and duplex possible, the System i line description should be configured to match the settings.

For more information on System i5 operating system tuning, see the IBM Redbooks publication, "Domino for iSeries Sizing and Performance Tuning."


Tuning on the Lotus Domino server

Because Lotus Quickr runs on the Lotus Domino server, the performance tuning for the Lotus Domino server is also useful in improving Lotus Quickr server performance. Tuning Notes.ini parameters and Lotus Domino settings can improve Lotus Quickr performance.

Disable unnecessary Lotus Domino task in Notes.ini

The default Lotus Domino task list is listed in this Notes.ini:

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

If some of these tasks are not used in the user’s environment, you can remove them from the Notes.ini. For example, in our single-server test environment, only the HTTP task is active:

ServerTasks=HTTP

To improve the Lotus Domino server performance, add the following parameters.

NSF_DbCache_Maxentries=<n>

This variable specifies the maximum number of databases stored in the database cache (if enabled). For short intervals, Lotus Domino stores up to 1.5 times the number entered for this setting. Increasing the maximum number of databases improves performance but requires more memory.

NSF_DBUCACHE_MAX_ENTRIES=<n>

This variable is used in conjunction with the NSF_DBcache_MaxEntries variable to allow the Lotus Domino server to cache the specified number of databases. You can set this variable to the maximum number of active or concurrent user databases for each Lotus Domino partition.

The setting in our environment is as follows:

NSF_DBcache_maxentries=3000
NSF_DBUCACHE_MAX_ENTRIES=3000

NOTE: These parameters are related to your hardware, and so you should adjust them to optimize your particular hardware configuration.

Tuning in the Lotus Domino server setting

Lotus Quickr uses the Lotus Domino HTTP task, so the tuning for Lotus Domino Web setting also reacts to the Lotus Quickr performance.

Run Web agents and Web services concurrently

Lotus Quickr provides lots of Web services. Some functions can call Web services directly. Parts of some functions in the Blog and Wiki places are realized by the Lotus Domino agent. There are four agents in the Blog place and two agents in the Wiki place. Follow these steps:

  1. Open the names.nsf database in Lotus Quickr from the Lotus Notes client or connect to the Lotus Quickr server from the Lotus Notes Administrator client.
  2. Open the Lotus Quickr server document.
  3. Go to Internet Protocols - Domino Web Engine - Web Agents and Web Services.

There are two settings in this section:

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

In our test environment, the option Run Web agents and Web services concurrently is selected. Keep the Web agent and Web services timeout value as the default value:”0”, which means there is no time limit for run Web agents and Web services.

Max concurrent agents

Most Lotus Quickr customers are global companies, so their workload is almost the same during daytime and nighttime. Therefore, adjust the Max concurrent agents setting from the names.nsf database by selecting the following:

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

The value scope for the daytime and nighttime parameters ranges from 0 to 10; customers can adjust the value according to their workload. In our test environment, both the daytime and nighttime parameters are set to 10.

This section describes only some of the ways to tune the Lotus Domino server performance. In fact, there are many Lotus Domino server tuning methods and parameters. Almost all of them react to the performance of Lotus Quickr. For more details, refer to Lotus Domino performance materials listed in the Resoures section of this article.


Tuning on Lotus Quickr

This section describes performance tuning for Lotus Quickr itself and covers tuning the Notes.ini and qpconfig.xml settings.

Disable unnecessary Lotus Quickr services tasks in Notes.ini

After Lotus Quickr server installation, the following tasks are added automatically to the Notes.ini file by the Lotus Quickr server. If some of them are unnecessary for your current application, you can comment them out from the Notes.ini to improve Lotus Quickr performance.

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

For a detailed explanation about these server tasks, refer to the related materials listed in the Resources section of this article.

Tuning Lotus Quickr in Notes.ini

There are many parameters in the Notes.ini file about Lotus Quickr performance. Let's discuss some of them here.

QuickPlaceWebCacheEnabled=<n>

This variable enables or disables caching. Set QuickPlaceWebCacheEnabled=1 to enable caching. To disable server caching, set QuickPlaceWebCacheEnabled=0. The server cache is enabled by default.

QuickPlaceWebCacheDir=<full path>

The default cache directory is <DOMINOPROGRAM>>\data\domino\quickplace\cache. If this variable is not set in the Notes.ini file, then it is automatically set to the default directory. If a specified directory path is invalid, the server cache is disabled. The Lotus Quickr server reads and writes cache frequently from the directory, so set the directory on a RAID disk system or separate disk from the Lotus Quickr server code. If there is only one physical disk on the Lotus Quickr server, set the directory to a different logical hard disk from the Lotus Quickr server code.

QuickPlaceWebCacheLimitInMB=<Size in MB>

This variable controls the cache recycle size limitation. If the cache size is less than the set value, Lotus Quickr does not recycle the cache. If the cache size is greater than the setting, the Lotus Quickr server recycles the cache size to the set value. The default size is 50 MB.

Commonly, the larger the variable is, the better the Lotus Quickr performance. Note that if this variable is set too large, the Lotus Quickr server spends more resources to handle the larger cache size.

QuickPlaceWebCacheGCIntervalInMIN=<time interval in minutes>

This variable is used to set the time interval for cache cleaning; the default value is 60. The Lotus Quickr server judges the cache with the set time interval; if the cache size is greater than the QuickPlaceWebCacheLimitInMB setting, then the cache size is recycled to the set interval. The Lotus Quickr server performance can be poor when the cache is recycled, so be careful not to increase the time interval too much.

QuickPlaceEnableVersionCheck=<n>

This variable is used to enable (1) or disable (0) the ability to check for the version number of the Lotus Quickr server.

QuickPlaceExpireCachedUsers=<time interval in seconds>

This variable is used to specify the length of time that user entries remain in the cache before the server removes them. The default for the interval is 120 seconds.

QuickPlaceTimedHashTableTimeout =<time interval in seconds>

This variable is used to set the frequency of the LDAP cache renewal used by Lotus Quickr.

QuickPlaceMaxCachedUsers=<n>

This variable is used to specify the maximum number of user entries allowed in the cache. When the cache reaches the specified number, older entries are removed to make room for new ones. By default, 64 user entries are allowed in the cache.

These are the parameters settings used in our system test:

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

Tuning using the Lotus Quickr qpconfig setting

qpconfig.xml, located in the Lotus Domino data and shown in listing 3, is another important file for Lotus Quickr performance tuning. You can change some settings in this file to improve Lotus Quickr performance.

Listing 3. The qpconfig.xml file
<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>

The update_interval parameter is used to specify the place catalog update interval period in minutes. The setting used in our system test environment is 1440.

For more Lotus Quickr tuning information, refer to the QuickPlace Version 7.0 Administrator’s Guide.


Conclusion

This article discusses how to improve the performance of Lotus Quickr services for Lotus Domino from three aspects: the operating sytem, Lotus Domino, and Lotus Quickr. The parameters discussed in this article are important in improving the performance of Lotus Quickr services for Lotus Domino. They are suitable for Lotus Quickr 8.0, Lotus Quickr 8.0.0.2, and Lotus Quickr 8.1. In our test environment, we compare some the performance of some transactions before and after tuning. Almost all transactions’ performance improved after tuning, with some improving by 20 percent to 40 percent.

Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into IBM collaboration and social software on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Lotus
ArticleID=376294
ArticleTitle=Performance tuning IBM Lotus Quickr services for Lotus Domino
publish-date=07152009