[Date Prev][Date Next] [Chronological] [Thread] [Top]

subject=(ITS#2610)



Hi,

I've done some futher investigation on this ITS and I've found out that it is 
BerkeleyDB that is calling ldap_pvt_thread_yield() all the time (callback 
registered in /servers/slapd/back-bdb/init.c). This is the cause of the high 
CPU usage and the large amount of context switches (over 100K/sec!) I've 
seen. I suspect there is some bdb locking problem going on. When I run 
db_stat -c while performing the modify benchmark I see that "Total number of 
locks not immediately available due to conflicts" is steadily increasing, I 
am not sure if that is a serious issue. The "Number of deadlocks" is zero and 
there are no signs of BDB running out of locks/lockers/lock objects.
I've also added some extra debug statements in /servers/slapd/back-bdb/idl.c 
because from slapd's debug logging I saw that executing the function 
bdb_idl_delete_key() took al lot of time, sometimes more than 15 seconds!
I'll try to continue with digging into this problem, but I am starting to run 
out of ideas. Any ideas would be welcome!

Regards,

Erik

PS I forgot to mention that I use BerkeleyDB 4.1.25p1 NC