Slapd Analysis under Query Size Aspects

This page should present the result of the performance analysis on a LDAP server under the the aspect of parallel requests for certain queries with a fixed datasize.

Background

The current observation of the BDII (a top level Instance of the Grid Information System) shows that requests from clients (e.g. the Grid ResourceBroker) can't be handled fast enough and timeouts occur which affect the overall performance of the Grid. To find out how much load one top level instance of the BDII can stand, this test has been created. The results show the limits of the current realization of the BDII instance installed at CERN and should give ideas for a future reimplementation.

Test Environment

The LDAP server is an OpenLDAP server (slapd V 2.0.27 ) installed on a Intel(R) Xeon(TM) CPU 2.40GHz with 1GB of RAM. The size of the LDAP database is 20MB.

The tests are realized by a bunch of scripts which execute a ldapsearch in parallel on several machines and which can be found in the CVS. The maximum number of parallel requests are 90. For this, the wassh ( see here ) command was used. One should consider that this test should only give an approach to the performance for parallel requests. A precise scenario would include one request per machine. This would mean using 90 machines which execute one query at exactly one(!) time. This would be a far too complex scenario and is not neccessary. However, for an approach of the performance of the slapd the scripts which were created are sufficient.

The Queries

It has been decided that a view on the performance of the OpenLDAP has to be done by measuring how many requests can be handled for a certain queried datasize. These are the query datasizes which are used in this test: no_result (query failure 0KB), 1KB,10KB, 150KB, 370KB, 1MB, 2MB, 3MB, 5MB, 8MB, 10MB, dump (full dump of the ldap db, 20MB) Each query represents the most used one by the users. This gives a more realistic view on how the load of the real LDAP instance (lcg-bdii.cern.ch) is.

Results

After gathering the data, the following diagrams were created using 'gnuplot'.

Performance Analysis with small query sizes

1K_10K_150K_370K_1M_requesttime.png 1K_10K_150K_370K_1M_requesttimeout.png

Performance Analysis with big query sizes

1M_3M_5M_8M_10M_dump_requesttime.png 1M_3M_5M_8M_10M_dump_requesttimeout.png

CPU load comparison for small and big query sizes

The figure below shows the CPU load (user+system load) for a test run of 10KB query and 3MB query sizes. The first bunch of bursts show the test for the 10KB, the second for the 3MB query. The CPU load is ver much related to the query size. Small queries load the machine much more than queries for a lot of information. An explanation for this is that the machine is much more busy with I/O load for sending the data instead of processing the request. During small queries the CPU is much more loaded with dealing the requests and finding the information in the database. CPULoad_10K_3M.png

Performance Tests with Alternative Hardware Configuration

To see how far the machine affects the performance of the requesthandling, the same tests were done on another machine with other hardware and software configuration ( Intel Dual Core Xeon 2.4Ghz, 2 Gb RAM ).

1K_10K_150K_370K_1M_requesttime_BH.png 1K_10K_150K_370K_1M_requesttimeout_BH.png

The graphs shown obove prove an impressive performance by upgrading the hardware. Comparing the average request duration time to the previous test round one can see that all times have improved by at least 200%. Some where even close to an 300% improvement (e.g. 150K : 15sec first test, 5,5 sec. second test). There are not even timeouts.

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng 1K_10K_150K_370K_1M_requesttime.png r2 r1 manage 8.3 K 2008-02-22 - 12:04 LaurenceField  
PNGpng 1K_10K_150K_370K_1M_requesttime_BH.png r3 r2 r1 manage 7.5 K 2008-02-22 - 12:04 LaurenceField  
PNGpng 1K_10K_150K_370K_1M_requesttimeout.png r2 r1 manage 4.6 K 2008-02-22 - 12:05 LaurenceField  
PNGpng 1K_10K_150K_370K_1M_requesttimeout_BH.png r2 r1 manage 4.0 K 2008-02-22 - 12:05 LaurenceField  
PNGpng 1M_3M_5M_8M_10M_dump_requesttime.png r2 r1 manage 7.5 K 2008-02-22 - 12:05 LaurenceField  
PNGpng 1M_3M_5M_8M_10M_dump_requesttimeout.png r2 r1 manage 6.5 K 2008-02-22 - 12:06 LaurenceField  
PNGpng CPULoad_10K_3M.png r2 r1 manage 5.0 K 2008-02-22 - 12:06 LaurenceField  
Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2008-02-22 - LaurenceField
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback