Hi, We have some problem of performance since we have changed the version of Openldap + BerkeleyDB: Mainly at the ldap add request level. Current environnment: BerkeleyDB 4.2.52 Openldap 2.1.30 Previous environnment: BerkeleyDB 4.1.25 Openldap 2.1.22 We didn't change our ldap schema and our DB tuning (cf. DB_CONFIG file in attachment). They are the same in the 2 cases. We made tests from the same machine too. To summarize, here are the results of our tests: I) Average response time of an ldap add request (from a script, test.sh in attachment, which executes some standard ldapadd): BerkeleyDB 4.2.52 + Openldap 2.1.30 => 0,00085s BerkeleyDB 4.1.25 + Openldap 2.1.22 => 0,02563s II) We noted too some difference of performance at the IO stat level during our ldapadd tests: With the current environment: avg-cpu: %user %nice %sys %idle 7,94 0,30 13,23 78,11 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util average 0,01 136,83 0,00 108,08 0,07 2164,33 0,04 1082,16 20,15 8,70 86,34 77,98 79,45 With the previous environment: avg-cpu: %user %nice %sys %idle 5,61 0,64 6,08 87,67 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util average 0,56 84,88 0,23 5,35 6,34 721,78 3,17 360,89 67,99 6,91 640,59 118,55 3,62 Do you have an idea about this problem ? Do we need to change our DB tuning ? if yes how doing ? because with the db_stat command we didn't find any particular problem ? Best regards, Helene |
# $Id: DB_CONFIG.bdb1-NOSYNC,v 1.2 2004/07/30 08:52:42 dtl Exp $ # Set the database in memory cache size. # set_cachesize 0 52428800 0 # # Set database flags. # set_flags DB_TXN_NOSYNC # # Set log values. # set_lg_regionmax 1048576 set_lg_max 10485760 set_lg_bsize 2097152 #set_lg_dir /var/openldap/bdb-logs # # Set temporary file creation directory. # set_tmp_dir /var/tmp
#!/bin/sh base=33299 qmcdu=110000 pnnumber=0 i=0 logfile=./test.log #ldapadd_cmd=/opt/openldap-clients-servers/bin/ldapadd ldapadd_cmd=/usr/bin/ldapadd rm -f $logfile touch $logfile while (( i < $1 )); do (( number = $qmcdu + $i )) pnnumber=$base$number echo " dn: pnnumber=\2B${pnnumber},ou=range60,ou=msisdn,ou=INDEXES,o=alcatel,c=fr objectClass: phoneinfo objectClass: indexnode subpnid: 0 pnnumber: +${pnnumber} host: devums28 refdn: uid=20050218113918387\2B${pnnumber},ou=REPOSITORY,ou=CONTENT,o=alcatel, c=fr dn: weblogin=\2B${pnnumber},ou=range18,ou=weblogin,ou=INDEXES,o=alcatel,c=fr objectClass: commonuser objectClass: indexnode weblogin: +${pnnumber} cn: +${pnnumber} accountStatus: 1 host: devums28 refdn: uid=20050218113918387\2B${pnnumber},ou=REPOSITORY,ou=CONTENT,o=alcatel, c=fr dn: mail=\2B${pnnumber}/type=PLMN@vms41.alcatel.com,ou=range31,ou=mail,ou=IND EXES,o=alcatel,c=fr objectClass: commonuser objectClass: indexnode mail: +${pnnumber}/type=PLMN@vms41.alcatel.com cn: +${pnnumber} accountStatus: 1 host: devums28 refdn: uid=20050218113918387\2B${pnnumber},ou=REPOSITORY,ou=CONTENT,o=alcatel, c=fr dn: maillogin=\2B${pnnumber}/type=PLMN@vms41.alcatel.com,ou=range31,ou=imaplo gin,ou=INDEXES,o=alcatel,c=fr objectClass: commonmailbox objectClass: indexnode maillogin: +${pnnumber}/type=PLMN@vms41.alcatel.com submxid: 0 host: devums28 refdn: uid=20050218113918387\2B${pnnumber},ou=REPOSITORY,ou=CONTENT,o=alcatel, c=fr " | $ldapadd_cmd -x -D "cn=admin,ou=INDEXES,o=alcatel,c=fr" -w secret -h 192.9.200.161:389 1>> $logfile 2>> $logfile if [ $? == 0 ]; then echo "$pnnumber created" else echo " $pnnumber => creation KO" fi (( i = i + 1 )) done