Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 2006 12:48:46 -0700 (PDT)
From:      Danial Thom <danial_thom@yahoo.com>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        freebsd-performance@freebsd.org, David Xu <davidxu@freebsd.org>
Subject:   Re: Initial 6.1 questions
Message-ID:  <20060613194846.32769.qmail@web33313.mail.mud.yahoo.com>
In-Reply-To: <20060613195113.T26068@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help


--- Robert Watson <rwatson@FreeBSD.org> wrote:

> 
> On Tue, 13 Jun 2006, Danial Thom wrote:
> 
> >> Two types of measurements are taken: sampled
> ticks regarding whether the 
> >> system as a while is in {user, nice, system,
> intr, idle}, and then sampling 
> >> for individual processes.  Right now, the
> system measurements are kept in a 
> >> simple array of tick counters called
> cp_time. John Baldwin and others have 
> >> changes that make these tick counters
> per-CPU. The lines at the top of 
> >> top(1)'s output are derived from those tick
> counters.  Ticks are measured 
> >> on each CPU, so those are a summary across
> all CPUs.  To add cpustat 
> >> support, we need to merge John's patch to
> make cp_time per-CPU (ie., 
> >> different counters for different CPUs) and
> teach the userland tools to 
> >> retrieve them.  When you run top you'll
> notice that it adjusts the 
> >> measurements each refresh.  In effect, what
> it's doing is sampling the 
> >> change in tick counts over the window,
> pulling down the new values and 
> >> calculating the percentages of ticks in each
> "bucket" in the last window.
> >
> > That doesn't explain why the Top line shows
> 99.6% idle, but the cpu idle 
> > threads are showing significant usage.
> >
> > I'm getting a constant 6000 Interrupts /
> Second on my em controller, yet top 
> > jumps all over the place; sitting at 99% idle
> for 10 seconds, then jumping 
> > to 50%, then somewhere in between. It seems
> completely unreliable. The load 
> > I'm applying is constant.
> 
> I can't speak to the details of the
> thread/process use sampling model.  Top 
> uses something called the "weighted cpu
> percentage" by default; you can switch 
> to "unweighted" using the -C argument.  The top
> documentation fails to 
> document the semantics of the percentages, but
> I suspect -C will give you more 
> of what you expect.  The weighted CPU
> measurement takes into account process 
> history, so it takes a while for sudden spike
> in CPU use to be fully 
> reflected, and you may see seemingly
> counter-intuitive results, such as the 
> appearance of greater than 100% CPU use.  Try
> out -C and see if you see 
> something that makes more sense?
> 

It seems to work just fine with 1 CPU. Its
equally useless with the -C option in SMP mode.

 Here's a snip from 'systat -vmstat 1'

Proc:r  p  d  s  w    Csw  Trp  Sys  Int  Sof 
Flt        cow   10009 total
             24     18353    1  129 156k    1    
  17108 wire        6: fdc0
                                                 
   7908 act         14: ata
 0.4%Sys   0.4%Intr  0.0%User  0.0%Nice 99.2%Idl 
   7236 inact       20: em0
|    |    |    |    |    |    |    |    |    |   
        cache  6000 21: em1
                                                 
 473456 free      5 24: bge

6000 interrupts per second and .4% interrupt
usage. Clearly the tools don't work at all in SMP
mode. I don't see how you can do development
without measurement tools that work. 

DT

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060613194846.32769.qmail>