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.

Reply via email to