Here is a really simple one based on the "default" entry/return probes in all user functions:

Script memcached-entry.d:

pid$target::entry
{
    @syscalls[probefunc] = count();
}

END
{
}

Start dtrace with this script:

dtrace -s memcached-entry.d -p <process if of memcached daemon>

Let it run for a while and interrupt it. The following output is given:

  delete_handler                                                    5
  do_run_deferred_deletes                                           5
  mt_run_deferred_deletes                                           5
  event_tree_RB_REMOVE_COLOR                                        9
  do_slabs_newslab                                                 17
  grow_slab_list                                                   17
  malloc                                                           17
  malloc_unlocked                                                  17
  memory_allocate                                                  17
  morecore                                                         17
  clock_handler                                                    21
  gettimeofday                                                     21
...
  no_preempt                                                   713121
  preempt                                                      713121
  memcpy                                                       844334
  mutex_lock                                                  1032168
  mutex_lock_impl                                             1032168
  mutex_unlock                                                1032168
  clear_lockbyte                                              1032202
  mutex_unlock_queue                                          1032202

This is the pid provider that does not really need any code changes at all.

Roy

Dustin Sallings wrote:

For those of us who haven't truly unleashed the power of dtrace, can you describe the kinds of things we can learn from this (perhaps with scripts)?

--Dustin Sallings (mobile)

On Mar 6, 2008, at 4:48, Trond Norbye <[EMAIL PROTECTED]> wrote:


On Mar 5, 2008, at 3:52 PM, Trond Norbye wrote:

The following patch adds a new configure-option (--enable-dtrace) that adds DTrace probes to various parts of memcached.

Please comment.

Trond

I discovered that I had some "leftovers" in this patch from before I fixed the comments regarding the large page support..

The attached version is replacement for the original patch.

Trond
<dtrace.patch.gz>

Reply via email to