Performance Test Additions
Leading question : Is it important to spread the client requests onto many machines or is it sufficient to use few machines generating the load on the server
This page describes the research of comparing the results in case of using many (18) or few (3) machines to submit ldapsearch commands to a server.
One ldapsearch command is excuted as a own process which means opening a own connection, submit a search and close the connection. So, in theory there should be not difference, if the clients
This chapter proves in the case of OpenLDAP that there is a difference. Both ways are tested and the effects in terms of response time behaviour are shown. The results of this test affects further OpenLDAP performance investigations.
The scenario
The number of
total requests were kept contant (90). In theory, each ldapsearch process being forked off in a bash script opens a own connection to the OpenLDAP server
slapd. As soon one is finished the next one is started immediatly. A
burst is the time in which those ldapsearches are spawned.
We expect to have the same response time behaviour for the same amount of requests, independend if they are splitted onto many or very few machines.
The client machines can be considered as equal in terms of performance when forking off a
ldapsearch
command.
Below we see the response time behaviour of an midrange ldap server running OpenLDAP version 2.2.27 with 3, 6, 9 and 18 clients.
Requests spread onto 3 client machines
Requests spread onto 6 client machines
Requests spread onto 9 client machines
Requests spread onto 18 client machines
Result
Taking a look at the 3 and 18 machine test run, one can see a significant difference in terms of response time behavior. The average response time for 90 parallel ongoing requests distributed onto
3 machines is about 0.14 seconds whereas the same test on
18 machines resulted in an average of 0.43 sec. However, as we see from the graphs some requests took about
10 seconds ! (The precise percentage can be found here
SlapdMidrangeHighEndDiff#Result ). Checking the
slapd.log
file for the connection statistics we can see the following :
Machines |
Connections (Binds) |
Searches |
Unbinds |
Total operations (diff. to previous) |
3 |
2829 |
2829 |
2829 |
8487 |
6 |
4495 |
4495 |
4495 |
13485 (4998) |
9 |
4540 |
4540 |
4540 |
13620 (135) |
18 |
4547 |
4547 |
4547 |
13641 (21) |
From the table obove, we can also determine a limit for handling requests/time by looking at the number of total operation. It doesn't make a great difference if 6,9 or 18 machines are used for submitting requests. This number depends on the
OpenLDAP server version, the hardware specification and server configuration.
Conclusion
The investigations presented here answer the question at the beginning of the page clearly. Looking at the tests done with 3 and 18 machines it seems that there is a
difference in terms of the total amount of operation reported by the server if requests are sent from few or many machines. But the
CPU load of one of the 3 machines is nearly 100% during the bursts ! This means that the clients are too much loaded to stress enough the server so we could see response time peaks (as we see in the 18 machine test).
This limit of the clients depend on the hardware configuration, software and its configuration. However, to come up with a meaningful result for these performance tests, this has be considered.
--
FelixNikolausEhm - 04 Jul 2007