Hi Quanah,
Using the perf tool on my MDB consumers on a per thread basis, I have found that function "mdb_node_search" and "mdb_page_search_root" are a source of high overhead (along with a number of other MDB fuctions) which correlate to the high cpu utilization I am seeing. When comparing the same to my HDB consumers by thread, the overhead for HDB related slapd functions is minimal.
Here is what I see on MDB: ------------------------- Samples: 75K of event 'cpu-clock', 4000 Hz, Event count (approx.): 6487155549 lost: 0/0 drop: 0/0 Overhead Shared Object Symbol 29.60% slapd [.] mdb_node_search 15.13% slapd [.] mdb_page_search_root 8.98% slapd [.] mdb_cmp_long 8.36% slapd [.] mdb_cursor_set 6.21% slapd [.] mdb_cmp_cint 5.18% slapd [.] mdb_page_get.isra.13
Here is what I see on HDB: ------------------------- Samples: 7K of event 'cpu-clock', 4000 Hz, Event count (approx.): 448391573 lost: 0/0 drop: 0/0 Overhead Shared Object Symbol 3.61% slapd [.] 0x000000000010eab0 0.55% slapd [.] avl_find 0.51% slapd [.] hdb_idl_fetch_key 0.43% slapd [.] hdb_idl_next
Do you know if these MDB functions are expected to use that much overhead and if not, any chance you know what might be causing this?
As a side note, I have also compared backtraces on the threads using gdb and strace and from that perspective I do not see anything outstanding (the output is much the same for both).
Thanks again for your input. Regards, Paul.