Re: Generic Monitoring Framework Proposal

From: Robert Lor <Robert(dot)Lor(at)Sun(dot)COM>
To: Theo Schlossnagle <jesus(at)omniti(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Generic Monitoring Framework Proposal
Date: 2006-06-19 22:41:00
Message-ID: 449727FC.4000800@sun.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Theo Schlossnagle wrote:

>
> Heh. Syscall probes and FBT probes in Dtrace have zero overhead.
> User-space probes do have overhead, but it is only a few instructions
> (two I think). Besically, the probe points are replaced by illegal
> instructions and the kernel infrastructure for Dtrace will fasttrap
> the ops and then act. So, it is tiny tiny overhead. Little enough
> that it isn't unreasonable to instrument things like s_lock which are
> tiny.

Theo, you're a genius. FBT (funciton boundary tracing) probes have zero
overhead (section 4.1) and user-space probes has two instructions over
head (section 4.2). I was incorrect about making a general zero overhead
statement. But it's so close to zero :-)

http://www.sun.com/bigadmin/content/dtrace/dtrace_usenix.pdf

>
> The reason that Robert proposes user-space probes (I assume) is that
> tracing C functions can be too granular and not conveniently expose
> the "right" information to make tracing useful.

Yes, I'm proposing user-space probes (aka User Statically-Defined
Tracing - USDT). USDT provides a high-level abstraction so the
application can expose well defined probes without the user having to
know the detailed implementation. For example, instead of having to
know the function LWLockAcquire(), a well documented probe called
lwlock_acquire with the appropriate args is much more usable.

Regards,
Robert

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2006-06-19 23:02:13 CVS HEAD busted on Windows?
Previous Message Jim C. Nasby 2006-06-19 21:52:58 Re: Generic Monitoring Framework Proposal