Hello Guys,
Last week I upgraded our openldap server to 2.4.16 and we had terrible performance problems.
Quanah suggested me to use this options with bdb compilation:
--enable-posixmutexes --with-mutex=POSIX/pthreads
I compiled and tested openldap with different versions of BDB and the results are odd:
OpenLDAP version
|
BDB version
|
Test time 1 (seconds)
|
Test time 2 (seconds)
|
Test time 3 (seconds)
|
2.4.16
|
BDB 4.5.20
|
256.2008
|
260.5799
|
273.933
|
2.4.16
|
BDB 4.6.21
|
265.428
|
260.2496
|
255.0599
|
2.4.16
|
BDB 4.7.25
|
261.5573
|
254.2001
|
259.9456
|
2.3.30-5 (debian package)
|
BDB 4.2.52
|
257.7173
|
251.3512
|
250.8456
|
The test consist on make some operations:
for ($i=0; $i<=1; $i++)
{
make_add(1000);
make_search(10000);
make_mod(500);
make_get_entries(10000);
make_del(200);
make_add(1000);
make_search(10000);
make_mod(500);
make_get_entries(10000);
make_del(200);
}
Like you can see, the best result was using to old version of openldap server with the old version of BDB.
Even more odd was the use of CPU. Using these old versions, the consume of CPU was half then using the new ones.
The slapd.conf and DB_CONFIG were the same on all tests.
Here are the compilation lines:
BDB:
CFLAGS="-Wall -g -O2" CPPFLAGS="-I/usr/include/tcl8.5" LDFLAGS="-lpthread" ../dist/configure --enable-cxx --enable-compat185 --enable-rpc --enable-tcl --enable-posixmutexes --with-uniquename --with-tcl=/usr/lib/tcl8.5 --with-mutex=POSIX/pthreads --enable-test
Openldap:
CFLAGS="-Wall -g -D_FILE_OFFSET_BITS=64 -O2" ./configure --prefix=/usr --libexecdir=/usr/lib --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man --enable-debug --enable-dynamic --enable-syslog --enable-proctitle --enable-ipv6 --enable-local --enable-slapd --enable-aci --enable-cleartext --enable-crypt --enable-spasswd --enable-modules --enable-rewrite --enable-slp --enable-wrappers --enable-bdb=mod --enable-hdb=mod --enable-ldap=mod --enable-meta=mod --enable-monitor=mod --enable-relay=mod --enable-overlays=mod --with-subdir=ldap --with-cyrus-sasl --with-threads --with-tls=openssl --with-odbc=unixodbc
DB_CONFIG:
set_cachesize 0 524288000 0
set_lk_max_objects 15000
set_lk_max_locks 15000
set_lk_max_lockers 15000
set_shm_key 5
slapd.conf:
some index and
cachesize 10000
idlcachesize 10000
Is there some wrong or these are the expected results ?
I appreciate any tip.
Best regards,
Joćo Alfredo