[dtrace-discuss] Some of my nanoseconds are missing...

Nik Clayton nik at ngo.org.uk
Tue Aug 8 09:58:43 PDT 2006


... almost 3,000,000,000,000 of them.

I'm instrumenting Sendmail (as some of you are probably bored of hearing).

Right now, I'm looking at where Sendmail spends its time when it's 
creating queue files.

I've discovered that a lot of time is being spent in calls to fdsync().
The set of numbers I'm using shows 3,255,859,582,382 nanoseconds being 
spent in fdsync() for a given workload.

So I set about instrumenting fdsync(), and counting the time consumed by 
  the kernel calls it makes under the same workload.

Those figures show 286,960,093,086 nanoseconds taken up by kernel calls.

So where did the other 3,000... go?  And can I get DTrace to 
(automatically?) show me where the time is being spent?  I know I can 
use the lockstat provider to see how long I'm spending waiting for 
locks, but presumably, since those locks are being waited for by kernel 
functions I've already accounted for that time.

Ditto for the io provider, right?  Or do I have to instrument those too?

More details, including pretty charts, at

http://jc.ngo.org.uk/blog/2006/08/08/day-30-of-60-what-are-the-single-queue-directory-bottlenecks-pt-2/

N

PS:  Any chance D could grow a pragma to automatically insert commas in 
large numbers?  It would make comparing results much easier.


More information about the dtrace-discuss mailing list