Skip to main content

Optimizing server performance: HTTP Threads Settings (HTTP Threads Settings Test Results sidebar)

[Back to "Optimizing server performance: HTTP Threads settings"]

HTTP Threads Settings Test Results (sidebar)

These are the results we found when testing how the HTTP threads setting affects server response time and resource utilization. We measured the impact of changing the HTTP threads setting by monitoring Domino transactions (NotesMarks), response time, CPU utilization, memory utilization, and disk response time.

WebMail user response time (seconds)

This chart displays the average WebMail user response time that results when we vary the number of WebMail users as well as when we vary the number of HTTP threads. We can view the effect of increased user load for a given HTTP thread setting by reading the appropriate column. Similarly, we can view the effect of increased HTTP thread settings for a given user load by reading the appropriate row.

As expected, for a given number of HTTP threads, if we increase the user load, response time will increase (that is, worsen). For example, if you read the first column (10 HTTP Threads), the response time steadily increases from 0.481 to 1.764 seconds as we increase the user load from 25 to 200 users.

However, for a given WebMail user load (read across a row), the response time is not improved, and in some cases, worsens, if you increase the number of HTTP threads. For example, consider the last row of the chart (200 WebMail users). As you read across the row, the response time worsens, from 1.764 seconds at 10 HTTP threads to 2.166 seconds at 200 HTTP threads.

WebMail Users10 HTTP
Threads
25 HTTP
Threads
50 HTTP
Threads
100 HTTP Threads200 HTTP Threads
250.4810.4830.5010.5150.525
500.5930.5740.4690.6540.566
1000.8440.7880.7690.8040.834
2001.7641.8562.1882.2022.166

Figure 1. Response Time graph
Response Time graph

NotesBench probe response time (seconds)

This chart displays the average NotesBench probe (operations over the HTTP protocol) response time that results when we vary the number of WebMail users as well as when we vary the number of HTTP threads. The probe response time differs from the user response time in that it represents the average response time for a specific request, in this case, opening the Inbox. The user response time is the average time for all the requests that comprise the WebMail workload (opening the Inbox, sending mail, and deleting mail).

Again, as expected for a given number of HTTP threads, if we increase the user load, response time will increase (that is, worsen). Also, like the WebMail user response time behavior, the probe response time is not improved when you increase the number of HTTP threads.

WebMail Users10 HTTP Threads25 HTTP Threads50 HTTP Threads100 HTTP Threads200 HTTP Threads
250.1510.1550.1660.1700.163
500.1720.1610.1670.1710.164
1000.2030.2410.2030.2250.202
2000.4040.4360.3190.3540.394

Figure 2. Probe Response Time graph
Probe Response Time graph

Server CPU utilization

This chart displays the CPU utilization on the server when we vary the user load as well as when we vary the number of HTTP threads. As you can see, for a given user load, the CPU utilization is not affected by an increase in HTTP threads.

WebMail Users10 HTTP Threads25 HTTP Threads50 HTTP Threads100 HTTP Threads200 HTTP Threads
2555656
501010101011
1002020202020
2004243444344

Figure 3. CPU Utilization graph
CPU Utilization graph

Memory used (committed bytes in MB)

This chart displays the memory used on the server when we vary the user load as well as when we vary the number of HTTP threads. As you can see, for a given user load, the memory used increases when the HTTP threads setting is increased. Since we obtain no performance improvements with the increased HTTP threads, this additional memory utilization is essentially "wasted."

WebMail Users10 HTTP Threads25 HTTP Threads50 HTTP Threads100 HTTP Threads200 HTTP Threads
259090105125150
50100100120140180
100110115130157190
200130135150170210

Figure 4. Memory Used graph
Memory Used graph

Logical average disk queue length

This chart displays the average disk queue length of the server volume containing the \data directory when we vary the user load as well as when we vary the number of HTTP threads. Disk queue length is the number of both read and write requests that were queued. The larger the value, the more I/O-bound the server is. In this case, we see that increasing the HTTP threads results in an increase in the average disk queue length and therefore, increased I/O overhead.

WebMail Users10 HTTP Threads25 HTTP Threads50 HTTP Threads100 HTTP Threads200 HTTP Threads
250.040.050.050.060.07
500.100.090.080.080.10
1000.200.180.140.160.16
2000.400.350.400.440.62

Figure 5. Average Disk Queue Length
Average Disk Queue Length