Table of Contents
The default settings are a "one size fits all" approach. While the settings will work as shipped, making some minor changes based on how you use the Domino server can increase the performance and efficiency of your server. Here is a list of things you can do to optimize your server.
HTTP Server Threads
In order for you server to function properly it must be able to handle all of the requests it receives. Domino provides a number of statistics to help you determine the health of the Domino web server. For example, to determine the peak number of threads used by the web server review the statisticDomino.Threads.Active.Peak
. By default, the number of active threads is 40. However; if you are using all available threads and have available memory for additional threads you can increase this value in the server document, Internet Protocols...
tab, Number of active threads parameter as shown in figure 1.
The Domino web server queues requests as they come in so they can be processed by the HTTP server threads. In some cases changing the queue method used can improve performance. For more information refer to technote 1201715: HTTP thread queue implementation in 6.x can cause performance issues for some setups.
When tuning your server, it helps to understand what requests are being processed on your servers. You can do this by logging Domino web server requests
. Thus, you can access this information "after the fact" by reviewing the access logs
and/or the web log database domlog.nsf
. You enable logging for your server in Internet Protocols tab of the server document as shown in figure 2.
In order to see which requests are being processed in "real-time" you can use the Domino command tell http show thread state
. This will present you a list of all active threads and the URL currently being processed if the thread is not idle. Below are two example entries and you can see that the first thread is idle and the second thread is opening the Inbox for User One (uone.nsf).
11/18/2010 12:09:28 Http Worker Thread ID [1c7]: [Thread State is Idle]
11/18/2010 11:18:12 Http Worker Thread ID : Working session [9a732]: Session State [Processing Request] : GET /mail/uone.nsf/iNotes/Proxy/?OpenDocument&Form=s_ReadViewEntries&PresetFields=DBQuotaInfo;1,FolderName;($Inbox),hc;%24Sender1%7C%2498,UnreadOnly;1&TZType=UTC&Start=1&Count=23&resortdescending=1 HTTP/1.1
If your server is struggling to process all requests due to database contention, view index rebuilds or database corruption, you will see all requests showing the same database, view or document. This is a fast and simple way for you as an administrator to identify potential database issues. In other cases, you may see that all of the pending requests are agents. By default, only 1 agent can process at a time. However; if the agents running on your server are thread-safe, then you may modify the configuration of the server to allow multiple web agents to run concurrently. To make the change, open the server document and access the Internet protocols...
→ Domino Web Engine
tab. Change Run web agents and web services concurrently to Enabled
as shown in figure 3.
The default JVM Heap can be modified using the NOTES.INI parameter HTTPJVMMaxHeapSize.
If you are using XPages, you will want to increase the size of the heap at 8.5.2 and higher. If you are not using XPages and running 8.5.1, you will want to decrease the default size. More information can be found in technote 1377202: What is the HTTPJVMMaxHeapSize notes.ini parameter in Domino 8.5 and what should it be set to?
When working with the Domino web server and applications, the same techniques to improve database performance from a Lotus Notes client can be used on the web. For a list of the most common reasons for slow database performance refer to technote 1174563: Knowledge Collection/Troubleshooting Guide: Known causes of slow database performance